Blog2Blog, 자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기

  1. ‘시스템의 명세까지 완벽하게 옳다고 확신할 수는 없고, 테스트 시스템이 프로그램을 완전히 테스트 할 수 없다. 왜냐하면 테스트 시스템 그 자체도 맞다고 증명할 수 없기 때문이다.’ - Zohn Manaa

  2. ‘프로그램 테스트는 결함이 있음을 보여줄 뿐, 결함이 없음을 증명할 수는 없다’ - Dahl, Dijkstra, Hoare

  3. … 즉, 사람이 만드는 실수라는 말은 시스템과 관련되어 있는 모든 관련자가 만들어 내는 실수가 시스템에 영향을 준다는 것을 의미한다.

  4. 테스트는 일반적으로 다음과 같이 네 단게로 나뉜다 컴포넌트 테스트 - 단위, Unit 테스트 통합 테스트 - 컴포넌트 사이의 인터페이스를 테스트 시스템 테스트 - 개발된 시스템이 제대로 작동하는지에 확인(Verification) 인수 테스트 - 고객이 시스템을 검수(Validation)

    • jUnit, Ant, Mock, HttpUnit, jUnitPert
  5. 즉, 스텁은 해당 컴포넌트에 개발자나 테스터가 쉽게 접근할 수 있는데 그 다음 프로세스를 수행할 부분이 아직 개발되지 않았거나, 접근 가능한 컴포넌트만 테스트하고 싶을 때 사용하는 것이다.

  6. 각각의 단계에서 작성된 산출물들이 각 테스트 단계와 어떤 연관성이 있는지를 보여주는 것이 바로 V-Model이다.

  7. 블랙 박스 테스트는 결과만을 갖고 수행하는 테스트이기 때문에 실제 요구사항의 명세와 같은지를 확인하는 명세 기반(Specification based) 테스트라고 한다

  8. 화이트 박스 테스트는 소스 내부의 구조를 분석하는 테스트이기 때문에 구조 기반(Structure based) 테스트라고 한다.

  9. 경계 값 분석은 말 그대로 최소 입력 값, 최대 입력 값을 예측하여 그 경계에 있는 값을 도출해 내는 것이다.

  10. Pair Programming은 두 명의 개발자가 같이 개발하여 디버그하고, 리뷰하는 개발 방식이라고 할 있다.

    • PMD, FindBugs, CheckStyle
  11. Continuous Integration(지속적인 통합, CI)의 장점 결함을 초기에 찾을 수 있다 프로그램을 토압하는데 소요되는 시간을 단축시킬 수 있다 자동화된 일일 빌드가 가능하다 테스트 코드가 작성되어 있다면, 자동화된 일일 테스트를 할 수 있다. 완벽하지는 않지만 개발 진척도를 점검하기 위한 좋은 참고 자료가 된다 *AntHill, Hudson

  12. 기본적으로 성능 테스트를 하는 주된 이유는 다음과 같다. 오픈 시 안정성 보장 시스템의 병목 구간 사전 발견 및 조치 시스템의 오류 사적 확인 각종 아키텍처의 검증 오픈될 시스템이 허용할 수 있는 최대 사용자 예상

  13. 웹에서 트랜잭션은 크게 두 가지로, 요쳥(Request) 기준 트랜잭션과 사용자(User) 트랜잭션으로 나뉜다. 요청 기준 트랜잭션은 하나의 요청을 하나의 트랜잭션으로 보는 것이다. 즉 JSP나 Servelet을 한 번 호출하여 결과가 리턴되면 한 트랜잭션이 처리된 것이다. 사용자 트랜잭션은 WAS나 서버의 기준이 아닌 사용자 기준으로 트랜잭션을 보는 것이다. 다시 말하면 사용자가 클릭을 한 번 하고, 모든 데이터가 처리되어 화면에 표시되었을 때를 의미한다.

  14. TPS는 Transaction Per Second의 약자로 초당 처리 트랜잭션 수를 의미한다.

    • JMeter, Grinder, Faban
  15. 보안테스트는 악의적이거나 적대적인 입력에 대응할 수 있도록 정의되어 있는 요구사항을 만족시키는지 확인하고, 근거를 제공하는 것이다

  16. 보안 테스트에 사용되는 데이터 종류 Base 8 : 8진수 기준 Base 16 : 16진수 기준 Base 36 : 0~9, A~Z로 이루어진 36진수 Base 64 : 0~9, A~Z, a~z, +, /로 이루어진 64진수 URL 인코딩 : %와 16진수가 결합된 형태 MD5 : 정확히 128비트의 데이터를 생성하는 방식 SHA1 : 정확히 160비트의 데이터를 생성하는 방식

    • CAL9000, Burp Suite, WebGoat
Written on June 18, 2013