이안의 평일코딩

정보처리기사 실기 요약 정리 - 7. 애플리케이션 테스트 관리 본문

Certificate/정보처리기사 실기

정보처리기사 실기 요약 정리 - 7. 애플리케이션 테스트 관리

이안92 2020. 11. 19. 16:59
반응형

이 글은 수제비 정보처리기사 실기 책을 요약정리한 것으로 저작권은 건기원에 있습니다.

7. 애플리케이션 테스트 관리

1) 애플리케이션 테스트 케이스 설계

소프트웨어 테스트

=> 개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안전성 등을 만족하는지 확인하고, 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동

 

소프트웨어 테스트 필요성 (발예향, 발가락이 예쁘고 향기롭다)

=> 오류 발견 관점, 오류 예방 관점, 품질 향상 관점

 

소프트웨어 테스트 원리 (결완초집 살정오)

=> 결함이 존재, 완벽한 테스팅 불가능, 초기에 테스팅 시작, 결함집중, 살충제 패러독스, 정황에 의존, 오류-부재의 궤변

 

살충제 패러독스

=> 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함

 

오류-부재의 궤변 

=> 아무리 테스트를 완벽하게 수행해도 사용자가 요구사항을 충족시켜주지 못한다면 품질이 높다고 볼 수 없다는 원리

 

소프트웨어 테스트 산출물 (결시계케: 결혼시계 케이스)

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

 

테스트 시나리오

=> 테스트 수행 위한 여러 테스트 케이스의 집합응로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서

 

테스트 케이스 작성 절차

테스트 계획 검토 및 자료 확보 -> 위험평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정

-> 테스트 케이스 정의 -> 타당성 확인 및 유지 보수

 

정적 테스트 유형 (동워인)

=> 동료검토, 워크스루, 인스펙션

 

동적 테스트 유형 (동화블)

=> 동적 테스트, 화이트박스 테스트, 블랙박스 테스트

 

화이트박스 테스트 유형 

=> 제어구조 테스트, 루프 테스트

 

블랙박스 테스트 유형 (동경결상 유분페)

=> 동등 분할 테스트, 경계 값 분석 테스트, 결정 테이블 테스트, 상태전이 테스트, 유스케이스 테스트, 분류트리 테스트, 페어와이즈 테스트

 

테스트 목적에 따른 분류 (회안강성 구회병: 중국의 회안강서에 사는 구회병씨)

=> 회복테스트, 안전테스트, 강도테스트, 성능테스트, 구조테스트, 회귀테스트, 병행테스트

 

강도테스트

=> 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트

 

회귀테스트

=> 오류를 제거하거나 수정한 시스템에서 오류제거와 수정에 의해 새로이 유입된 오류가 없는 지 확인하는 일종의 반복 테스트

 

테스트 종류에 따른 분류 (명구경: 명나라 구경가기)

=> 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트

 

테스트 오라클

=> 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

 

테스트 오라클 종류 (참샘휴일: 참새가 휴일에 쉰다)

=> 참 오라클, 샘플링 오라클, 휴리스틱 오라클, 일관성 검사 오라클

 

테스트 레벨 종류 (단통시인: 단시일 내에 통장이 많아진 시인)

=> 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트

 

테스트 시간에 따른 테스트의 분류

검증 : 소프트웨어 과정을 테스트, 올바른 제품을 생산하고 있는 지 테스트

확인 : 소프트웨어 결과를 테스트, 만들어진 제품이 제대로 동작하는 지 테스트

 


 

2) 애플리케이션 통합 테스트

통합 테스트

=> 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법

 

통합 테스트 수행 방법

빅뱅 테스트 : 모든 모듈을 동시에 통합 후 테스트 수행, 드라이버/스텁 없이 실제 모듈로 테스트

상향식 테스트 : 최하위 모듈부터 점진적으로 상위 모듈과 함께 트스트, 테스트 드라이버 필요

하향식 테스트 : 최상위 모듈부터 하위 모듈들을 통합하면서 테스트, 테스트 스텁 필요

 

테스트 자동화 도구 유형 (정실성통: 정신적으로 실성한 환자들 통제 도구)

=> 정적 분석 도구, 테스트 실행 도구, 성능 테스트 도구, 테스트 통제 도구

 

테스트 실행 도구

=> 데이터 주도 접근 방식, 키워드 주도 접근 방식

 

테스트 하네스

=> 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로 테스트를 지원하기 위한 코드와 데이터

 

테스트 하네스 구성요소 (드 스슈케 스목)

=> 드라이버, 스텁, 슈트, 케이스, 스크립트, 목 오브젝트

 

목 오브젝트 (Mock Object)

=> 사용자의 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위를 수행하는 객체

 

테스트 슈트

=> 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합

 

테스트 프로세스

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

 

테스트 리포팅 (정요품 결실: 과거에 급제하여 정요품으로 등극하는 결실을 맺음)

=> 테스트 결과 정리, 테스트 요약문서, 품질 상태, 테스트 결과서, 테스트 실행 절차 및 평가

 

결함 관리 프로세스 (발등 분확할 조검: 발등 엑스레이에 분석 확정할 수 있도록 조치 검토함)

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

 

결함 추이 분석 유형

=> 결함 분포 분석, 결함추세, 결함 에이징

 

결함 에이징 분석

=> 등록된 결함에 대해 특정한 결합 상태의 지속 시간을 측정하여 분석하는 것

 

테스트 커버리지(Test Coverage)

=> 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준

 

테스트 커버리지 유형 (기라코: 기존 라인은 코발트 색으로 칠함)

=> 기능 기반 커버리지, 라인 커버리지, 코드 커버리지

 

코드 커버리지 유형 (구결조 조변다)

=> 구분 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경조건/결정커버리지, 다중 조건 커버리지

 

결함 심각도별 분류 (치주 보경단: 치주염이 생긴걸 보니 경단을 먹었구먼)

=> 치명적 결함, 주요 결함, 보통 결함, 경미한 결함, 단순 결함

 


 

3) 애플리케이션 성능 개선

애플리케이션 성능 측정 지표 (처응경자: 처의 응원을 받은 경호 자원봉사자)

=> 처리량, 응답 시간, 경과 시간, 자원 사용률

 

경과 시간

=> 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간

 

데이터베이스 관련 성능 저하 원인

=> 데이터베이스 락, 불필요한 데이터베이스 패치, 연결 누수, 부적절한 커넥션 풀 크기, 확정 관련

 

애플리케이션 성능 테스트 수행 절차

성능 테스트 도구 설치 -> 테스트 환경 설정 -> 시나리오 생성 -> 성능 테스트 실행 및 모니터링

 

나쁜 코드 유형

=> 오염, 문서부족, 의미 없는 이름, 높은 결합도, 아키텍처 침식

 

클린 코드(Clean Code)

=> 잘 작성되어 가독성이 높고, 단순하여, 의존성을 줄이고 중복을 최소화하여 깔끔하게 잘 정리된 코드

 

클린 코드 유형 

=> 의미 있는 이름, 간결하고 명확한 주석, 보기 좋은 배치, 작은 함수, 읽기 쉬운 제어 흐름, 오류처리

 

정적 분석 도구

=> 작성된 소스코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수여부, 코딩 스타일 적정여부, 잔존 결함 발견 여부를 확인하는 코드분석도구

=> pmd, cppcheck, sonarQube, checkstyle

 

동적 분석 도구

=> Avalanche, Valgrind

 

애플리케이션 성능 개선 방안 (소아프 메입시애 : 소가 아프니 메입 시 애를 먹었다)

=> 소스코드 최적화 기법 적용, 아키텍처 조정을 통한 성능 개선, 프로그램 호출 순서 조정 적용, 메모리 사용 최소화 적용, 입출력 발생 최소화 적용, System.out.println()을 사용 제외, 애플리케이션 성능 현황 관리

 

반응형
Comments