정처기 실기 용어정리 (7장)

모래사우르스
|2024. 10. 13. 00:29

애플리케이션 테스트 : 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차. 요구사항을 만족하는지 확인(Validation), 기능을 수행하는지 검증(Verification)

 

파레토 법칙 : 20%에 해당하는 코드에서 전체 결함의 80%가 발견됨

살충제 페러독스 : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않음

오류-부재의 궤변 : 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 고품질이 아님

 

테스트의 종류

정적 테스트 : 프로그램을 실행하지 않고 분석 (ex. 워크스루, 인스펙션)

동적 테스트 : 프로그램을 실행하고 분석 (ex. 블랙박스 테스트, 화이트박스 테스트)

 

명세 기반 테스트 : 명세를 잘 구현했는지 (ex. 동등 분할, 경계값 분석)

구조 기반 테스트 : 논리 흐름 (ex. 구문 기반, 결정 기반, 조건 기반)

경험 기반 테스트 : 테스터의 경험 기반 (ex. 에러 추정, 체크리스트)

 

검증 테스트 : 개발자의 시각에서 테스트

확인 테스트 : 사용자의 시각에서 테스트

 

강성 병안 복귀구 (강성오의 을 갔다. 곧 복귀한다?) - 강도 / 성능 / 병행 / 안전 / 회복 / 회귀 / 구조

강도 테스트 : 과부하 시 정상 실행 되는지

성능 테스트 : 성능, 효율성 진단

병행 테스트 : 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과 비교

안전 테스트 : 불법적인 침입으로부터 안전한지

회복 테스트 : 실패하게 한 후 올바르게 복구되는지

회귀 테스트 : 변경 또는 수정된 코드에 새로운 결함이 없는지

구조 테스트 : 논리적인 경로, 복잡도 등을 평가

 

화이트 박스 테스트 : 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

기제 - 기초 경로 검사 / 제어 구조 검사

기초 경로 검사(Base Path Testing) : 설계자가 복잡성 측정

제어 구조 검사(Control Structure Testing) : 조루데 - 조건 / 루프 / 데이터 흐름

     조건 검사(Condition Testing) : 논리적 조건 테스트

     루프 검사(Loop Testing) : 반복 구조에 초점을 맞춤

     데이터 흐름 검사(Data Flow Testing) : 변수의 정의, 변수 사용의 위치에 초점

 

화이트박스 테스트 검증 기준

문분조 - 문장 검증 기준 / 분기 검증 기준 / 조건 검증 기준 / 분기/조건 기준

문장(구문) 검증 기준 : 모든 구문이 한번 이상 수행

분기(결정) 검증 기준 : 조건식이 참(True), 거짓(False)일 때 수행

조건 검증 기준 : 조건식에 상관없이 개별조건이 참(True), 거짓(False)일 때 수행

분기/조건 기준 : 입력데이터를 구분

 

블랙박스 테스트(=기능 테스트) : 각 기능이 완전히 작동되는 것을 입증하는 테스트

동경 원오비(나는 블랙팬서를 동경한다. 그는 나의 원오비(워너비)이다.) - 동치 분할 검사 / 경계값 분석 / 원인-효과 그래프 검사 / 오류 예측 검사 / 비교 검사

동치 분할 검사(Equivalence Partitioning Testing) (=동등 분할 기법): 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 동일하게 맞춰서 입력.

경계값 분석(Boundary Value Analysis) : 오류가 발생될 확률이 높은 경계값을 입력

원인-효과 그래프 분석(Cause-Effect Graphing Testing) : 효용성이 높은 테스트 케이스 선정

오류 예측 검사(Error Guessing) : 과거의 경험, 감각으로 테스트

비교 검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 입력값을 주고 비교

 

개발 단계에 따른 애플리케이션 테스트

단통시인 - 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트

단위 테스트(Unit Test) : 모듈이나 컴포넌트에 초점을 맞춤

통합 테스트(Integration Test) : 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정

시스템 테스트(System Test) : 개발된 소프트웨어가 완벽하게 수행되는가를 점검

인수 테스트(Acceptance Test) : 사용자의 요구사항을 충족하는지에 중점을 둠 (ex. 알파 테스트, 베타 테스트)

     알파 테스트 : 사용자와 개발자가 함께 확인

     베타 테스트 : 사용자가 직접 테스트

 

통합 테스트

하상회 - 하향식 / 상향식 / 회귀

하향식 통합 테스트(Top Down) : 상위 모듈->하위 모듈. 깊이 우선 통합법이나 넓이 우선 통합법을 사용함.

                                                    스텁(Stub)으로 대체.

상향식 통합 테스트(Bottom Up) : 하위 모듈-> 상위 모듈. 하위 모듈들은 클러스터(Cluster)로 결합한다.

                                                     드라이버(Driver)를 작성.

회귀 테스팅(Regression Testing) : 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인

 

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

테스트 케이스(Test Case) : 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

테스트 시나리오(Test Scenario) : 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합

테스트 오라클(Test Oracle) : 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교

참샘휴일 - 참 / 샘플링 / 휴리스틱(추정) / 일관성

참(True) 오라클 : 모든 오류 검출 가능

샘플링(Sampling) 오라클 : 전수 테스트가 불가능한 경우 사용

추정(Heuristic) 오라클 : 나머지 입력 값들은 추정으로 처리

일관성 검사(Consistent) 오라클 : 수행 전과 후의 값이 동일한지 확인

 

테스트 자동화 도구

정성하 통실 (정성하가 요즘 많이 먹어서 통실해졌다.) - 정적 분석 / 성능 테스트 / 테스트 하네스 / 테스트 통제 / 테스트 실행

정적 분석 도구(Static Analysis Tools) : 프로그램을 실행하지 않고 분석하는 도구

성능 테스트 도구(Performance Test Tools) : 가상의 사용자를 만들어 테스트 수행

테스트 하네스 도구(Test Harness Tools) : 테스트가 실행될 환경을 시뮬레이션

테스트 통제 도구(Test Control Tools) : 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행

테스트 실행 도구(Test Execution Tools) : 스크립트 언어를 사용하여 테스트 실행

 

테스트 하네스의 구성요소

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

테스트 드라이버 : 하위 모듈 호출

테스트 스텁 : 테스트용 모듈

테스트 슈트 : 테스트 케이스의 집합 (단순한 묶음. 테스트 시나리오는 동작순서에 따른 묶음)

테스트 케이스 : 테스트 항목의 명세서

테스트 스크립트 : 테스트 실행 절차에 대한 명세서 (시나리오랑 헷갈리지 말기)

목 오브젝트 : 사용자 행위를 조건부로 입력

 

결함(Fault) : 오류 발생, 작동 실패 등 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것

 

결함 관리 프로세스

계기검수재모최 - 결함 관리 계획 -> 결함 기록 -> 결함 검토 -> 결함 수정 -> 결함 재확인 -> 결함 상태 추적 및 모니터링 활동 -> 최종 결함 분석 및 보고서 작성

(일단 계기검수재모최 말고 그냥 자연스러운 흐름대로 외우면 될듯.)

 

결함 관리 측정 지표

분추에 - 결함 분포 / 결함 추세 / 결함 에이징

 

결함 추적 순서

등검할수보종해 - 결함 등록 -> 결함 검토 -> 결함 할당 -> 결함 수정 -> 결함 조치 보류 -> 결함 종료 -> 결함 해제

 

결함 심각도 : 애플리케이션에 발생한 결함이 전체 시스템에 미치는 치명도를 나타내는 척도

 

애플리케이션 성능 : 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도

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

 

성능 테스트 도구 : 애플리케이션에 부하나 스트레스를 가하면서 성능 측정 지표를 점검

시스템 모니터링 도구 : 애플리케이션이 실행되었을 때 시스템 자원의 사용량을 확인하고 분석

 

시간 복잡도 : 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것

 

빅오 표기법 : 알고리즘의 실행시간이 최악일 때를 표기하는 방법

O(1) : 입력값에 관계없음. (ex. 스택의 삽입, 삭제)

O(log n) : 단계가 감소함. (ex. 이진 트리, 이진 검색)

O(n) : 1:1 (ex. for문)

O(nlogn) : (ex. 힙 정렬, 2-way  합병 정렬)

O(n^2) : (ex. 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬)  (O(nlogn)으로 착각한다. 최악이 아닐 때는 맞음)

O(2^n) : (ex. 피보나치 수열)

 

순환 복잡도(Cyclomatic Complexity) : 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도

제어 흐름 그래프에서 cyclomatic 수를 구하는 공식

V(G) = E - N + 2 (E는 Edge(간선), N은 Node(노드))

 

클린 코드 작성 원칙

중의 단추가..! - 중복성 최소화 / 의존성 배제 / 단순성 / 추상화 / 가독성

 

소스 코드 품질 분석 도구

정동 - 정적 분석 도구(Static Analysis) / 동적 분석 도구(Dynamic Analysis)

 

 

 

 

 

 

 

 

'TIL > 기타' 카테고리의 다른 글

정처기 실기 용어정리 (9장)  (0) 2024.10.15
정처기 실기 용어정리 (8장)  (0) 2024.10.14
정처기 실기 용어정리 (6장)  (1) 2024.10.11
정처기 실기 용어정리 (5장)  (0) 2024.10.10
정처기 실기 용어정리 (4장)  (3) 2024.10.09