나는 학교 밖에서 엔트리 레벨 자바 프로그래머입니다. J2SE에 대한 지식과 경험이 풍부합니다. 누구나 Java 화이트 박스 테스터가되는 기술을 향상 시키거나 조정하는 방법에 대해 조언 해 줄 수 있습니까? 광범위한 입력을 환영합니다.
그리고 테스트 주도 개발이란 무엇입니까?
나는 학교 밖에서 엔트리 레벨 자바 프로그래머입니다. J2SE에 대한 지식과 경험이 풍부합니다. 누구나 Java 화이트 박스 테스터가되는 기술을 향상 시키거나 조정하는 방법에 대해 조언 해 줄 수 있습니까? 광범위한 입력을 환영합니다.
그리고 테스트 주도 개발이란 무엇입니까?
답변:
TDD (Test Driven Development) 및 확장 사촌 인 ATDD (Acceptance TDD) 및 BDD (Behavior Driven Development)는 Java 생태계에서 테스터로 배우는 유용한 기술입니다. 화이트 박스 테스트를 찾고있는 동안 TDD에 중점을 둘 것입니다.
TDD 란 무엇입니까? -핵심은 실패한 테스트 (빨간색)를 작성하고 구현 (녹색)을 작성한 다음 리팩토링하여 테스트를 통과하는 연습입니다. 위키 백과 기사는 더 정보를 찾을 시작하기에 충분한 곳입니다. 그러나 주제는 방대합니다. 예를 들어 테스트 중심 개발 및 레거시 코드를 효과적으로 사용 하는 것과 같이이 분야에서 잘 알려진 책을 읽는 것이 좋습니다 . 또한 잘 알려진 Java 개발자 의 TDD 장에 대한 뻔뻔한 플러그 를 넣을 것입니다.
자바 생태계에서 이것은 다음을 배우고 싶다는 것을 의미합니다.
그리고 연습하고, 연습하고, 연습하고, 연습하십시오. 좋은 자바 화이트 박스 테스터는 매우 드물며, 가장 광범위한 코드 기반에 대한 테스트를 작성했습니다.
HTH가 시작합니다!
나는 보통 Wikipedia를 인용하고 싶지 않지만이 기사의 정보는 충분히 안전 해 보입니다 ...
http://en.wikipedia.org/wiki/Test-driven_development
기본적으로 말해서 소프트웨어 개발에 대한 테스트 우선 접근 방식입니다. 단위 테스트는 먼저 사용 사례를 위해 설계되고 작성되었으며, 이후에 이러한 단위 테스트를 통과 할 수 있도록 어려운 개발이 이루어집니다.
이 질문은 구체적으로 "화이트 박스 테스트"와 관련이 있습니다. 테스트에서 코드의 내부 구조에 대해 잘 알고 있고 입 / 출력 / 부작용 (블랙 박스 테스트)이 아니라 각 단계에서 동작을 확인하는 곳입니다. JUnit이 두 가지를 모두 수행하는 것이 우수하지만 단위 테스트의 컨텍스트 내에서이를 수행하려면 추가 프레임 워크가 필요합니다.
EasyMock 과 JMock 은이를위한 좋은 프레임 워크입니다. JMock을 선호하는 경향이 있습니다.
OT 토론을 시작할 위험이 있다면 화이트 박스 테스트의 의미에 대해 신중하게 생각해야합니다. 화이트 박스 테스트는 코드와 밀접한 관련이 있으며, 신중하게 사용하지 않으면 모의 프레임 워크로 인해 테스트가 다소 복잡하고 읽기 어려우며 리팩토링시 취성이 더 커질 수 있습니다.
나는 두 가지를 혼합하는 경향이 있습니다. 가능한 경우 블랙 박스 테스트 및 위험하고 복잡한 코드에는 화이트 박스 테스트가 거의 적용되지 않습니다.
물론 위에 나열된 프레임 워크는 기여 (주입 된) 클래스의 수가 많고 간단한 스터 빙이 어렵게되는 블랙 박스 테스트에도 사용될 수 있습니다.
TDD와 관련하여-주로 테스트 작성 방법이 아니라 코드 작성에 대한 디자인 개선 접근 방식입니다. 마지막에 수행 한 테스트는 중요한 결과이지만,이 방법은 응용 프로그램의 디자인과 구조를 향상시키기위한 것입니다.