본문 바로가기
개발/일반

스프트웨어 테스트

by 로그인시러 2017. 4. 19.

소프트웨어 테스트. (소프트웨어 테스팅).

간단하게 말하자면 “소프트웨어의 결함이 존재함을 보이는 과정”.

 

소프트웨어가 문제가 없다를 보이는 것이 아니라 문제가 있다를 밝히는 과정이다.

SWLC(소프트웨어 생명주기)의 프로세스 [요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수] 에서 거의 마지막 단계이다.

소프트웨어 테스터들은 “이 소프트웨어가 완벽하군요!” 라고 하는 것이 아니라,

“이 소프트웨어는 결함이 없군요!” 라고 말해야 한다.

 

요구사항 설계와 다르게 동작하는 것은 모두 “결함”이며 이미 제작된 소프트웨어에 대해서 테스트 케이스를 만들고 테스팅하는 것은 매우 노력이 많이 들어가므로

요즘엔 개발 초기부터 테스트케이스를 만들고 이것으로 개발하는 방식이 각광받고 있다. (이것이 TDD)

 

2015년 현재 여러 프로젝트 방법론에서 TDD(Test Driven Development) 가 뜨고 있으니 이에 대해서도 알아두면 좋다.

http://youtu.be/dWayn0QsJr8?t=1m17s

 


소프트웨어 테스트는,

IEEE의 거창한 정의를 보자면 ” 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 수동 또는 자동 방법을 동원하여 검사하고 평가하는 일련의 과정” 이라고 하였다.

테스트가 올바르게 진행되어야 소프트웨어의 품질이 보증된다.

Validation-유효성 (우리가 필요했던 프로그램인가? 요구사항에 맞는 프로그램인가?  Are we building the right product?)

-> 소프트웨어가 명시된 요구사항을 만족하는지 확인. 요구사항 명세서 보고 판단. invalid 프로그램은 쓸모가 없음.

 

Verification-검증 (올바르게 제작되었는가? 개발방법론이 제대로 평가되고 진행되었는가?  Are we building the product right?)

-> 개발 프로젝트 중 각 단계별로 고객의 요구사항이 반영되었는지 검사. 품질검토(워크스루, 인스펙션) 등의 기법이 있다.

 

하지만 대부분의 경우에 테스트를 개발자의 역량에 맡긴다던가, 문제가 안일어난다고 가정하고 프로젝트를 진행하더라.

 

아무튼 테스트의 종류는 다음과 같다.

 

*시험 방법

– 화이트 박스 테스트 (코드기반 시험)

1) statement coverage :

모든 코드가 한번은 실행되게 입력. (코드의 에러여부 파악)

2) decision coverage(branch test) :

코드의 흐름에서 모든 진행을 테스트. 예를들어 if 구문이 2개라면  4개의 흐름(4종류의 입력)을 만들어야함.

3) condition coverage :

조건문이 있을 떄 , 예를들어 If 구문의 조건을 보고 조건에 맞는 input과 안맞는 input을 넣어서 유입되는지 테스트.

IF(조건상황들) 이라면 조건상황들이 true인 조건과, false인 조건을 찾아서 입력

4) multiple condition coverage :

조건문의 true false에 모든 상황을 고려.

조건이 IF (A&B) 일때 4가지 입력이 발생(T,T  T,F  F,T  F,F)

 

– 블랙 박스 테스트 (Input, Output 기반의 시험)

1) syntax testing :

입력에 올바른 값과 올바르지 않는 값을 넣어서 테스트

2) Equivalent partitioning :

입력을 동등하게 쪼개고(예를들어서 학점 프로그램이라면 0~70,71~80,81~90,91~100 으로 쪼갠다.), 각 영역의 대표값을 입력하는 테스트(45,73,87,95 를 입력해서 각각 F,C,B,A 가 나와야 할것이다).

3) Boundary testing :

입력값의 경계를 테스트한다.

예를들어 학점 프로그램이라면 A와 B의 경계인 89,90,91 을 입력해본다.

4) Decision table :

입력값의 종류를 결정



출처 : https://blog.lael.be/post/807

'개발 > 일반' 카테고리의 다른 글

redmine 위키 문법  (0) 2017.05.26
편리한 Junit 사용 moreunit  (0) 2017.04.20
유용한 자바툴 [펌]  (0) 2017.03.23
vi 검색후 색깔 바꾸기  (0) 2017.03.21
scp 사용법 (secure copy)  (0) 2017.03.20

댓글