테스트

Jeong seulho·2023년 5월 9일
0

소프트웨어 공학

목록 보기
24/25

📌verification approaches

📖Testing

  • 테스트
  • 장점 : 버그를 찾으면 확실하게 버그라고 단정지을 수 있다(no false positive)
  • 단점 : 완전하지 않음, 못 찾는 경우 존재
  • 버그를 존재하는 것을 증명할 수 있지만 버그가 없다고 증명할 수 없다

📖Static verification

  • 가능한 모든 인풋, 경우의 수를 고려하는 것
  • 장점 : 완전함(모든 경우의 수 고려)
  • 단점 : 버그를 찾게되어도 그것이 실제 고쳐할 버그인지 단정지을 수 없다(false positive 존재)

📖Inspections

  • 그룹이 모여 코드를 한줄씩 모두 읽어보면서 버그를 찾는 것
  • 장점 : 철저함, 체계적
  • 단점 : 주관적

📖Formal proofs of correctness

  • 수학적으로 프로그램의 동작을 증명하는 것
  • 장점 : 강한 보장성
  • 단점 : 비용이 많이 들고 전문성이 필요

📌일반적 테스트 방법

  • test input을 넣어서 출력되는 output이 기대하는 output과 같은지 확인

📌Test Enviroment

  • Driver : 테스트를 실행하는 프로그램
  • Stub : 함수A를 테스트하고 싶은데, 해당 함수안에 다른 함수 B가 존재한다면, B의 역할을 하는 임의의 보조 함수를 지칭(B가 아직 구현안됬거나, 테스트를 아직 통과하지 못했을 때)

📌Test Case design

📖Test Case design 고려해야 할 것

  • 결함을 발견하는 것을 목적으로 한다
  • 어떤 측면에있어서 빠짐없이 디자인 해야 한다
  • 비용과 시간을 최소화 해야한다
  • 정상적인 input뿐만 아닌 비정상적인 input에대한 테스트도 해야한다(프로그램이 그냥 DOWN되는게 아닌, 비정상적인 input입니다 오류 메세지 출력 등이 필요)
  • 버그가 발견된 부분은 다른 input에대한 버그도 존재할 확률이 더 높다

📌Test vs Debugging

  • Test : 결함을 찾는 과정
  • Debugging : 찾은 결함의 위치를 찾고 고쳐가는 과정

📌Test Approaches

  • 테스트의 주체(개발자, 고객) 또는 테스트 범위 등에 따라 나뉨
  • 인수 테스트 : 고객이 하는 시스템 테스트
  • 회귀 테스트 : V1에서 V2로 업그레이드시 V1를 통과한 케이스가 V2에서도 통과하는지 확인
  • alpha test : 개발자들 또는 회사 내부에서의 테스트(너그러움)
  • beta test : 개발자들 외부에서의 테스트(엄격함)

0개의 댓글