[자격증] 정보처리기사 필기 : 제2과목 소프트웨어 개발 (애플리케이션 테스트 관리)

 정보

  • 업무명     : 정보처리기사 필기 : 제2과목 소프트웨어 개발 (애플리케이션 테스트 관리)

  • 작성자     : 이상호

  • 작성일     : 2021-03-01

  • 설   명      :

  • 수정이력 :

 

etc-image-0

 

 내용

[애플리케이션 테스트]

  • 애플리케이션 테스트의 개념

  • 애플리케이션 테스트의 필요성

  • 애플리케이션 테스트의 기본 원리

 

[애플리케이션 테스트의 분류]

  • 프로그램 실행 여부에 따른 테스트

    • 정적 테스트

    • 동적 테스트

  • 테스트 기반(Test Bases)에 따른 테스트

    • 명세 기반 테스트

    • 구조 기반 테스트

    • 경험 기반 테스트

  • 시각에 따른 테스트

    • 검증 테스트

    • 확인 테스트

  • 목적에 따른 테스트

    • 회복 테스트, 안전 테스트, 강도 테스트

    • 성능 테스트, 구조 테스트, 회귀 테스트

       

    • 병행 테스트

 

[테스트 기법에 따른 에플리케이션 테스트]

  • 화이트박스 테스트(White Box Test)

  • 블랙박스 테스트(Black Box Test)

 

etc-image-1

 

[개발 단계에 따른 애플리케이션 테스트]

  • 단위 테스트(Unit Test)

  • 통합 테스트(Integation Test)

    • 비점진적 통합방식

      • 빅뱅 통합검사

    • 점진적 통합방식

      • 하향식 통합 검사

      • 상향식 통합검사

      • 혼합식 통합검사

  • 검증 테스트

    • 형상 검사

    • 알파 검사

    • 베타 검사

  • 시스템 테스트

    • 복구 검사

    • 보안 검사

    • 강도 검사

    • 성능 검사

 

[애플리케이션 테스트 프로세스]

  • 애플리케이션 테스트 프로세스

    • 테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 →  테스트 수행-테스트 결과 평가 및 리포팅 → 결함추적 및 관리

    • 테스트 계획서, 테스트 케이스, 테스트 시나리오, 테스트 결과서

  • 테스트 계획

    • 테스트 시작 조건

    • 테스트 종료조건

  • 테스트 분석 및 디자인

  • 테스트 케이스 및 시나리오 작성

  • 테스트 수행

  • 테스트 결과 평가 및 리포팅

  • 결함 추적 및 관리

    • 에러 발견, 에러 등록, 에러 분석, 결함 확정, 결함 할당, 결함 조치, 결함 조치 검토 및 승인

 

[테스트 케이스/테스트 시나리오/테스트 오라클]

  • 테스트 케이스(Test Case)

  • 테스트 케이스 작성 순서

    • ① 테스트 계획 검토 및 우선순위 결정

    • ② 위험 평가 및 우선 순위 결정

    • ③ 테스트 요구사항 정의

    • ④ 테스트 구조 설계 및 테스트 방법결정

    • ⑤ 테스트 케이스 정의

    • ⑥ 테스트 케이스 타당성 확인및 유지보수

  • 테스트 시나리오(Test Scenario)

  • 테스트 시나리오 작성 시 유의 사항

  • 테스트 오라클(Test Oracle)

    • 제한된 검증, 수학적 기법, 자동화 가능

  • 테스트 오라클의 종류

    • 참 오라클, 샘플링 오라클, 추정 오라클, 일관성 검사 오라클

 

[테스트 자동화 도구]

  • 테스트 자동화의 개념

  • 테스트 자동화 도구의 장점/단점

    • 장점

    • 단점

  • 테스트 자동화 수행 시 고려사항

  • 테스트 자동화 도구의 유형

    • 정적 분석 도구, 테스트 실행 도구, 성능 테스트 도구

    • 테스트 통제 도구, 테스트 하네스 도구

  • 테스트 수행 단계별 테스트 자동화 도구

    • 테스트 계획 – 요구사항 관리

    • 테스트 분석/설계 – 테스트 케이스 생성

    • 테스트 수행 – 테스트 자동화, 정적 분석, 동적 분석, 성능 테스트, 모니터링

    • 테스트 관리 – 커버리지 분석, 형상 관리, 결함 추적/관리

 

[결함 관리]

  • 결함(Fault)의 정의

  • 결함 관리 프로세스

    • 결함 관리 계획 → 결함 기록 → 결함 검토 → 결함 수정 → 결함 재확인 → 결함 상태 추적 및 모니터링 활동 → 최종 결함 분석 및 보고서 작성

  • 결함 상태 추적

    • 결함 분포, 결함 추세, 결함 에이징

  • 결함 추적 순서

    • 결함 등록 → 결함 검토 → 결함 할당 → 결함 수정 → 결함 조치 보류 → 결함 종료 →  결함 해제

  • 결함 분류

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

  • 결함 심각도

    • High, Medium, Low

  • 결함 우선순위

  • 결함 관리 도구

    • Mantis, Trac, Redmine, Bugzilla

 

[애플리케이션 성능 분석]

  • 애플리케이션 성능

    • 처리량

    • 응답시간

    • 경과시간

    • 자원 사용률

  • 성능 테스트 도구

    • Jmeter

    • LoadUI

    • OpenSTA

  • 시스템 모니터링(Monitoring) 도구

    • Scouter

    • Zabbix

  • 애플리케이션 성능 저하 원인 분석

 

[애플리케이션 성능 개선]

  • 소스 코드 최적화

    • 클린코드, 나쁜코드

    • 클린코드 작성원칙 : 가독성, 단순성, 의존성 배제, 중복성 최소화,추상화

  • 소스 코드 최적화 유형

    • 클래스 분할 배치, 느슨한 결합, 코딩 형식 준수

  • 소스 코드 품질 분석 도구

    • 정적 분석도구

    • 동적 분석도구

  • 소스 코드 품질 분석 도구의 종류

    • Pmd, cppcheck, sonarQube,

    • checkstyle, ccm, cobertura,

    • avalanche, valgrind

 

[연습문제]

  • 블랙 박스 테스트로 발견하기 어려운 오류는?

    • ① 인터페이스 오류

    • ② 행위나 성능 오류

    • ③ 잘못되거나 누락된 기능

    • ④ 모듈 내의 논리 구조상의 오류

 

  • 다음 중 테스트 오라클의 종류가 아닌 것은?

    • ① 참 오라클

    • ② 거짓 오라클

    • ③ 샘플링 오라클

    • ④ 추정 오라클

 

  • 다음 테스트 케이스 작성 절차에 대한 설명 중 가장 적합하지 않은 것은?

    • ① 테스트 계획 검토 및 자료를 확보한다.

    • ② 결함 해결에 있어 상대적 중요성을 지니며 위험 평가를 통하여 테스트 우선순위 결정  을 한다.

    • ③ 테스트 절차, 장비, 도구 및 문서화 방법은 개발자가 결정한다.

    • ④ 요구사항을 테스트할 수 있는 테스트 케이스 도출을 한다.

 

  • 다음은 애플리케이션 통합 테스트 종료 기준이다. 가장 적합하지 않은 것은?

    • ① 통합 테스트 수행율

    • ② 통합 테스트 합격율

    • ③ 통합 테스트 결함 조치율

    • ④ 통합 테스트 환경 구축 완료율

 

  • 다음 중 테스트 자동화에 대한 설명으로 틀린것은?

    • ① 테스트 자동화는 사람이 하던 반복적인 테스트 절차를 자동화 하는 것이다.

    • ② 테스트 자동화를 수행하면 휴먼 에러를 줄일 수 있다.

    • ③ 자동화를 수행하면 테스트 인력 및 시간을 단축할 수 있다.

    • ④ 테스트 자동화 도구는 모두 무료이므로 추가 비용이 들지 않는다.

 

  • 클린코드 작성 원칙에 대한 설명으로 틀린 것은?

    • ① 중복이 최대화된 코드를 작성한다.

    • ② 누구든지 쉽게 이해하는 코드를 작성한다.

    • ③ 다른 모듈에 미치는 영향이 최소화된 코드를 작성한다.

    • ④ 공통된 코드를 사용한다.

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com