Unit Testing in Java (Johannes Link)
책을 정독한 것은 아니며 개괄적으로 어떤 내용을 가지고 있는지를 보았고, 관심 있는 부분들에 대해서는 조금 자세하게 읽어보았다.
1. XP
이 책은 XP(eXtreme Programming)의 일환으로 Unit Testing자동화가 필요하다고 설명한다. XP는 90년대 초반에 등장한 Agile 개발방법인데, 궁극적으로 고객이 요구하는 결과물(S/W)를 정확하게 전달하는데 목적으로 두고 있다. 이를 위해서 고객과의 잦은 대화(Communication), 빠른 피드백 등을 강조하며 Communication, Feedback, Courage, Simplicity 등을 주요 키워드로 제시한다.
2. Unit testing 자동화가 필요한 이유?
Unit testing은 각 개발모듈의 품질을 조기에 검증한다는데 중요성이 있다. 나중에 특정 모듈의 문제점을 발견하는 것은 비용적으로 큰 이슈가 될 수 있기 때문이다. 또한 XP 개발의 Iterative한 프로세스 과정에서 회귀테스트의 목적으로 Unit testing은 자동화하는 것이 효율적이다.
3. Dummy, Mock
둘 모두 비슷한 개념이다. 우리가 A라는 모듈에 대한 단위테스팅을 적용하고자 하는데 A라는 모듈이 B라는 모듈과 연계된다고 가정해보자. 이 때, B모듈이 안정적이지 못하거나 응답시간(Response time)이 매우 느리다면 B`라는 가짜 B모듈을 테스트 목적으로 만들어 적용할 수 있는데 이 때 B`를 Dummy라고 한다.
Mock은 Dummy이기는 한데 일종의 Test helper 함수를 제공하는 기능을 가진다. 즉, 예상결과를 기입할 수 있는 함수와 이를 기반으로 실제 결과와 비교/판별 작업을 수행하는 verify()함수를 기본적으로 제공한다.
4. Inheritance & Polymorphism
Test Case, Test Suite에 대한 재사용방안을 설명한다. 객체지향 프로그래밍에서 제공하는 상속, 다중성 등의 특성을 어떻게 이용할 수 있는지 설명한다.
5. Test Coverage
얼마나 테스트를 진행해야 충분할까에 대한 설명으로 라인커버리지, 함수커버리지등의 방법을 설명한다.
6. Example
(Persistence object, Distributed applications, Asynchronous services, GUI components, Wet applictions)
실제 다양한 프로그램을 기반으로 단위테스팅을 적용한 사례를 소개한다. 자바의 Exception handling, Helper함수 등을 이용하여 Thread, GUI Programming에서 사용하는 객체들을 어떻게 테스트 할 수 있는지 설명하고 앞장에서 소개한 Dummy, Mock객체, 함수를 사용한 테스트 방법도 설명한다.
'Papers > Others' 카테고리의 다른 글
Testable software architecture in a nutshell (0) | 2015.09.02 |
---|---|
Investigations into GUI Builder and their Effects on GUI Design (0) | 2014.07.02 |
Fluid Home Screen for Mobile Phones (0) | 2012.10.30 |
Cause-Effect Graphing (0) | 2012.10.11 |
Top 20 practical software testing tips you should read before testing any application. (0) | 2012.10.10 |