종우의 삶 (전체 공개)

Effective Software Testing - 1 본문

개발/북스터디

Effective Software Testing - 1

jonggae 2024. 4. 4. 19:00

들어가며....

얼마전 구매한 테스트 관련 서적인 Effective Software Testing을 읽어보며 필요한 내용들을 정리해본다.

 

책으로 프로그래밍을 공부하는 것은 무척 오랜만이다. 다양한 내용을 익혀보고, 내가 만든 프로젝트에 적용해 보는 과정을 거쳐보자. 체계적으로 정리하는 것은 시간이 무척 걸리겠으나, 인상깊은 내용이나 기억하고자 하는 내용들을 적어보는 공간으로 만들어보자.


 

새롭게 안 사실

 

속성 기반 테스트

다양한 추정을 테스트 할 수 있다. 예를 들어  [ 바나나 , 3개 ] [ 사과 , 5개 ]  같은 형식의 과일 - 갯수 정보가필요한 테스트를 진행할 때 사용한다.

[무작위 과일 이름, 무작위 갯수] 를 코딩하여 랜덤으로 생성하고 임의의 객체를 생성하게 되는 것이다. 다양한 상황을 체크할 수 있을 듯 함.

 

현재까지 그냥 사용했던 것은 예시 기반 테스트라고 볼 수 있겠다. 직접 예시를 설정하여 테스트를 진행한것이다.

 


 

 

정리하고 싶은 내용

 

개발 과정에서의 효율적인 테스트

1. 요구 사항 분석 - 기능 개발을 위해 요구사항을 받는다. 이러한 요구사항의 이해가 완료되면 개발자는 코드를 작성할 수 있을 것이다.

 

2. 짧은 TDD를 반복하여 자신의 코드가 타당한지 피드백을 얻을 수 있다.

 

3. 요구사항이 크고 복잡하다면 여러 단위(클래스나 메서드)를 만들게 된다. 이 각 단위는 다른 계약을 가지고 있고 서로 어울려가며 전체 기능을 구성한다. -> 항상 테스트 가능성을 염두에 두어야 한다.

 

4. 자신의 단위에 만족하고 요구사항을 충족한다고 생각하면 테스트를 작성한다. 도메인 테스트, 경계 테스트, 구조적 테스트 기법을 사용한다

 

5. 시스템에는 대규모 테스트가 필요한 부분이 있다. 

 

6. 이후 자동화된 지능형 테스트 도구를 써서 사람이 잘 도출하지 못하는 케이스를 찾아낸다. eg) 돌연변이 테스트

 

7. 편안하게 배포 (ㅋㅋ)


그래도 개발에 먼저 집중을 하자

 

상용 버전에서 발생하는 버그의 비용은 예방하는 비용보다 훨씬 크다 !!

 

 

 

 

Comments