테스트 자동화 도구
테스트 자동화의 개념
- 반복적인 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용하여 쉽고 효율적으로 테스트 수행
테스트 자동화 도구의 장단점
- 장점
-> 반복적인 작업을 자동화해 인력 및 시간 절감
-> 향상된 테스트 품질 보장
-> 사용자의 요구사항 등을 일관성 있게 검증
-> 테스트 결과에 대한 객관적인 평가 기준 제공
-> 테스트 결과를 다양한 표시 형태로 제공
-> UI가 없는 서비스도 정밀 테스트 가능
- 단점
-> 사용방법에 대한 교육 및 학습 필요
-> 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요
테스트 자동화 수행 시 고려사항
- 모든 과정이 아닌 그때그때 맞는 적절한 도구를 선택
- 자동화 도구를 고려하여 프로젝트 일정 계획
- 프로젝트 초기에 테스트 엔지니어 투입 시기 계획
테스트 자동화 도구의 유형
- 정적 분석 도구 : 프로그램을 실행하지 않고 소스코드를 통해 결함을 발견
- 테스트 실행 도구 : 스크립트 언어를 사용하여 테스트를 실행
- 성능 테스트 도구 : 가상의 사용자를 만들어 테스트를 수행
- 테스트 통제 도구 : 테스트 계획 및 관리, 수행, 결함 관리 등을 수행
- 테스트 하네스 도구
-> 테스트가 실행될 환경을 시뮬레이션하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 함
-> 구성요소 : 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트
테스트 수행 단계별 테스트 자동화 도구
- 테스트 계획 단계 : 요구사항 관리 도구
- 테스트 분석 및 설계 단계 : 테스트 케이스 생성 도구
- 테스트 수행 단계 : 테스트 자동화 / 정적 분석 / 동적 분석 / 성능 테스트 / 모니터링 도구
- 테스트 관리 단계 : 커버리지 분석 / 형상 관리 / 결함 추적 및 관리 도구
결함 관리
결함의 정의
- 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것
결함 관리 프로세스
- 애플리케이션 테스트에서 발견된 결함을 처리
결함 상태 추적
- 테스트에서 발견된 결함은 지속적으로 상태 변화를 추적하고 관리해야 함
- 결함 분포 : 특정 속성에 해당하는 결함 수 측정
- 결함 추세 : 시간에 따른 결함 수의 추이 분석
- 결함 에이징 : 결함 상태로 지속되는 시간 측정
결함 추적 순서
- 결함이 발견되고 해결될 때까지의 과정
결함 분류
- 시스템 결함 : 주로 애플리케이션이나 데이터베이스 처리에서 발생된 결함
- 기능 결함 : 애플리케이션의 기획, 설계, 업무 시나리오 등의 단계에서 유입된 결함
- GUI 결함 : 화면 설계에서 발생된 결함
- 문서 결함 : 기획자, 사용자, 개발자 간 의사소통 및 기록이 원활하지 않아 발생된 결함
결함 심각도
- 결함이 전체 시스템에 미치는 치명도를 High, Medium, Low로 나눔
결함 우선순위
- 발견된 결함 처리에 대한 신속성을 나타내는 척도
- 결함의 중요도와 심각도에 따라 설정되고 수정 여부 결정
- Critical, High, Medium, Low 또는 즉시 해결, 주의 요망, 대기, 개선 권고 등으로 분류
결함 관리 도구
- Mantis : 소프트웨어 설계 시 단위 별 작업 내용을 기록할 수 있어 결함 및 이슈 관리, 추적 도구
- Trac : 결함 추적 및 통합 관리 도구
- Redmine : 프로젝트 관리 및 결함 추적 도구
- Bugzilla : 결함을 지속적으로 관리하고 심각도와 우선순위를 지정할 수 있는 도구
애플리케이션 성능 분석
애플리케이션 성능
- 사용자가 요구한 기능을 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도
- 측정 지표 : 처리량, 응답 시간, 경과 시간, 자원 사용률
성능 테스트 도구
- 애플리케이션의 성능을 테스트 하기 위해 부하나 스트레스를 가해 성능 측정 지표를 점검하는 도구
- JMeter : 다양한 프로토콜을 지원하는 부하 테스트 도구
- LoadUI : 사용자의 편리성이 강화된 부하 테스트 도구
- OpenSTA : HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구
시스템 모니터링 도구
- 애플리케이션 실행 중 시스템 자원의 사용량을 확인하고 분석하는 도구
- 성능 저하의 원인 / 시스템 부하량 / 사용자 분석과 같은 시스템을 안정적으로 운영할 수 있는 기능 제공
- Scouter, Zabbix
애플리케이션 성능 저하 원인 분석
- 애플리케이션을 DB에 연결하기 위해 커넥션 객체를 생성하거나 쿼리를 실행하는 애플리케이션 로직에서 자주 발생
애플리케이션 성능 개선
소스코드 최적화
- 나쁜 코드를 배제하고 클린 코드로 작성
- 클린 코드 작성 원칙 : 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화
소스 코드 최적화 유형
- 클래스 분할 배치, 느슨한 결합, 코딩 형식 준수, 좋은 이름 사용, 적절한 주석문 사용
필기 정리
'2020(개정) 이후 정보처리기사 > 2과목 : 소프트웨어 개발' 카테고리의 다른 글
2020 정보처리기사 필기 - 2.5 인터페이스 구현(2) (0) | 2020.04.16 |
---|---|
2020 정보처리기사 필기 - 2.5 인터페이스 구현(1) (0) | 2020.04.16 |
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(2) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(1) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(2) (0) | 2020.04.15 |