정보처리기사 테스트 정리

KwonSungMin·2023년 10월 7일
0

정보처리기사

목록 보기
3/12

파레토 법칙 : 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는법칙

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

오류-부재의 궤변 : 소프트웨어의 결함을 제거해도 요구사항을 만족하지 않으면 품질이 높다고 할 수 없다

확인(Validation) : 고객의 요구사항을 만족했는지 확인

검증(Verification) : 개발자입장에서 명세서에 맞게 만들어졌는지 보는것

정적 테스트

프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트

  • 동료검토 : 동료들이 결함을 발견
  • 워크스루 : 회의를 하기 전 명세서를 미리 배포하여 사전 검토한 후에 결함을 발견
  • 인스펙션 : 작성자를 제외한 검토 전문가들이 명세서를 확인

동적 테스트

프로그램을 실행하여 오류를 찾는 테스트

  • 블랙박스 테스트
  • 화이트박스 테스트

목적에 따른 테스트

  • 회복 테스트
    • 결함을 일부러 주고 복구 되는지 확인
  • 안전 테스트
    • 불법적인 칩임을 보호할 수 있는 지 테스트
  • 강도(Stress) 테스트
    • 과부하 테스트
  • 성능
    • 효율성 진단
  • 구조
    • 소스코드의 복잡도 평가 테스트
  • 회귀(Regression)
    • 변경, 수정된 코드에 새로운 결함이 없음을 테스트
  • 병행(Parallel)
    • 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트

화이트박스테스트

  • 논리적인 모든 경로를 테스트하며 구조적 테스트이다.

기초경로 검사(Base Path Testing)

  • 절차적 설계의 논리적 복합성을 측정

제어구조 검사(Control Structure Testing)

  • 조건검사(Condition Testing) : 논리적 조건을 테스팅
  • 루프검사(Loop) : 반복구조에 초점을 맞춰 테스팅
  • 데이터 흐름 검사(Data Flow) : 변수의 정의와 변수 사용자 위치에 초점을 맞춰 테스트

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

  • 문장 검증 기준(Statement) : 모든 구문이 한번이상 수행되도록 테스트
  • 분기 검증 기준(Bracnh) / 결정 검증 기준(Decision): 모든 조건문의 결과가 True인경우와 False인 경우가 한번이상 수행되도록 테스트
  • 조건 검증 기준(Condition) : 개별 조건식의 결과가 True인 경우와 False인 경우가 한번이상 수행되도록 테스트
  • 분기/조건 기준 : 모든 조건문의 True인 경우와 False인 경우에 따라 조건 검증 기준의 입력데이터를 구분하는 테스트 케이스 설계

블랙박스 테스트

  • 각 기능이 완전히 작동되는 것을 입증하는 테스트

테스트 종류

  • 동치분할검사(Equivalence Partitioning Testing) : 타당한 input ,타당하지 않은 input을 넣어 입력결과가 맞는지 확인
  • 경계값 분석(Boundary value Analysis) : 중간값보단 경계값을 테스트 케이스로 설정, 동치 분할 기법을 보안
  • 원인-효과 그래프(Cause-Effect-Graph 테스팅) : 입력과 출력 데이터의 관계를 분석하고 효용성이 높은 TC를 선정
  • 오류 예측 검사(Error Guessing) : 과거의 경험이나 감각으로 테스트
  • 비교검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 결과가 동일한 결과가 나오는지 테스트

V-모델에 따른 애플리케이션 테스트

요구사항 → 분석 → 설계 → 구현 → 단위테스트 → 통합테스트 → 시스템 테스트 → 인수테스트

  1. 단위테스트
    1. 컴포넌트나 모듈단위로 테스트
  2. 통합테스트
    1. 컴포넌트들을 연결하면서 테스트
  3. 시스템 테스트
    1. 전체 시스템이 잘 돌아가는지 테스트
  4. 인수테스트
    1. 사용자 요구사항에 맞는지 테스트
  • 알파 테스트 : 개발자옆에서 사용자가 하는 테스트
  • 베타 테스트 : 선별된 사용자가 다른사용자들 앞에서 하는 테스트

하향식 통합 테스트

  • 상위 → 하위
  • DFS,BFS 사용
  • 종속 모듈들은 스텁으로 대체한다

상향식 통합 테스트

  • 하위 → 상위
  • 하위 모듈을 클러스터로 결합
  • 입.출력을 확인하기 위해 드라이버를 작성한다.
  • 클러스터 단위로 테스트
  • 테스트가 끝나면 클러스터는 올라가고 드라이버가 실제 모듈로 대체된다

회귀 테스팅(Regression Testing)

  • 통합테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 이미 테스트된 프로그램의 테스팅을 진행한다

애플리케이션 성능분석

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

성능 테스트 도구?

JMeter : HTTP,FTP 등 프로토콜을 지원하는 부하 테스트, 여러플랫폼에서 지원

LoadUI : 서버 모니터링 등 사용자 편리성이 강화된 도구

OpenSTA : JMETER랑 같은데 WINDOW에서 지원

  • 스파게티 코드 : 복잡한 코드
  • 외계인코드 : 오래되거나 개발자가 없어서 유지보수가 어려운 코드
profile
천천히

0개의 댓글