테스트 공리(진리)
- 완전한 테스트는 불가능하다.
- 테스트는 오류가 없음을 보여주지 않는다.
- 마지막 오류는 없다. 그래서 언제까지 테스트할 것 인가?
- 테스트 종료 조건 정하자
- 프로그램의 어떤 부분에 오류가 남아 있을 확률은 이미 발견된 오류의 수에 직접적으로 비례한다.
- Bugs follow bugs
- 기록이 필요하다. 이슈관리 프로그램을 이용해라
- 할충제 패라독스
- 테스트도 면역이 생긴다. 약효가 떨어짐
- 테스트케이스도 유지보수가 필요함. 코드변화에 따라 진화하여야 함.
- 좋은 테스트
- 신뢰성
- 관리용이성
- 가독성
- 가능한 빨리 테스트를 시작하는 것이 좋다.
- 명세, 설계, 코드, 테스트, 릴리즈 (언제)
- 그래서 탐색적 테스트 해라
- 직접 기능을 익혀가면서 새로운 테스트케이스를 만들어냄(메뉴얼 테스팅)
Regression testing
리그레션 테스팅
생채기, 코드 수정후에 하는 테스팅, 유지보수 테스트
이전에 동작하는 기능을 잘 수행하는지 확인하는 테스팅
테스트 순서
- 단위 테스트 (개발자)
- 통합 테스트 (QA)
- 시스템 테스팅 (QA)
- 인수 테스트 (인수받는 업체)
Mistake/Fault/Error/Failure 관계
- Mistake
- 실수
- Fault
- 결함
- Error
- 내부의 잘못된 상태?
- 모든 변수들의 상태...
- 측정값과 기대값이 다른상태
- failure는 아니다.
- 이걸 전달해줘야 failure가 된다...
- Failure
- 에러 전달받아서 눈에 보이는 상태
- 실행 결과와 기대결과 관찰 가능한 차이...
failure 발생 조건
도달성조건 fault 가 실행되어야 함
감염조건 Error 가 발생해야 함
에러전달조건 Failure 까지 나와야함
+좋은 테스팅, 목적
fault가 있는 것을 failure로 많이 찾아내는 테스트
오작동을 찾아내야한다.
테스트 케이스 만드는 기법 (입력값 Sampling)
- 화이트 박스 테스트
- 구조기반테스트 , 코드정보를 기반
- Structure-Based Testing Techniques
- 결과를 예상하기 위해선 결국 명세를 이용하긴 한다.(Do178)
- 블랙박스 테스트
- 명세기반테스트 , 명세서 기반.
- Specification-Based Testing Techniques
- iso 29119 software Testing http://www.softwaretestingstandard.org/
- Experience-Based Testing Techniques 경험기반테스트
- 구조기반테스트
- While Box Test(화이트 박스 테스트)
- 코드를 기반으로 테스트케이스를 작성하고, 코드가 얼마나 테스트 되었는지 커버리지분석을 통해 확인한다.
- 결과를 예측하기 위해서 명세서를 참고하긴함 (명세기반은 블랙박스테스트인데요?)
- 테스트 케이스의 입력값은 코드에서 만들어낸다
- 경계값
- 그래서 이미 만들어진 코드에서 테스트를 어떻게 하는가?
- 테스트케이스를 만들어서 실행시킨다
- 구조적 커버리지를 분석해서 100%가 될 때까지 테스트 케이스를 만들어서 실행한다.
- 잠깐만, 커버리지가 뭔데요?
- 블록 커버리지, 문장 커버리지
- 분기커버리지
- 분기에서 참/거짓이 나올 수 있음
- 조건 커버리지
- 조건/분기 커버리지
- CDC
- MCDC
- MCDC 커버리지 만족하면 -> object branch coverage 를 만족한다. 하지만, object branch 만족한다고 해서 -> MCDC 만족하진 않는다
- 명세 기반 테스트
- Black Box Test(화이트 박스 테스트)
- 명세서 정보를 이용해서 테스트 케이스를 만든다
- 명세서에는 코드에서 수행해야하는 기능이 모두 있으므로, 누락된 기능을 찾아낼 수 있다.
- 인터페이스정보
- 동등 클래스 분할(ERP)
- Each choice combination
- 단점. 유용한 테스트가 누락될 수 있다.
- All combination combination
- 모든 조항
- pairwise 이용해서 테스트케이스 만들기
- 탐색기 현재 폴더 CMD 열기 > 폴더 아이콘에서 Shift+우클릭 ---- 여기서 명령 창 열기
- 경계값 테스트
- 갯수 n^2+1
- min값, min-값, max값, max+값
- 도메인 테스트
- 모델 기반
- 상태전이 테스트
17년 9월 초에 들은 교육인데, 벌써 기억이 가물가물하다. 4개월전에 이런걸 배웠구나.
반응형
'SW Programming' 카테고리의 다른 글
[react js] 이미지가 로드가 되지 않았을 때 기본 이미지 보여주기 (0) | 2023.05.30 |
---|---|
dumpbin / DLL이 64bit인지 32bit인지 알고싶다. (0) | 2021.03.31 |
Qt) GammaRay, Qt 어플리케이션 상태 정보, ui 정보 알아오기 (2) | 2021.01.28 |
java에서 .csv 파일 읽기 (1) | 2017.03.14 |
뉴욕타임즈 api (0) | 2017.03.02 |
댓글