2019. 12. 23. 07:08
728x90

1. 테스팅은 결함이 있다는 것을 증명하는 것이다. (Testing shows the presence of bugs)

  • 행동A에 대한 결과는 행동A에 대한 결과만을 보장한다.
    엄지로 진행한 지문 인식 테스트는 엄지에 대한 결과만 보장한다. 다른 손가락에 대한 결과는 알 수 없다.

2. 완벽한 테스팅은 불가능하다. (Exhaustive testing is impossible)

  • 제한된 일정 내에서 복잡한 구조를 모두 커버하는 것은 불가능하다.

3. 테스팅은 가능한 개발 초기에 시작해야 한다. (Early testing)

  • 전체적인 비용으로 보면 초반부터 테스트가 진행되는게 저렴하다.
    다만 현실적인 문제로 QA 인원이 배정되는건 최소 정식 프로젝트로 승인된 이후부터다.

4. 결함 집중 (Defect clustering)

  • 변경점이 발생한 곳에서 결함이 다수 발생한다.
    개발 실력이 부족한 사람이 담당한 곳에서도 결함이 많이 발견된다는 의미도 포함한다.

5. 살충제 패러독스 (Pesticide paradox)

  • 테스트 문서를 꾸준히 갱신하고 업데이트 한다.

6. 테스트는 정황에 의존적이다. (Testing is context dependent)

  • 테스트 대상에 따라 요구 목표치, 중점 관리 대상이 다르다.
    가장 흔한 예시는 게임 vs 의료 기기용 프로그램

7. 오류-부재의 궤변 (Absence-of-errors fallacy)

  • 목적에 맞는 테스팅을 해야 한다. 기능 테스트 해야하는 상황에 호환성 테스트하면 의미가 없다. 

 

 

그 외 원칙

A. Testing must be done by an independent party. (테스트는 독립적인 조직에 의해 수행되어야 한다.)

  • 개발자는 개발자의 시선을 테스트 하기 때문에 명백한 결함도 정상으로 판단할 수 있다.
    개발과 동떨어진 이들이 테스트를 설계하고 수행해야 한다.

B. Assign best personnel to the task. (최고의 인력을 할당하라.)

C. Test for invalid and unexpected input conditions as well as valid conditions.

  • 유효 상태만큼이나 비유효 값 / 상태로도 테스팅을 수행한다.

D. Keep software static during test.

  • 테스트가 진행되는 동안에는 빌드가 변경되지 않게 한다.
    테스트 도중에 빌드가 변경되면 테스트 결과를 신뢰할 수가 없다.

E. Provide expected test results if possible.

  • 가능한 기대 결과를 제공한다.
    기대 결과 미제공 시 정상/결함 여부를 판단할 수 없다.

 

 

 

 

 

참고 페이지: https://www.testingexcellence.com/seven-principles-of-software-testing/ 

728x90
Posted by 아야카