본문 바로가기
정보처리기사

[실기] 제 7과목 - 어플리케이션 테스트 관리 요점 정리

by 3.14pie 2023. 5. 4.

테스트 - 알려지지 않은 에러의 발견, 시스템 내부 관련자, 제 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, 소켓)로 인한 성능 저하

   - 기타 환경 설정 : 스레드풀, 힙 메모리 크기를 작게 설정 -> 힙 메모리 풀

   - 네트워크 문제 : 장비 관련