2010-05-24 4 views
1

저는 WhiteBox 테스트의 세계에 비교적 새로운 것이므로 현재 작업하고있는 프로젝트 중 하나에 대한 테스트 계획을 설계하는 데 도움이 필요합니다. 지금은 코드의 테스트 가능한 부분을 찾고 그 부분 테스트를 작성하는 중입니다. 나는 어떻게 든 그것이 이루어져야하는 방법이 아니라는 것을 느낀다. 이 프로젝트를 테스트하기 위해 최선을 준비하는 방법에 대해 조언을 해줄 수 있습니까? 사용할 수있는 도구 또는 테스트 계획 템플릿은 무엇입니까? 차이가 있다면 C++이 사용됩니다.화이트 박스 테스트를 계획하는 방법

답변

3

화이트 박스 테스트의 목표 중 하나는 코드 문을 100 % (또는 가능한 한 가깝게) 처리하는 것입니다. C++ 코드 커버리지 도구를 찾아 테스트 실행 코드와 누락 된 코드를 볼 수 있도록하는 것이 좋습니다. 가능한 한 많은 코드를 테스트 할 수 있도록 테스트를 설계하십시오.

또 다른 제안은 if 문, for 루프, while 루프 등의 경계 조건을 살펴보고 '회색'영역, 위양성 및 위음성이 있는지 테스트합니다.

중요한 변수의 수명주기를 확인하는 테스트를 설계 할 수도 있습니다. 그들의 정의, 사용법 및 파괴가 올바르게 사용되는지 확인하기 위해 시험해보십시오.

세 가지 아이디어가 있습니다. "레거시 코드와 함께 효과적으로 작업"행운

2

필자는 테스트할만한 코드 조각을 찾고 그런 다음 몇 가지 단위 테스트를 작성하는 중입니다. 나는 어떻게 든 그것이 이루어져야하는 방법이 아니라는 것을 느낀다.

사람들은 'test driven development'의 주요 장점 중 하나는 마음에 테스트 용이성으로 구성 요소를 디자인 할 수 ecourages이다라고 : 그것은 당신의 구성 요소가 더 테스트 할 수 있습니다.

  • 요구 및 구현 기능 이해 : 다음과 같이


    내 개인 (비 TDD) 방식이 모두 '선험적'(소프트웨어 기능 명세를 알/읽고 즉), 및 기능을 리버스 엔지니어링하는 소스 코드를 읽음으로써 구현

  • 구현 된/필요한 모든 기능에 대한 블랙 박스 테스트를 구현합니다 (예 : 'Should one test internal implementation, or only test public behaviour?'참조).

그러므로 내 테스트는 테스트중인 기능을 리버스 엔지니어링하는 것을 제외하고는 '화이트 박스'가 아닙니다. 그런 다음 리버스 엔지니어링 기능을 테스트하고 쓸모없는 (따라서 테스트되지 않은) 코드를 피하십시오. 필자는 코드 커버리지 도구를 사용하여 블랙 박스 테스트에서 얼마만큼의 소스 코드가 실행되는지 확인할 수 있었다.

+0

하지만 제품이 이미 구현되었고 남은 것은 테스트 일뿐입니다. – Draco

+0

@Draco 테스트하지 않고 구현했거나 테스트하는 방법을 알고 있다면 어떻게 될지 모르겠다. 하지만 그것은 신뢰할만한 구현이 입증되지 않은 것처럼 들립니다. – ChrisW

+0

그게 문제 야. 나는 어떤 구현도하지 않았다. 내가하는 것은 테스트 (화이트 박스)입니다. 개발자는 어느 정도까지 테스트를 수행하지만 도움이 필요합니다. – Draco

2

시도 : http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

그것은 그가 어떤 테스트가없는 코드를 의미한다 '유산'으로 이후 관련입니다. 그것은 또한 좋은 책입니다.

관련 도구는 다음과 같습니다. http://code.google.com/p/googletest/다른 단위 테스트 및 모의 프레임 워크가있을 수 있지만 이것들에 익숙하므로 권장합니다.

+0

Java 용 : JUnit, Mockito; C#의 경우 : NUnit, Moq. 화이트 박스 테스트를 수행하는 경우 엄격한 모의 프레임 워크 인 JMock, EasyMock, RhinoMocks에서 더 많은 가치를 발견 할 수 있습니다. – Lunivore

관련 문제