본문 바로가기
IT기술노트/소프트웨어공학

소프트웨어 테스트(Software Test)

by 비트코기 2021. 2. 2.

오류, 결함, 고장, 7가지 원칙, 살충제 패러독스, 오류-부재의 원칙


I. 숨어있는 결함을 찾는 행위, 소프트웨어 테스트의 개요

가. 소프트웨어 테스트(Software Test)의 정의

   - 노출되지 않은 숨어있는 결함(Fault)를 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차

나. 소프트웨어 테스트의 필요성

구조 측면

시스템 구조의 복잡도 증가에 따라, 잠재된 발견되지 않은 오류의 증거

비용 측면

시스템 오류 증가에 따른 재 작업은 시스템 구축의 시간 및 비용 증가를 초래

품질 측면

테스트를 통한 시스템 신뢰도 확보 및 고객 만족의 필요

조기 검증을 통해 안정성과 신뢰성을 보장하는 시스템 구축

다. 테스트의 목표

   - 에러가 없다는 것을 보여주는 게 아닌 결함이 존재하는 것을 보여줌으로 제품이 인도되기 전에 수정할 수 있는 기회 제공

라. 소프트웨어 관련 용어

소프트웨어 오류

시간적인 압박, 복잡한 코드, 환경의 복잡성 등 이유로 결함을 발생시키는 원인

소프트웨어 결함

성능 및 규격상 부적합 발생, 고객 불만족을 야기하는 결함은 고장(장애) 원인

소프트웨어 고장

요구되는 기능을 다하지 못하고 장애를 일으키는 현상


II. 소프트웨어 테스트의 원칙과 원리

가. 소프트웨어 테스트의 원칙과 경제성의 원리

대상

내용

테스트

원칙

마이어의 원칙

개발자가 자신의 프로그램을 테스트하지 않는 원칙

Test Case

기대되는 표준 결과 포함(테스트 오라클),예측오류,기대되지 않은 결함이 잇다는 가정 아래 Test Plan 수립

결과 Review

Test 내용을 점검하여 누락된 사례 도출

경제성의

원리

- 추가 결함이 발견 될 확률은 기 발견된 결함 수에 정비례

- 개발 시 노력 분포도 40:20:40 = 설계:프로그래밍:테스트

- SW 의 내재된 결함을 찾아 내는 시기가 중요

나. 소프트웨어 테스트의 7가지 원칙 (결투 초기에 살점을 오려내라)

원리

설명

결함 존재 증명의 원리

테스트는 결함이 존재함을 밝히는 행위

완벽한 테스팅 불가능의 원리

무한경로,무한입력값,무한타이밍 등의 이유로 완벽한 테스트 불가능

초기 테스팅 시작의 원리

테스트 활동은 가능한 초기에 시작, 설정한 테스트 목표에 집중

결함 집중의 원리

출시 전 대다수 결함들이 소수의 특정 모듈에 집중되는 경향

살충제 패러독스의 원리

동일한 케이스의 반복 테스트는 신규 결함 가능성이 낮아짐

정황 의존성의 원리

많이 하는 것보다, 특성에 따른 수행 방법 및 절차를 적절히 테스트

오류-부재의 궤변의 원리

사용자 요구 충족이 안되면 오류가 없어도 품질이 높은 게 아님

반응형

'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글

테스트 오라클(Test Oracle)  (0) 2021.02.02
테스트 베드(Test Bed)  (0) 2021.02.02
테스트 케이스(Test Case)  (0) 2021.02.02
소프트웨어 테스트 프로세스  (0) 2021.02.02
SPA(Single Page Web Application)  (0) 2021.02.01
코드스멜, 클린코드  (0) 2021.02.01
리팩토링(Refactoring)  (0) 2021.02.01
TDD(Test-Driven Development)  (0) 2021.02.01

댓글