소프트웨어 테스트의 종류와 방법

소프트웨어 테스트의 종류와 방법


소프트웨어 테스트란 문제가 없다를 보이위한 것이 아닌, 문제가 있다를 밝히는 과정입니다.


소프트웨어 생명주기

1.요구사항

2.설계

3.구현

4.테스트

5.유지보수


다섯 단계에서 거의 마지막이라고 볼 수 있습니다.


요구 설계와 동작이 다를 경우 모두 결함에 포함되며 이미 제작된 소프트웨어에 대해서 테스트를 만드려고하면 막대한 노력과 비용이 들어가므로

요즘은 개발초기부터 테스트케이스를 만들고 TDD방법론을 이용하는 경우가 각광을 받고 있습니다.


TDD란?

Test Driven Development의 약자로 

테스트 중심의 개발이라는 대략적인 뜻을 갖고 있습니다.


즉, 구현을 하기전 테스트 케이스 등을 미리 구축하여 

개발되어 질 여러가지 클래스라던가 소스코드들을 점검하여 

완성 됬을 때 필요한 테스트 노력을 미리 잡겠다.


이런 형식의 방법론입니다. 



테스트 방법

1. 화이트 박스 테스트 (코드기반 테스트)


- statement coverage

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


- decision coverage(벤치테스트)

코드의 흐름에서 모든 진행을 테스트


- condition coverage

조건문이 있을 때, if구분의 조건을 보고 조건에 맞는 input과 안맞는 input을 넣어서 유입되는지 테스트


- multiple condition coverage

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

조건 if(A&B) 일 때 4가지 입력이 발생 할 수 있다.

(T,T  T,F  F,T  F,F)



1. 블랙박스 테스트 (인풋, 아웃풋 기반의 테스트)


- syntax testing

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


- equivalent partitioning

입력을 동등하게 쪼개고 각 영역의 대표값을 입력하는 테스트


- boundary testing

입력값의 경계를 테스트


- decision table

입력값의 종류를 결정




이것이 소프트웨어공학적인 내용이라면


이것을 게임에 적용해보도록 하겠습니다.



예를들어 넥슨의 히트라고 가정해봅시다.


기능 테스트 : 기능이 동작하는가?


성능 테스트 : 로딩속도 및 서버 최대인원일 때의 성능테스트


스트레스 테스트 : 허용 한계치 외에서 버티는가? (예를들면 서버 수용인원 초과 등등)


벤치 테스트 : 기존의 다른 게임과 비교하여 테스트


필드 테스트 : 실 유저를 투입시켜 테스트 (FGT, OBT, CBT 등등)


리그레션 테스트 : 패치등과 같은 수정사항이 있을 경우, 기존 테스트했던 내역이나, 새로운 테스트 범위를 설정하여

테스트




이런식으로 생각해 볼 수 있을 것 같네요. 

저도 아직 많은 걸 알고 있지 않아 게임에 적용이 힘듭니다.

그냥 참고만 하시고 여러분들의 생각을 따로 글로 표현해보세요~ ㅎㅎ 




반응형

댓글

Designed by JB FACTORY