230928 TIL #202 정처기 실기 #12 애플리케이션 테스트 관리 2

김춘복·2023년 9월 28일
0

TIL : Today I Learned

목록 보기
202/494

Today I Learned

일이 끝나고 추석연휴 첫 날. 쉬고 싶었지만 정보처리기사 시험이 얼마 남지 않아 책을 폈다.


애플리케이션 테스트 관리 2

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

  • 테스트 레벨 : SW 개발 단계에 따라 단위, 통합, 시스템, 인수 테스트로 분류

  • 소프트웨어 생명 주기의 V-모델 - A

단위 테스트(Unit Test) - A

코딩 직후 SW 설계 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트
인터페이스, 외부 I/O, 자료구조, 오류처리경로, 경계 조건 등을 검사
개별 모듈을 시험하는 것으로 모듈이 정확하게 구현 됐는지 예정한 기능이 제대로 수행되는지를 점검하는 것이 주 목적.

통합 테스트(Integration Test) - A

단위테스트가 완료된 모듈을 결합해 하나의 시스템으로 완성시키는 과정에서의 테스트
모듈 간 또는 통합된 컴포넌트 간의 상호 작용 오류를 검사

시스템 테스트(System Test) - C

개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는 가를 점검

인수 테스트(Acceptance Test) - A

개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트
개발한 소프트웨어를 사용자가 직접 테스트

  • 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 테스트
    통제된 환경에서 오류와 문제점을 사용자와 개발자가 함께 기록함

  • 베타 테스트 : 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트
    실 업무를 가지고 사용자가 직접 테스트


하향식 통합 테스트 - A

Top Down Integration Test. 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
주요 제어 모듈은 작성된 프로그램을 사용하고 주요 제어 모듈의 종속모듈은 스텁으로 대체

  • 스텁(Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구. 일시적으로 필요한 조건만 가지고 있는 시험용 모듈

상향식 통합 테스트 - A

Bottom Up Integration Test. 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트
하위 모듈을 클러스터로 결합. 상위 모듈에서 데이터 입출력을 확인하기 위해 더미 모듈인 테스트 드라이버를 작성한다.

  • 테스트 드라이버(Test Driver) : 더미 모듈. 테스트 대상의 하위 모듈을 호출하고 파라미터를 전달하고 모듈 테스트 수행 후의 결과를 도출하는 도구

회귀 테스트(Regression Test) - A

통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트
이미 테스트 된 프로그램의 테스팅을 반복하는 것
수정된 모듈이나 컴포넌트가 다른 부분에 영향을 미치는 지 테스트해 새로운 오류가 발생하지 않음을 보증하기 위해 반복 테스트

테스트 오라클 - B

테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값을 대입해 비교하는 기법
결과 판단을 위해 테스트 케이스에 대한 예상 결과를 계산하거나 확인

  • 참(True) 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클. 발생된 모든 오류를 검출 가능

  • 샘플링(Sampling) 오라클 - B : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클. 전수 테스트가 불가능 한 경우 경계값 및 구간 별 예상값 결과 작성시 사용

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

  • 일관성(Consistent) 오라클 : 애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과값이 동일한지 확인하는 오라클

테스트 자동화 도구

  • 성능 테스트 도구 : 애플리케이션의 처리량, 응답시간, 경과시간, 자원 사용률에 대해 가상의 사용자를 만들어 테스트를 수행함으로써 성능 목표를 달성하였는지 확인하는 도구

  • 그외 정적분석도구, 테스트 실행 도구, 테스트 통제 도구, 테스트 하네스 도구가 있다.

테스트 하네스

테스트를 지원하기 위해 생성된 코드와 데이터

  • 테스트 드라이버(Test Driver) : 테스트 대상의 하위 모듈을 호출하고 파라미터를 전달하는 가상의 모듈.
    상향식 테스트에 사용된다.
  • 테스트 스텁(Test Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구. 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈. 하향식테스트에 사용.
  • 테스트 슈트(Test Suite) : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
  • 테스트 케이스(Test Case) : 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 입력값, 실행조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
  • 테스트 스크립트 : 자동화된 테스트 실행 절차에대한 명세서
  • 목 오브젝트 : 사전에 사용자의 행위를 조건부로 입력해 두면 그 상황에 맞는 예정된 행위를 수행하는 객체

결함(Fault)

소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것
오류발생, 작동 실패 뿐만 아니라 예상과 실제의 차이, 업무내용과의 불일치 등으로 인해 변경이 필요한 부분도 모두 결함에 해당한다.


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

  • 처리량(Throughput) : 일정 시간 내에 애플리케이션이 처리하는 일의 양
  • 응답 시간(Response Time) : 애플리케이션에 요청을 전달한 시간~응답이 도착할때까지 걸린 시간
  • 경과 시간(Turn Around Time) : 애플리케이션에 작업을 의뢰한 시간~처리가 완료될 때 까지 걸린 시간
  • 자원 사용률 or 자원 활용률(Resource Usage) : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU사용량, 메모리 사용량, 네트워크 사용량 등

빅오 표기법으로 표현한 최악의 시간 복잡도 - B

  • O(1) : 수행시간이 입력 데이터 수와 관계 없이 일정. ex) 스택의 삽입, 삭제
  • O(log n) : 입력 데이터 수 n의 증가량 보다 작음. ex) 이진트리
  • O(n) : 문제 해결에 필요한 단계가 입력값 n과 1대 1이 관계. ex) for문
  • O(n log n) : 성능 좋은 정렬들이 여기 속함. ex) 힙정렬, 합병정렬
  • O(n^2) : 단계가 n의 제곱만큼 수행됨. ex) 삽입, 선택, 버블정렬
  • O(2^n) : 피보나치 수열

순환 복잡도 - B

한 프로그램의 논리적인 복잡도를 측정하기 위한 척도. 맥케이브 순환도라고도 한다.
순환 복잡도 V(G) = 화살표 수 - 노드 수 + 2

소스 코드 최적화 - B

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

  • 클린코드 : 누구나 쉽게 이해하고 수정할 수 있는 단순 명료한 코드

  • 나쁜코드(Bad Code) : 로직이 복잡하고 이해하기 어려운 코드
    ex) 스파게티코드(로직이 복잡하게 얽힘), 에일리언 코드(Alien Code, 오래되거나 참고문서 혹은 작성한 개발자가 없어 유지보수가 어려운 코드)

클린 코드 작성 원칙 - B

  • 가독성 : 누구나 코드를 읽기 쉽게 작성한다.
  • 단순성 : 코드를 간단하게 작성한다. 클래스/메소드/함수 등을 최소단위로 분리해 한번에 한가지만 처리하도록 한다.
  • 의존성 배제 : 코드가 다른 모듈에 미치는 영향을 최소화 한다.
  • 중복성 최소화 : 코드의 중복을 최소화 한다. 공통 코드를 사용한다.
  • 추상화 : 상위 클래스/메소드/함수에서는 간단하게 애플리케이션의 특성을 나타내고 상세한 내용은 하위 클래스/메소드/함수에서 구현한다.

소스코드 품질 분석 도구 - A

  • 정적 분석(Static Analysis) 도구
    작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 도구

  • 동적 분석(Dynamic Analysis) 도구
    작성한 소스 코드를 실행해 프로그램의 동작이나 반응을 추적하고 보고하는 도구. 모니터링 기능이나 스냅샷 생성 기능들을 포함하고 있다. 메모리 누수 스레드 결함 등을 분석한다.

profile
꾸준히 성장하기 위해 매일 log를 남깁니다!

0개의 댓글