소프트웨어 테스팅
단위테스트
- 가장 많이 작성하는 테스트중 하나다 즉 제일 중요하고 제일 하부단에 존재한다.
- 단위테스트는 빠르고 특정 부분에 대해 고립되게 작성해야 한다.

- SUT가 테스트하는 단위
- 테스트더블
- 제라드 메드자로스가 만든 용어로 스턴트 더블 테스트 더블은 의존 구성요소를 사용할 수 없을때 테스트 대상 코드와 상호작용하는 객체입니다.
- mock, stub
단위테스트 목적 : 지속적인 오류를 테스트코드를 통해 보호받는다.
통합테스트
- 테스트 하고자 하는 코드를 다른 의존관계와 의존이 잘 되는지 확인하기 위해 테스트한다.
- 우리 시스템 만드는 밖에 외부의 연동 테스트도 통합테스트로 볼 수 있다.

JUnit
- 매 단위 테스트시마다 테스트 클래스의 인스턴스가 생성되어 독립적인 테스트가 가능하게 한다.
- 애노테이션을 제공해서 테스트 라이프 사이클을 관리하게 해주고 간결하도록 지원해준다.
- assert로 수행 결과를 판별하게 해준다.
- 결과는 녹색 붉은색 중 하나로 표시된다.
Mock Object
- 목 오브젝트는 행위검증을 사용하고, stub을 포함한 다른 대역들은 상태 검증을 사용한다.
- 사실상 스텁이 가짜 객체를 뜻한다.
- 상태 검증 : 메소드가 수행된 후 객체의 상태를 확인하여 올바르게 동작했는지 확인
- 행위 검증 : 메소드의 리턴 값으로 판단할 수 없는 경우 특정 동작을 수행하는지 확인하는 검증