본문 바로가기

1. QA/1.1 Syllabus

4.1 The Test Development Process (테스트 개발 프로세스)

Terms 

Test case specification, test design, test execution schedule, test procedure specification, test script, traceability


Background

The process described in this section can be done in different ways, from very informal with little or no documentation, to very formal (as it described below). The level of formality depends on the context of the testing, including the organization, the maturity of testing and development processes, time constraints and the people involved.


During test analysis, the test basis documentation is analyzed in order to determine what to test, i. e. to identify the test conditions. A test condition is defined as an item or event that could be verified by one or more test cases (e.g. a function, transaction, quality characteristic or structural element).


Establishing traceability from test conditions back to the specifications and requirements enables both impact analysis, when requirements change, and requirements coverage to be determined for a set of tests. During test analysis the analysis the detailed test approach is implemented to select the test design techniques to use, based on among other considerations, the risks identified (see chapter 5 for more on risk analysis).


During test design the test cases and test data are created and specified. A test case consists of a set of input values, execution preconditions, expected results and execution post-conditions, developed to cover certain test condition(s)  .The 'Standard for Software Test Documentation' (IEEE 829) describes he content of test design specifications (containing test conditions) and test case specifications. 


Expected results should be produced as part of the specification of a test and include outputs, changes to data and states, and any other consequences of the test. if expected results have not been defined then a plausible, but erroneous, result may be interpreted as the correct one. 

Expected results should ideally be defined prior to test execution.


During test implementation the test cases are developed, implemented, prioritized and organized in the test procedure specification. The test procedure (or manual test script) specifies the sequence of action for the execution of a test. if tests are run using a test execution tool, the sequence of actions is specified in a test script (which is an automated test procedure).


The various test procedures and automated test scripts are subsequently formed into a test execution schedule that defines the order in which the various test procedures, and possibly automated test scripts, are executed, when they are to be carried out and by whom. The test ececution schedule will take into account such factors as regression tests, prioritization, and technical and logical dependencies.



이번 섹션에 기술된 테스트 설계 절차는 다양한 방식으로 진행될 수 있는데 매우 비공식적일 수 있고, (아래에서 설명하는 것처럼) 매우 공식적일 수도 있다. 공식성 또는 정형성의 정도는 테스팅 조직 구성, 테스팅과 개발 프로세스의 숙성도, 시간적 제약, 참여 인원 등을 포함하는 테스팅 정황에 따라 달라진다.


테스트 분석 과정에서 무엇을 테스트할지 결정하기 위해, 즉, 테스트 조건을 식별하기 위해 테스트 베이시스(Test basis) 문서를 분석한다. 테스트 조건은 하나 이상의 테스트 케이스로 확인 가능한 항목 또는 이벤트로 정의한다. (예, 트렌잭션, 품질 특성 또는 구조적 요소)


테스트 조건과 명세 및 요구사항 사이에 추적성을 설정하는 것은, 요구사항이 변경 되었을 때의 영향도 분석과 일련의 테스트에 의한 요구사항 커버리지의 달성을 가능하게 한다. 테스트를 분석하는 동안 상세한 테스트 기법(접근법)을 테스트 설계 기법을 선택하기 위해 식별된 리스크를 기준으로 선정하여 구현한다.


테스트 설계 과정에서 테스트 설계 기법을 이용하여 테스트 케이스와 테스트 데이터를 설계하고 명세 화 한다. 테스트 케이스는 입력값의 묶음, 실행 사전조건, 기대결과 와 실행 사후 조건으로 구성되고, 특정 테스트 조건을 커버하기 위해 개발된다. 표준 문서인 '소프트웨어 테스트 문서와 표준'은 테스트 설계 명세 (테스트 상황 포함)와 테스트 케이스 명세 내용을 기술한다.


테스트 케이스의 명세의 일부로 생성되어야 하는 기대 결과는 결과값, 데이터나 상태의 변화, 다른 테스트 결과로 구성된다. 만약 기대결과가 정의되어 있지 않다면, 그럴듯하지만 실제로는 틀린 결과가 올바른 것으로 판정될 수 있다. 이와 같이 테스트 실행결과가 올바른 것인지 판정할 수 없거나 어려울 수 있다는 것을 감안하여 원칙적으로는 테스트 실행 전에 기대 결과가 정의되어 있어야 한다.


테스트 구현이 진행되는 동안 테스트 케이스를 개발 및 구현하고, 우선 순위를 선정하고 배치하여 테스트 프로시저 명세서를 만든다. 테스트 프로시저 (또는 수동 테스트 스크립트)는 테스트 실행을 위한 동작 순서이다. 만약 테스팅 툴을 이용해 테스팅 한다면, 테스트 대상 소프트웨어를 동작 시키는 순서를 테스트 스크립트(또는 자동화된 테스트 프로시저)에 기술한다.


다양한 테스트 프로시저와 자동화된 테스트 스크립트를 언제 누가 수행할 것인지에 대한 테스트 실행 스케줄이 뒤를 이어 구성된다. 테스트 실행 스케줄은 리그레션 테스트 여부나,우선순위, 기술적/논리적 종속 관계와 같은 요소를 고려하여 결정한다.