728x90

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

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

- 개발된 소프트웨어가 제대로 만들어 졌는지 테스트하는 절차

- 테스트를 마치면 테스트 계획서, 케이스, 시나리오, 결과서가 산출

- 에러는 빨리 발견될수록 좋음

- 테스트 계획 : 프로젝트 계획서 및 요구 명세서를 기반으로 테스트 목표를 정의하고 테스트 대상 및 범위 결정

- 테스트 분석 및 디자인 : 테스트의 목적과 원칙을 검토하고 사용자의 요구사항 분석

- 테스트 케이스 및 시나리오 작성 : 테스트 케이스를 작성, 검토 및 확인 후 시나리오 작성

- 테스트 수행 : 테스트 환경 구축 후 테스트 수행

- 테스트 결과 평가 및 리포팅 : 테스트 결과를 분석하여 테스트 결과 작성

- 결함 추적 및 관리 : 테스트 수행 후 결함이 어디에서 발생했고 어떤 결함인지 추적하고 관리

 

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

테스트 케이스

- 사용자의 요구사항이 준수되었는지 확인하기 위해 테스트 항목에 대한 명세서

- 명세 기반 테스트의 설계 산출물

- 테스트 케이스 작성 순서

 

테스트 시나리오

- 테스트 케이스를 적용하는 구체적인 절차를 명세한 문서

 

테스트 오라클

- 테스트 결과가 올바른지 판단하기 위해 정의된 참 값을 대입하여 비교

- 테스트 오라클의 특징

    -> 제한된 검증 : 모든 테스트 케이스에는 적용 불가

    -> 수학적 기법 : 수학적 기법을 통해 테스트 오라클 값을 구할 수 있음

    -> 자동화 기능 : 테스트 대상에 대한 실행, 결과 비교 등을 자동화할 수 있음

- 테스트 오라클의 종류

    -> 참 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공

    -> 샘플링 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공

    -> 추정 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고 나머지 값에 대해서는 추정으로 처리

    -> 일관성 검사 오라클 : 변경 시 테스트 케이스 수행 전과 후의 결과 값이 동일한지 확인

 

테스트 자동화 도구

테스트 자동화의 개념

- 반복적인 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용하여 쉽고 효율적으로 테스트 수행

 

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

- 장점

    -> 반복적인 작업을 자동화해 인력 및 시간 절감

    -> 향상된 테스트 품질 보장

    -> 사용자의 요구사항 등을 일관성 있게 검증

    -> 테스트 결과에 대한 객관적인 평가 기준 제공

    -> 테스트 결과를 다양한 표시 형태로 제공

    -> UI가 없는 서비스도 정밀 테스트 가능

- 단점

    -> 사용방법에 대한 교육 및 학습 필요

    -> 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요

 

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

- 모든 과정이 아닌 그때그때 맞는 적절한 도구를 선택

- 자동화 도구를 고려하여 프로젝트 일정 계획

- 프로젝트 초기에 테스트 엔지니어 투입 시기 계획

 

테스트 자동화 도구의 유형

- 정적 분석 도구 : 프로그램을 실행하지 않고 소스코드를 통해 결함을 발견

- 테스트 실행 도구 : 스크립트 언어를 사용하여 테스트를 실행

- 성능 테스트 도구 : 가상의 사용자를 만들어 테스트를 수행

- 테스트 통제 도구 : 테스트 계획 및 관리, 수행, 결함 관리 등을 수행

- 테스트 하네스 도구

    -> 테스트가 실행될 환경을 시뮬레이션하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 함

    -> 구성요소 : 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트

 

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

- 테스트 계획 단계 : 요구사항 관리 도구

- 테스트 분석 및 설계 단계 : 테스트 케이스 생성 도구

- 테스트 수행 단계 : 테스트 자동화 / 정적 분석 / 동적 분석 / 성능 테스트 / 모니터링 도구

- 테스트 관리 단계 : 커버리지 분석 / 형상 관리 / 결함 추적 및 관리 도구

 

결함 관리

결함의 정의 

- 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것

 

결함 관리 프로세스

- 애플리케이션 테스트에서 발견된 결함을 처리

 

결함 상태 추적

- 테스트에서 발견된 결함은 지속적으로 상태 변화를 추적하고 관리해야 함

- 결함 분포 : 특정 속성에 해당하는 결함 수 측정

- 결함 추세 : 시간에 따른 결함 수의 추이 분석

- 결함 에이징 : 결함 상태로 지속되는 시간 측정

 

결함 추적 순서

- 결함이 발견되고 해결될 때까지의 과정

 

결함 분류

- 시스템 결함 : 주로 애플리케이션이나 데이터베이스 처리에서 발생된 결함

- 기능 결함 : 애플리케이션의 기획, 설계, 업무 시나리오 등의 단계에서 유입된 결함

- GUI 결함 : 화면 설계에서 발생된 결함

- 문서 결함 : 기획자, 사용자, 개발자 간 의사소통 및 기록이 원활하지 않아 발생된 결함

 

결함 심각도

- 결함이 전체 시스템에 미치는 치명도를 High, Medium, Low로 나눔

 

결함 우선순위

- 발견된 결함 처리에 대한 신속성을 나타내는 척도

- 결함의 중요도와 심각도에 따라 설정되고 수정 여부 결정

- Critical, High, Medium, Low 또는 즉시 해결, 주의 요망, 대기, 개선 권고 등으로 분류

 

결함 관리 도구

- Mantis : 소프트웨어 설계 시 단위 별 작업 내용을 기록할 수 있어 결함 및 이슈 관리, 추적 도구

- Trac : 결함 추적 및 통합 관리 도구

- Redmine : 프로젝트 관리 및 결함 추적 도구

- Bugzilla : 결함을 지속적으로 관리하고 심각도와 우선순위를 지정할 수 있는 도구

 

애플리케이션 성능 분석

애플리케이션 성능

- 사용자가 요구한 기능을 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도

- 측정 지표 : 처리량, 응답 시간, 경과 시간, 자원 사용률

 

성능 테스트 도구

- 애플리케이션의 성능을 테스트 하기 위해 부하나 스트레스를 가해 성능 측정 지표를 점검하는 도구

- JMeter : 다양한 프로토콜을 지원하는 부하 테스트 도구

- LoadUI : 사용자의 편리성이 강화된 부하 테스트 도구

- OpenSTA : HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구

 

시스템 모니터링 도구

- 애플리케이션 실행 중 시스템 자원의 사용량을 확인하고 분석하는 도구

- 성능 저하의 원인 / 시스템 부하량 / 사용자 분석과 같은 시스템을 안정적으로 운영할 수 있는 기능 제공

- Scouter, Zabbix

 

애플리케이션 성능 개선

소스코드 최적화

- 나쁜 코드를 배제하고 클린 코드로 작성

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

 

소스 코드 최적화 유형

- 클래스 분할 배치, 느슨한 결합, 코딩 형식 준수, 좋은 이름 사용, 적절한 주석문 사용

 

 

실기 정리

 

2021 정보처리기사 실기 정리

본 정리 글은 시나공 정보처리기사 실기책과 2020년 기출문제 등을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 실기 수험생들의 궁금증을 100% 반영시험에 나올만한 내

1d1cblog.tistory.com

 

728x90

+ Recent posts