소프트웨어공학
테스트(Part1)
chlqhrud0208
2024. 12. 16. 20:58
- 테스팅이 왜 중요한가?
1) 결함 예방
2) 품질과 안정성 보장
3) 소프트웨어의 신뢰성 향상
- 검증과 확인
- 검증
-> 각 단계의 일들을 잘하고 있는가? (요구분석, 설계 등)
- 확인
-> 결과가 요구사항에 맞게 잘 만들어졌는가? (요구와 최종 릴리스 사용)
- 테스트의 원리 (5가지)
- 테스트는 오류를 찾기 위해서 하는 것
-> 잘 작동한다는 것을 보여주는 것이 아님
- 완벽한 테스트는 있을 수 없음
-> 테스트를 통과한다고 해서 완벽한 프로그램이 아님
-> 효율적인 부분집합을 테스트해야함
- 테스트는 창조적이며 어려운 일임
- 테스트는 오류의 유입을 방지할 수 있음
-> 오류를 빠르게 알 수록 수정 비용이 적어짐
- 테스트는 독립적인 팀에 의해서 이루어져야함
-> 객관적인 시선에서 보는 것이 필요
- 테스트의 작업 과정
1) 목표 설정
-> 테스트로 무엇을 점검할 것인지
2) 방법 결정
-> 블랙 박스 / 화이트 박스
3) 테스트 케이스 선택
-> 테스트 케이스 : 잘 안될 것 같은 입력
4) 테스트 케이스 작성
-> 예상되는 테스트 케이스의 결과를 작성
5) 테스트 구현
-> 예상 결과와 실제 결과를 비교
- 테스트의 단계
- 단위테스트
- 통합테스트
- 시스템테스트
- 유닛테스트
- 리그레션 테스트
-> 유지보수 단계에서 이루어지는 테스트 (수정 부분에 집중)
- 블랙박스 테스트 장점
- 테스트 하기 위한 기술적인 배경이 필요하지 않음 (사용자 입장)
- 코딩이 다 끝난뒤에 테스트를 진행할 수 있음 (개발팀과 테스트팀의 독립적인 작업 가능)
- 크고 복잡한 응용 프로그램에 더욱 효과적
- 테스트 초기에 결함이나 불일치를 식별할 수 있음
- 블랙박스 테스트 단점
- 사전 지식이 없어 테스트할 시나리오의 가능한 조건을 무시할 수 있음
- 가능한 모든 입력과 출력을 테스트해볼 수 없음
- 완전한 테스트 범위설정 불가능
- 블랙박스 테스트의 종류
- 동등 분류 기법
- 경계값 분석
- 원인과 결과 그래프
-> 노드 : 원인, 결과
-> 기호 : ^ (and), v (or), ~(not)
-> 장점 : 좋은 테스트케이스를 만들어줌
시스템의 기능을 이해하는데 도움이 됨
- 결정 테이블
-> 참 : 1, 거짓 : 0, 상관없음 : X
- 오류 예