본문 바로가기
자격증/정보처리기능사

[정보처리기능사/실기] 애플리케이션 테스트 및 결함 요점 정리

by me_in_sk 2023. 5. 19.
반응형

파레토 법칙

대부분의 결함은 소수의 특정 모듈에 집중되어서 발생하는 경향이 존재하며, 결함의 80%는 20%의 코드에 집중되어 발생한다. 이를 결함이 높은 곳에 자원이 집중되어 있다는 파레토 법칙이라 한다.

 

살충제 패러독스

동일한 테스트 케이스에 의한 반복적인 테스트로 새로운 버그를 찾지 못하는 내성 현상을 살충제 패러독스라 한다.

 

오류 부재의 궤변

개발된 제품이 사용자의 필요와 기대에 부응하지 못하고 쓸모가 없다면 결함을 찾는 행위는 의미가 없으며, 개발한 제품은 사용자의 요구 사항과 일치하고 이를 사용하는 것에 있어서 적합해야 한다는 것을 말한다.

 

 

소프트웨어 생명 주기

  1. 요구사항 (Requirements)
  2. 분석 (Specification)
  3. 디자인 (Design)
  4. 구현 (Code)

 

테스트 과정

  1. 단위 테스트 (Unit Testing)
  2. 통합 테스트 (Integration Testing)
  3. 시스템 테스트 (System Testing)
  4. 인수 테스트 (Acceptance Testing)

 

 

화이트박스 테스트

  • 개발자 관점의 구조와 동작 기반의 테스트
  • 종류: 기초 경로 테스트, 제어 흐름 테스트, 조건 테스트, 루프 테스트, 데이터 흐름 테스트, 분기 테스트

 

블랙박스 테스트

  • 사용자 관점의 명세(요구사항과 결과물의 일치) 기반의 테스트
  • 종류: 균등 분할(동치 분해), 한계값(경계값) 테스트, 원인 효과 그래프 테스트, 비교 테스트

 

 

통합 테스트

구분 상향식 (Bottom Up) 하향식 (Top Down) 빅뱅 (Big Bang)
수행 방법 최하위 모듈부터 점진적으로 상위 모듈과 함께 수행 최상위 모듈부터 하위 모듈들을 통합하며 수행 모든 모듈을 동시 통합 후 수행
더미 모듈 드라이버 필요 스텁 필요 x
장점 오류가 난 위치의 파악이 쉽고, 모듈 개발에 시간 낭비가 없음 오류가 난 위치의 파악이 쉽고 이른 프로토타입이 가능하며, 중요 모듈의 선 테스트를 할 수 있으며 결함을 조기에 발견할 수 있음 단시간에 테스트가 가능하며, 작은 시스템에 유리
단점 이른 프로토타입이 어려우며 중요 모듈이 마지막으로 테스트 될 가능성이 있음 많은 스텁을 필요로 하며 하위 모듈들이 불충분한 테스트를 수행하게 됨  오류가 난 위치의 파악이 어렵고 모든 모듈을 개발해야 함

드라이버 : 상향식 테스트 방식에서 존재하지 않는 상위 모듈 간의 인터페이스

스텁        : 하향식 테스트 방식에서 작성이 쉬운 시험용 모듈

 

 

결함 관리 프로세스

 

결함 관리 계획 : 전체 프로세스에서 결함 관리에 대한 일정이나 인력, 업무 프로세스를 확보하여 계획

결함 기록 : 발견된 결함에 대한 정보를 결함 관리 데이터베이스에 기록

결함 검토: 등록된 결함의 주요 내용을 검토한 후, 결함 수정을 위해 개발자에게 전달

결함 수정 : 개발자는 결함이 존재하는 프로그램을 수정

결함 재확인 : 개발자가 수정한 내용을 확인한 후 다시 테스트를 수행

결함 상태 추적 및 모니터링 활동 : 결함 관리 데이터베이스를 이용하여 대시보드나 게시판 형태의 서비스를 제공

최종 결함 분석 및 보고서 작성 : 발견된 결함에 대한 내용과 이해관계자들의 의견이 반영된 보고서를 작성한 후, 결함 관리를 종료

 

 

결함 분류

  • 시스템 결함
  • 기능 결함
  • GUI 결함
  • 문서 결함

 

 

용어 정리

에러(Error) : 소프트웨어를 개발하거나 유지, 보수 중에 발생하게 되는 부정확한 결과를 의미하며, 개발자의 실수로 발생한 오타나 개발 명세서의 잘못된 이해, 서브루틴의 기능 오해로 인해 발생한다.

 

오류(Fault) : 프로그램 코드상에 존재하는 것으로 비정상적인 프로그램과 정상적인 프로그램의 버전 차이로 인해 발생하게 되며, 잘못된 연산자가 사용된 경우에 프로그램이 서브루틴으로부터 에러 리턴을 점검하는 코드가 누락되어 발생한다.

 

실패(Failure) : 정상적인 프로그램과 비정상적인 프로그램의 실행 결과 차이를 의미하며, 프로그램을 실행하며 프로그램의 실제 실행 결과를 개발 명세서에 정의된 예상 결과와 비교하는 것으로 발견한다.

 

결함(Defect) : 버그, 에러, 오류, 실패, 프로그램 실행에 대한 문제점, 프로그램 개선 사항 등의 의미를 모두 내포한다.

반응형

댓글