Certificate/정보처리기사

[velog] 정처기 실기 요약 [10] 애플리케이션 테스트

Walker_ 2024. 3. 16. 12:42

https://velog.io/@dlsdk2526/%EC%A0%95%EC%B2%98%EA%B8%B0-%EC%8B%A4%EA%B8%B0-%EC%9A%94%EC%95%BD-10-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%ED%85%8C%EC%8A%A4%ED%8A%B8

 

정처기 실기 요약 [10] 애플리케이션 테스트

소프트웨어 테스트 원리테스팅은 결함이 존재함을 밝히는것완벽한 테스팅은 불가능개발 초기에 테스팅 시작요르돈의 법칙(눈덩이 법칙) : 개발 초기에 테스팅 하지 않으면 비용이 커진다.결함

velog.io

 

좋은 공부자료를 공유해주시는 분들 감사합니다.


소프트웨어 테스트 원리

 - 테스팅은 결함이 존재함을 밝히는 것

 - 완벽한 테스팅은 불가능

 - 개발 초기에 테스트 시작

  - 요르돈의 법칙(눈덩이 법칙) : 개발 초기에 테스팅 하지 않으면 비용이 커진다.

 - 결함 집중

  - 파레토 법칙 : 오류의 80%는 전체 모듈의 20% 안에서 발견된다.

 - 살충제 패러독스 : 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함

 - 테스팅은 정황에 의존적 : 소프트웨어의 성격에 맞게 테스트 실시

 - 오류-부재의 궤변 : 요구사항을 충족시키지 못한다면, 결함이 없다고해도 품질이 높다고 볼 수 없음

 

테스트 시각에 따른 분류

 - 검증, 확인

 

테스트 목적에 따른 분류 (회안성 구회병)

 - 회복 테스트, 안전 테스트, 성능 테스트, 구조 테스트, 회귀 테스트, 병행 테스트

 

성능 테스트 상세 유형(부스스내)

 - 부하, 스트레스, 스파이크, 내구성 테스트

 

테스트 종류에 따른 분류

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

 

정적 테스트

 - 정적 분석 : 자동화된 도구를 이용하여 산출물의 결함을 검출하거나 복잡도를 측정(도구)

 - 리뷰

  - 익스펙션(동료검토)

  - 워크스루

 

동적 테스트

 - 화이트박스 테스트 (구조 기반 테스트)

  - 구문, 결정, 조건, 조건/결정, 변경 조건/결정, 다중 조건, 기본 경로, 제어 흐름, 데이터 흐름

 

 - 블랙박스 테스트 (명세 기반 테스트)

  - 동등분할, 경곗값, 결정 테이블, 상태 전이, 유스케이스, 분류 트리, 페어와이즈, 원인-결과 그래프, 비교 테스트

 

 -경험 기반 테스트

  - 탐색적, 오류 추정, 체크리스트, 특성테스트

 

 - 테스트 오라클

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

 

 - 테스트 레벨 종류

  - 단위 테스트, 통합, 시스템, 인수 테스트(알파, 베타 테스트)

 

 - 단위 테스트

  - 목 객체, 목 객체 유형(더미, 테스트스텁, 테스트 드라이버, 테스트 스파이, 가짜 객체)

 

 - 통합 테스트

  - 비점증적인 방식 (빅뱅 방식)

  - 점증적인 방식 (하향식 테스트, 상향식 테스트, 샌드위치 테스트)

 

 - 테스트 자동화 도구//단답형

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

 

 - 테스트 하네스

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

 

 - 결함 분석 방법

  - 구체화, 고립화, 일반화

 

 - 결함 심각도(치주 보경단)

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

 

 - 결함 우선 순위

  - 결정적 > 높음 > 보통 > 낮음

 

- 애플리케이션 성능 측정 지표

 - 처리량, 응답시간, 경과 시간, 자원 사용율

 

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

 - 데이터베이스 락, 불필요한 데이터베이스 패치, 연결 누수, 부적절한 커넥션 풀 크기

 

베드 코드

 - 외계인 코드, 스파게티 코드, 알 수 없는 변수명, 로직 중복

 

클린 코드

 - 가독성, 단순성, 의존성 최소, 중복성 제거, 추상화, 느슨한 결합

 

소스코드 품질분석 도구

 - 정적 분석도구

  - pmd, cppcheck, checkstyle

 - 동적 분석도구

  - Avalanche, Valgrind

 

리팩토링

 - 목적 : 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질 향상