상세 컨텐츠

본문 제목

[IT] 직무분석-지식 제로부터 배우는 소프트웨어 테스트

독서

by bigshotlisa 2021. 1. 5. 18:55

본문

2021-01-05

SW QA 직무분석

지식 제로부터 배우는 소프트웨어 테스트 - 타카하시 쥬이치

 

  • 소프트웨어 테스트에서 중요한 것은 어느 부분에서 버그가 많은지, 그 곳에 어떤 테스트 방법을 적용하면 충분한 품질을 얻을 수 있는지를 아는 것이다. 

테스트 종류

  • 화이트 박스 테스트: 프로그램의 논리 구조가 올바른지를 분석하는 테스트, 논리 구조의 올바름을 테스트하므로 소프트웨어의 사양이 틀려 발생하는 버그는 발견할 수 없음. 
  • 제어 흐름 테스트: 프로그램이 어떻게 움직이며 어떻게 제어되어 실행되는 가를 테스트 
    제어 흐름 테스트에 따른 코드 커버리지 테스트의 본질은 흐름도를 제대로 지키는 것 
    * 코드 커버리지(Code Coverage)는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표
  • 테스트 담당자가 코드를 보고 분석하는 것이 어려울 때에는 개발자에게 커버리지 결과를 보여주고 의견을 구할
  • 테스트는 정해진 시간에 수행해야 하는 최대공약수, 테스트는 시간이 부족하다는 이유로 일부 기능을 테스트하지 않을 수 없음
  • TDD - 테스트 주도 개발 
    TDD의 기본은 적색, 녹색, 리팩터 
  • 개발자들이 단위 테스트를 하지 않으려고 할 때 
    -> Kent Beck이 추천하는 TDD를 해보도록 하죠 라고 말할 것 

  • 애자일 - 짧은 사이클로 코딩 테스트를 수행하므로 변경이 생겨도 문제가 없다 

  • 블랙박스 테스트 - 프로그램을 일종의 블랙박스로 보고 다양한 입력을 실행함으로써 소스 코드를 이용하지 않고(보지 않고) 테스트를 수행하는 방법 

    1) 등가 분할법: 등가 클래스라는 부분 집합으로 분할하고 그 부분 집합에서 선택한 입력값을 모두 같은 값으로 보는 작업 
    2) 경계값 분석: 경계의 어느 값을 테스트할 것인가를 생각할 때는 ON-OFF 포인트법 사용 

  • 상태전이테스트 - 테스트 아이템의 상태 모델 사용, 상태 간의 전이, 이벤트 등을 테스트, 유효(Valid) 테스트 케이스, 비 유효(Invalid)테스트 케이스 

    -> 일일이 테스트 케이스를 작성하기보다는 제품을 학습한 다음 테스트를 설계하고 실행하면서 버그 보고를 병행하는 것이 손쉬울 것

    -> 테스트 케이스를 일일이 사전에 작성하는 것보다 소프트웨어를 테스트하면서 생각하여 시행하는 것이 더 나음 

  • 탐색적 테스트의 테스크 실행 
    1. 대상 소프트웨어를 정함 
    2. 기능을 목록화함 - 모든 온라인 도움말 확인, 모든 메뉴 확인, 예제 데이터의 사용성 확인 등 
    3. 약한 부분을 발견 - 위험해 보이는 기능이나 조작을 목록화 
    4. 각 기능을 테스트하고 버그 기록 - 테스트를 시행하면서 테스트 케이스를 작성하는 데는 시간이 걸리게 되므로 상대적으로 테스트 자체에 드는 시간은 줄어들기 떄문
    5. 계속적인 테스트 실행 

테스트 기간이 계획 떄보다 짧아졌을 때 테스트 관리자가 취할 수 있는 선택지

  • 소프트웨어 품질을 낮춘다
  • 출하를 늦춘다
  • 기능을 줄인다 

테스트 종료 기준

  • 중요도가 높음의 버그가 남아 있지 않을 것
  • 모든 테스트 케이스의 98%를 통과했을 것 
  • 48시간 이내에 중요도 높음의 버그가 발견되지 않을 것 

테스트 케이스 작성 예 

테스트 케이스 ID: 제품이슈 #00000

제목: 반디집에서 서버 DD의 파일을 압축할 때, 더블 클릭 시 파일 조회 설정에 따라 파업창이 뜨는 이슈

오류상황: 웹에서 서버 DD 파일 다운로드 시 해당 문서가 서버에서 삭제되었습니다 라고 뜨는 이슈

 

오류내용

1. 웹에서 서버 DD로 파일 다운로드 했으나 해당 문서가 서버에서 삭제되었습니다 라는 팝업창이 뜸 

2. 미저장 문서 목록 확인 

3. 등록 선택 시 삭제 메세지 알림창 팝업

4. 열기 선택 시 파일 정상 오픈되어 서버 DD/보안 DD에 저장 시도 

5. 정상 저장되나 삭제 메세지 알림창 팝업

 

테스트 케이스는 언제, 누가 해도 똑같은 결과를 얻을 수 있도록 작성 

 

테스트 담당자가 프로젝트 초기 단계에 참가하는 것이 좋음 

-> 어떤 언어로 개발되었는가에 따라 다른 테스트 방법 사용 가능 

 

출하 전날 버그를 발견했을 때의 대처 

- 출하 기준을 만들 것 

  • 남은 버그 수가 총 건수의 0.5% 이내 
  • 테스트 케이스 성공률 99%
  • 장기간 사용 테스트에서 시스템 멈춤이 한번도 없음 -> 수정은 단념하는 것이 좋음 

사이클로매틱 수: 프로그램의 제어 흐름을 유형 그래프로 표현하여 그 그래프가 가진 성질을 기초로 프로그램의 복잡성을 나타내는 방법 

 

테스트 자동화가 성공하려면 자동화 코드의 유지보수 비용을 낮게 유지

 

테스트만 하는 사람은 도태 -> 상위 공정에서 테스트 코드를 작성하면서 테스트를 해야 함 

 

테스트 케이스를 일일이 사전에 작성하는 것보다 소프트웨어를 테스트하면서 생각하여 시행하는 것이 더 낫다 

 

 

728x90

관련글 더보기

댓글 영역