테스트 - 알려지지 않은 에러의 발견, 시스템 내부 관련자, 제 3자, 에러의 발견
디버깅 - 이미 알고 있는 에러의 수정, 시스템 내부 관련자, 에러의 정확한 위치, 에러 타입 식별, 에러 수정
SW 테스트 필요성 - 오류 발견 관점, 오류 예방 관점, 품질 향상 관점
SW 테스트 기본 원칙
- 테스팅은 개발 초기에 시작
- 테스팅은 결함이 존재함을 밝히는 활동
- 완벽한 테스팅은 불가능
- 테스팅은 정황에 의존
- 결함 집중, 살충제 패러독스, 오류-부재의 궤변
정적 테스트 - 실행 없이 소스코드의 구조를 분석해 논리적으로 검증하는 테스트, 인스펙션, 코드 검사, 워크 스루
동적 테스트 - 실행을 요구하는 테스트
- 화이트 박스 테스트 : 내부 로직을 보며 테스트 진행, 문장 커버리지, 분기/결정 커버리지, MC/DC, 다중 조건, 기본 경로 테스트
- 블랙 박스 테스트 : 외부 사용자 요구사항 명세를 보며 테스트 진행, 주로 구현된 기능에 대해 테스트 진행, 명세 기반 테스트, 동등 분할 클래스, 경계값 분석, 도메인 테스트, Pairwise 테스트, 상태전이 테스트
- 그레이 박스 테스트 : 내부 구조의 일부만 알고 진행하는 테스트, 화이트 + 블랙
검증 - Verification, 제품의 생산 과정을 테스트하는 것을 의미, 올바른 제품을 생산하는지 검증
확인 - Validation, 생산된 제품의 결과를 테스트하는 것을 의미, 생산된 제품이 정상적으로 동작하는지 확인
목적별 테스트 - 회복, 안전, 강도, 성능, 구조, 회귀, 병행
종류별 테스트 - 명세 기반, 구조 기반, 경험 기반
테스트 오라클 - 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력해 비교하는 기법 및 활동
- 참 오라클 : 모든 입력값에 대해 기대하는 결과괎을 생성해 발생된 오류를 모두 검출할 수 있는 오라클
- 샘플링 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공하는 오라클
- 휴리스틱 오라클 : 샘플링 오라클을 개선한 것으로 특정 입력값에 대해 올바른 결과를 제공, 나머지는 휴리스틱(추정)으로 처리하는 오라클
- 일관성 검사 오라클 : 어플리케이션 변경이 있을 때, 수행 전과 후 결과값이 같은지 확인하는 오라클
Bad Code - 다른 개발자가 로직을 이해하기 어렵게 작성된 코드, 스파게티 코드, 중복 코드
Clean Code - 가독성이 높고, 단순하고, 의존성이 낮고, 중복이 최소화된 코드
코드 리팩토링 - 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법, SW 시스템을 변경하는 프로세스, 메소드 정리, 객체 간 기능 이동, 데이터 구성, 조건문 단순화, 일반화
하향식 테스트 - Top-Down, 메인 모듈부터 아래로 제어의 경로를 따라 이동하며 하향식으로 테스트 진행, 하위 모듈을 대신하는 스텁 사용, 깊이-우선, 너비-우선
상향식 테스트 - Bottom-Up, 최하위 모듈에서 위쪽으로 제어의 경로를 따라 이동하며 구축과 테스트 진행, 상위 모듈을 대신하는 드라이버 사용
샌드위치 테스트 - 연쇄식, 순차 통합, 특정 기능을 수행하는 모듈 최소 단위부터 테스트
회귀 테스트 - 통합 테스트 완료 후에 변경된 모듈이나 컴포넌트가 있으면 새로운 오류 여부를 확인하기 위해 회귀 테스트 진행
Error - 에러, 오류라고도 함, 결함의 원인이 되는 것, 일반적으로 사람에 의해 생성된 실수
Bug - 결함, 결점, 버그라고도 함, 에러나 오류가 원인이 되어 SW 제품에 포함되어 있는 결함, 제거하지 않으면 제품이 실패하거나 문제 발생
실패, 문제 - SW 제품에 포함된 결함이 실행될 때 발생하는 현상
테스트 완료 조건 - 각 단계별 테스트를 언제, 어떤 상황에서 종료할 것인지 결정
테스트 리포팅 - 테스트 결과 정리, 테스트 요약 문서, 품질 상태, 테스트 결과서, 테스트 실행 절차 및 평가
결함 관리 - 각 단계별 테스트 수행 후 발생한 결함의 재발 방지를 위해 결함을 추적하고 관리하는 활동
- 에러 등록 -> 에러 분석 -> 결함 확정 -> 결함 할당 -> 결함 조치 -> 결함 조치 검토 및 승인
- 시스템 결함 : 비정상적인 종료/중단, 응답 시간 지연, DB 에러 등 주로 어플리케이션 환경이나 DB 처리에서 발생하는 결함
- 기능 결함 : 요구사항 미반영/불일치, 부정확한 비즈니스 프로세스, 스크립트 에러, 타 시스템 연동 오류 등 기획, 설계, 업무 시나리오 단계에서 발생하는 결함
- GUI 결함 : 응용 프로그램의 UI 비일관성, 부정확한 커서/메시지, 데이터 타입 표시 오류 등 사용자 화면 설계에서 발생하는 결함
- 문서 결함 : 기획자, 사용자, 개발자 간에 의사소통과 기록이 원활하지 않은 경우 발생하는 결함, 사용자 온/오프라인 매뉴얼 불일치, 요구사항 분석서와 기능 요구사항 불일치로 인한 불완전한 상태의 문서
어플리케이션 성능 측정 지표
- 처리량 : 처리할 수 있는 트랜잭션 수
- 응답시간 : 입력이 끝난 후 응답 출력이 개시될 때 까지의 시간
- 경과 시간 : 요구를 입력한 시점부터 트랜잭션 처리 후 결과 출력이 완료될 때 까지의 시간
- 자원사용률 : 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량
유형별 성능 분석 도구
- 성능/부하/스트레스 점검 도구 : 성능 점검을 위해 가상의 사용자 생성 후, 측정 지표 점검
- 모니터링 도구 : 실행 시 자원 사용량 확인 및 분석 가능한 도구
성능 저하 원인 분석
- DB 연결 및 쿼리 실행 : DB Lock, 악성 쿼리 분포, 불필요한 DB 패치, 연결 누수/부적절한 커넥션 풀 크기
- 내/외부적인 요인 : 인터넷 접속 불량, 대용량 파일 업/다운로드, 외부 호출(HTTP, 소켓)로 인한 성능 저하
- 기타 환경 설정 : 스레드풀, 힙 메모리 크기를 작게 설정 -> 힙 메모리 풀
- 네트워크 문제 : 장비 관련
'정보처리기사' 카테고리의 다른 글
[실기] 제 9과목 - 소프트웨어 개발 보안 구축 요점 정리 (0) | 2023.05.07 |
---|---|
[실기] 제 8과목 - SQL 응용 요점 정리 (0) | 2023.05.04 |
[실기] 제 5, 6과목 - 화면 설계 요점 정리 (0) | 2023.05.04 |
[실기] 제 4과목 - 서버 프로그램 구현 요점 정리 (0) | 2023.05.04 |
[실기] 제 3과목 - 통합 구현 요점 정리 (0) | 2023.05.04 |