ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SW 테스트 7가지 원리
    테스팅 관련/개념 2020. 9. 29. 23:41

    1. 테스트 = 결함의 존재 (결함 없음 X)

    테스트는 소프트웨어의 결함을 감지하는데 목적이 있으나, 제품을 아무리 철저히 테스트하더라도 결함이 없다고 100% 확신할 수 없다. 테스트는 발견되지 않은 오류의 수를 '줄이기' 위해서만 사용할 수 있다.

    2. 완벽한 테스팅 불가

    데이터 입력값, 시나리오, 조건들의 모든 조합들을 테스트할 수 있는 방법은 없다. 예를 들어, 어플 화면이 10개의 입력 필드와 각 3개의 옵션값을 포함하고 있다면, 가능한 모든 조합을 커버하기 위해서는 테스트 엔지니어들은 59,049 (310)개의 테스트 시나리오를 작성해야 한다. 수백만개의 시나리오를 작성하는데 몇 주를 소비하지 않으려면, 더 중요한 시나리오에 집중하는 것이 좋다.

    3. 조기 테스팅

    오류 비용은 SDLC 단계 전반에 걸쳐 기하 급수적으로 증가한다. 따라서, 감지된 문제가 커지지 않고 해결되기 위해서는, 가능한 빨리 소프트웨어 테스트를 시작하는 것이 중요하다.

    4. 결함 집중

    "모든 오류의 약 80%가 일반적으로 시스템 모듈의 20%에서만 발견된다" (파레토 원칙 적용)

    → 대부분의 결함은 소수 모듈에서 집중으로 발생한다. 특정 모듈에서 결함이 발견됐을 시, 또 다른 결함이 존재할 가능성이 있음. 제품의 해당 영역을 철저히 테스트하는 것이 합리적이다. 

    5. 살충제 역설

    살충제 → 내성 → 더 강력한 살충제

    '같은' 테스트를 '계속' 실행하는 것은 더 많은 오류를 찾는데 도움을 주지 않는다. 발견된 오류가 해결되는 순간, 해당 테스트 시나리오는 쓸모 없어진다. 가능한 더 많은 오류를 찾고 해결하기 위해서는, 테스트를 정기적으로 검토하고 업데이트하는 것이 중요하다.

    6. 정황 의존성

    테스트는 상황에 따라 다르다! 다양한 애플리케이션들은 목적과 시장에 따라 다르게 테스트되어야 한다. 핀테크 제품에서는 보안가장 중요할 수 있지만, 기업 웹사이트에서는 보안이 비교적 중요하며, 사용성과 속도가 더 강조된다.

    7. 오류 부재 = 궤변

    "오류의 완전한 부재 ≠ 성공"

    많은 결함 발견 및 수정은 시스템 성공과 직결되지 않는다. 코드 개선과 기능 향상에 아무리 많은 시간을 투자하였어도, 유용하지 않거나 고객 기대에 부응하지 못 하면 대상 고객이 채택하지 않을 것이다.

Designed by Tistory.