정보처리기사/[inflearn] 필기 (완)

정보처리기사 - 제2과목 소프트웨어 개발 / 애플리케이션 테스트 관리 (2)

web_seul 2022. 3. 31. 18:19

 제2과목 애플리케이션 테스트 관리 

▷ 애플리케이션 테스트 관리 C

> 테스트 자동화 도구

- 테스트 자동화의 개념 : 반복작업을 쉽고 효율적으로 테스트 수행, 휴먼에러감소, 정확성유지, 품질향상

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

  장점 : 재입력 및 재구성 등 반복작업의 자동화로 시간 단축, 객관적 평가, 그래프 제공

  단점 : 사용법 숙지필요, 프로그램비용 발생

- 테스트 자동화 수행시 고려사항 : 측정불가한 테스트x, 용도에 맞는 적절한 도구 사용, 환경설정 및 습득기간을 고려하여 일정계획 필요, 테스트 엔지니어 투입시기 결정

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

  정적 분석도구(프로그램실행없이 분석), 테스트 실행 도구, 성능 테스트 도구(가상의 사용자가 테스트, 성능목표달성)

  테스트 통제 도구(결함관리), 테스트 하네스 도구(모듈테스트 환경 일부분, 코드, 데이터)

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

  테스트 계획 - 요구사항 관리 : 사용자 요구사항 정의, 변경사항 관리

  테스트 분석, 설계 - 테스트 케이스 생성

  테스트 수행 - 테스트 자동화, 정적 분석, 동적 분석(시뮬레이션), 성능 테스트(처리능력), 모니터링(자원상태분석)

  테스트 관리 - 커버리지 분석(완료 후 충분여부), 형상관리, 결함 추적관리

 

> 결함관리

- 결함(Fault)의 정의 : 오류, 작동실패 등 설계(예상)와 다른 동작

- 결함 관리 프로세스

  결함관리계획 -> 결함기록(테스트 결함관리 DB) -> 결함검토 -> 결함수정 -> 결함재확인 -> 결함상태 추적 및 모니터링 활동(게시판 형태) -> 최종결함 분석 및 보고서 작성

- 결함 상태 추적

  결함 분포(결함수 측정), 결함 추세(시간, 결함 수), 결함 에이징(특정 결함상태 지속시간)

- 결함 추적 순서 

  결함등록 -> 결함검토 -> 결함 할당(담당자) -> 결함수정 -> 결함조치 보류(수정불가능, 연기) -> 결함종료(승인) -> 결함해제

- 결함 분류

  시스템결함, 기능결함(요구사항 미반영), GUI결함(화면설계 결함), 문서결함(요구사항과 기능요구사항의 불일치)

- 결함 심각도

  High(프로세스진행 중단), Medium(프로세스 영향, 부정확한 기능), Low(프로세스 영향x)

- 결함 우선순위 : 결함중요도, 심각도

- 결함 관리 도구

  Mantis(결함관리도구(추적, 통합), 단위별작업기록), Trac(발생결함 추적, 결함통합관리), Redmine((추적), Bugzilla(결함신고, 확인, 처리, 관리도구, 심각도에 따른 우선순위 설정가능)

 

▷ 애플리케이션 테스트 관리 D

> 애플리케이션 성능 분석

- 애플리케이션 성능 : 사용자의 요구사항을 최소한의 자원으로 최대한의 기능을 신속하게 처리하는 정도

  처리량 : 일정시간내 처리하는 일의 양

  응답시간 : 요청전달시점부터 응답도착시간까지

  경과시간 : 작업의뢰시간부터 처리완료시간까지

  자원사용률 : cpu, 메모리, 네트워크 등의 자원사용률

- 성능 테스트 도구

  Jmeter : 다양한 프로토콜 지원

  LoadUI : 사용자 편리성 강화

  OpenSTA : 프로토콜에 부하테스트, 생산성, 모니터링 처리

- 시스템 모니터링(Monitoring) 도구 : 사용량 확인 분석도구

 Scouter, Zabbix

- 애플리케이션 성능저하 원인 분석 : DB의 많은 데이터 요구, 커넥션풀(DB와 연결된 커넥션을 pool에 미리 생성하여 사용)의 크기가 크거나 작을 경우, 네트워크 접속불량, 대량파일 업다운로드, 전송실패 및 지연

 

> 애플리케이션 성능 개선

- 소스코드 최적화

  클린코드(이해용이, 수정 및 추가가 단순 명료), 나쁜코드(복잡, 이해성저하)

  클린코드 작성원칙 : 가독성, 단순성, 의존성 배제(다른 모듈에 영향), 중복성 최소화, 추상화(간략화)

- 소스코드 최적화 유형

  클래스 분할 배치(1:1), 느슨한 결합(의존성 최소화), 코딩 형식 준수(줄바꿈, 배치순서 등), 기억하기 좋은 네이밍, 발음이 용이한 단어사용, 적절한 주석

- 소스코드 품질 분석도구 : 결함발견

  정적 분석도구 : 소스코드 실행없이 코딩표준, 스타일, 결함 확인, 복잡도, 모델의존성, 불일치성 분석

  동적 분석도구 : 소스코드 실행하여 결함관리

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

  Pmd(미사용변수, 최적화되지않은 코드), cppcheck(메모리, 오버플로우), sonarQube(코드복잡도, 코딩설계) - 정적

  checkstyle(소스코드 표준), ccm(복잡도), cobertura(자바언어 코드 복잡도) - 정적

  avalanche(프로그램에 대한 결함 분석), valgrind(메모리, 쓰레드(실행프로그램 단위)) - 동적

 

반응형