본문 바로가기
SW Programming

소프트웨어 테스팅 While Box testing, Black Box testing

by Crystal.k 2018. 1. 14.

테스트 공리(진리)

  • 완전한 테스트는 불가능하다. 
  • 테스트는 오류가 없음을 보여주지 않는다.
    • 마지막 오류는 없다. 그래서 언제까지 테스트할 것 인가?
    • 테스트 종료 조건 정하자
  • 프로그램의 어떤 부분에 오류가 남아 있을 확률은 이미 발견된 오류의 수에 직접적으로 비례한다.
    • Bugs follow bugs
    • 기록이 필요하다. 이슈관리 프로그램을 이용해라
  • 할충제 패라독스
    • 테스트도 면역이 생긴다. 약효가 떨어짐
    • 테스트케이스도 유지보수가 필요함. 코드변화에 따라 진화하여야 함.
    • 좋은 테스트
      • 신뢰성
      • 관리용이성
      • 가독성
  • 가능한 빨리 테스트를 시작하는 것이 좋다.
    • 명세, 설계, 코드, 테스트, 릴리즈 (언제)
    • 그래서 탐색적 테스트 해라
    • 직접 기능을 익혀가면서 새로운 테스트케이스를 만들어냄(메뉴얼 테스팅)



Regression testing  
리그레션 테스팅
생채기, 코드 수정후에 하는 테스팅, 유지보수 테스트

이전에 동작하는 기능을 잘 수행하는지 확인하는 테스팅


테스트 순서
  1. 단위 테스트 (개발자)
  2. 통합 테스트 (QA)
  3. 시스템 테스팅 (QA)
  4. 인수 테스트 (인수받는 업체)


Mistake/Fault/Error/Failure 관계

  1. Mistake
    1. 실수
  2. Fault
    1. 결함
  3. Error
    1. 내부의 잘못된 상태?
    2. 모든 변수들의 상태...
    3. 측정값과 기대값이 다른상태
    4. failure는 아니다.
    5. 이걸 전달해줘야 failure가 된다...
  4. Failure
    1. 에러 전달받아서 눈에 보이는 상태
    2. 실행 결과와 기대결과 관찰 가능한 차이...

failure 발생 조건

도달성조건 fault 가 실행되어야 함

감염조건 Error 가 발생해야 함

에러전달조건 Failure 까지 나와야함


+좋은 테스팅, 목적
fault가 있는 것을 failure로 많이 찾아내는 테스트
오작동을 찾아내야한다.



테스트 케이스 만드는 기법 (입력값 Sampling)  
  1. 화이트 박스 테스트
    1. 구조기반테스트 , 코드정보를 기반
    2. Structure-Based Testing Techniques
    3. 결과를 예상하기 위해선 결국 명세를 이용하긴 한다.(Do178)
  2. 블랙박스 테스트
    1. 명세기반테스트 , 명세서 기반.
    2. Specification-Based Testing Techniques
    3. iso 29119 software Testing http://www.softwaretestingstandard.org/
  3. Experience-Based Testing Techniques 경험기반테스트



  • 구조기반테스트
    • While Box Test(화이트 박스 테스트)
    • 코드를 기반으로 테스트케이스를 작성하고, 코드가 얼마나 테스트 되었는지 커버리지분석을 통해 확인한다.
    • 결과를 예측하기 위해서 명세서를 참고하긴함 (명세기반은 블랙박스테스트인데요?)
    • 테스트 케이스의 입력값은 코드에서 만들어낸다
      • 경계값
    • 그래서 이미 만들어진 코드에서 테스트를 어떻게 하는가?
      • 테스트케이스를 만들어서 실행시킨다
      • 구조적 커버리지를 분석해서 100%가 될 때까지 테스트 케이스를 만들어서 실행한다.
    • 잠깐만, 커버리지가 뭔데요?
      • 블록 커버리지, 문장 커버리지
      • 분기커버리지
        • 분기에서 참/거짓이 나올 수 있음
      • 조건 커버리지
      • 조건/분기 커버리지
        • CDC
      • MCDC 
        • MCDC 커버리지 만족하면 -> object branch coverage 를 만족한다. 하지만, object branch 만족한다고 해서 -> MCDC 만족하진 않는다
  • 명세 기반 테스트
    • Black Box Test(화이트 박스 테스트)
    • 명세서 정보를 이용해서 테스트 케이스를 만든다
    • 명세서에는 코드에서 수행해야하는 기능이 모두 있으므로, 누락된 기능을 찾아낼 수 있다.
      • 인터페이스정보
        • 동등 클래스 분할(ERP)
          • Each choice combination
          • 단점. 유용한 테스트가 누락될 수 있다.
        • All combination combination
          • 모든 조항
        • pairwise 이용해서 테스트케이스 만들기
          • http://pairwise.org/ 

            • 탐색기 현재 폴더 CMD 열기 > 폴더 아이콘에서 Shift+우클릭 ---- 여기서 명령 창 열기
        • 경계값 테스트
          • 갯수 n^2+1
          • min값, min-값, max값, max+값
        • 도메인 테스트
      • 모델 기반
        • 상태전이 테스트



17년 9월 초에 들은 교육인데, 벌써 기억이 가물가물하다. 4개월전에 이런걸 배웠구나. 

반응형

댓글