QA/ISTQB

1.4 - Fundamental test proccess (테스트 프로세스 기초)

c29130811 2019. 2. 16. 15:57

Terms 

confirmation testing, retesting, exit criteria, incident, regression testing, test basis, test condition, test coverage, test data, test execution, test log, test plan, test procedure, test policy, test strategy, test suite, test summary report, testware.


Background

The most visible part of testing is executing tests. But to be effective and efficient test plans should also include time to be spent on planning the tests. designing test cases, preparing for execution and evaluating status. 


The fundamental test process consists of the following main activities : 


 - Planning and control

 - analysis and design

 - implementation and execution

 - evaluating exit criteria and reporting

 - test closure activities


Although logically sequential, the activities in the process may overlap or take place concurrently. 


1.4.1 Test planning and control

Test planning is the activity of verifying the mission of testing, defining the objectives of testing and the specification of test activities in order to meet the objectives and mission.


Test control is the ongoing activity of comparing actual progress against the plan, and reporting the status including deviations from the plan. it involves talking actions necessary to meet the mission and objectives of the project. In order to control testing, it should be monitored throughout the project. Test planing takes into account the feedback from monitoring and control activities.


Test planning and control takes are defined in Chapter 5 of this syllabus.



1.4.2 Test analysis and design

Test analysis and design is the activity where general testing objectives are transformed into tangible test conditions and test cases.


Test analysis and design has the following major tasks:

- Reviewing the test basis  (such as requirements, architecture, design, interfaces)

- Evaluating testability of the test basis and test objects. 

- Identifying and prioritizing test conditions based on analysis of test items, the specification, behavior and structure. 

- Designing and prioritizing test cases.

- Identifying necessary test data to support the test conditions and test cases.

- Designing the test environment set-up and identifying and required infrastructure and tools.


1.4.3 Test implementation and execution

Test implementation and execution is the activity where test procedures or scripts are specified by combining the test cases in a particular order and including and other information needed for test execution, the environment is set up and the test are run.


Test implementation and execution has the following major tasks:

- Developing, implementing and prioritizing test cases.

- Developing and prioritizing test procedures, creating test data and, optionally, preparing test harnesses and writing automated test scripts.

- Creating test suites from the test procedures for efficient test execution.

- Verifying that the test environment has been set up correctly.

-  Executing test procedures either manually or by using test execution tools, according to the planned sequence.

- Logging the outcome of test execution and recording the identities and versions of the software under test, test tools and testware.

- Comparing actual result with expected results.

- Reporting discrepancies as incidents and analyzing them in order to establish their cause (e.g. a defect in the code, in specified test data, in the test document, or a mistake in the way the test was executed).

- Repeating test activities as a result of action taken for each discrepancy. For example, re-execution of a test that previously failed in order to confirm a fix (confirmation testing), execution of a corrected test and/or execution of tests in order to ensure that defects have not been introduced in unchanged areas of the software or that defect fixing did not uncover other defects (regression testing.).


1.4.4 Evaluating exit criteria and reporting

Evaluating exit criteria is the activity where test execution is assessed against the defined objectives. This should be done for each test level.


Evaluating exit criteria has the following major tasks:

- Checking test logs against the exit criteria specified in test planning.

- Assessing if more tests are needed or if the exit criteria specified should be changed.

- Writing a test summary report for stakeholders.


1.4.5 Test closure activities

Test closure activities collect data from completed test activities to consolidate experience, testware, facts and numbers. For example, when a software system is released. a test project is completed (or cancelled), a milestone has been achieved, or a maintenance release has been complete.


Test closure activities include the following major tasks:

- Checking which planned deliverables haven been delivered. the closure of incident reports or raising of change records for any that remain open, and the documentation of the acceptance of the system.

- Finalizing and archiving testware, the test environment and the test infrastructure for later reuse.

- Handover of testware to the maintenance organization.

- Analyzing lessons learned for future release and projects, and the improvement of test maturity.




용어

확인 테스트, 재 테스트, 완료 조건, 사고, 회귀 테스트, 테스트 베이시스, 테스트 조건, 테스트 커버리지, 테스트 데이터, 테스트 실행, 테스트 로그, 테스트 계획,  테스트 순서, 테스트 정책, 테스트 전략, 테스트 슈트, 테스트 개요 리포팅, 테스트 웨어



배경

가장 눈에 띄는 테스트 활동은 테스트를 실행하는 것이다. 그러나, 효율적이고 효과적으로 하기 위해서는 테스트를 계획하고, 테스트 케이스를 디자인하며, 실행과 상태를 평가하는데도 시간을 사용해야 한다.


기초적인 테스트 프로세스 주요 활동들은 다음과 같다.


 - 계획과 제어

 - 분석과 설계

 - 구현과 실행

 - 완료 조건 평가와 리포팅

 - 테스트 마감 활동


논리적으로 차례대로이지만, 프로세스 내에 활동들이 중복되거나, 동시에 발생할 수 있다.


1.4.1 테스트 계획 및 제어

테스트 계획은 테스팅의 목표와 임무를 달성하게 위해,  목표와 임무를 확인하는 활동이며, 목표 달성을 위해 필요한 활동을 정의하는 것이다.


테스트 제어는 실제 진행되는 상황과 계획을 비교하는 지속적인 활동이다. 그리고 계획과 실제 상황의 다른 상태를 포함하여 보고하는 것과 테스트 프로젝트의 목표, 계획 과의 차이에 대해 조치를 취하는 것을 의미한다. 테스트를 제어하기 위해서는 테스트 활동에 대해 모니터링을 해야 한다. 테스트 계획은 모니터링과 제어 활동으로 부터 받는 피드백을 반영한다.


테스트 계획과 제어는 5장에서 다뤄진다.


1.4.2 테스트 분석과 설계

테스트 분석과 설계는 일반적인 테스트 목표를 명백한 테스트 조건과 테스트 케이스로 변환하는 활동이다.


테스트 분석과 설계는 다음과 같은 주요한 활동을 포함한다.

- 테스트 베이시스의 리뷰 (요구사항 분석서, 아키텍쳐, 설계 문서, 인터페이스)

- 테스트 베이시스와 테스트 대상의 테스트 용이성 평가

- 테스트 아이템, 명세, 동작과 구조,의 분석을 통해 테스트 조건 및 테스트 우선 순위 파악

- 테스트 케이스 설계와 우선 순위 설정

- 테스트 케이스의 필요한 테스트 조건과 테스트 데이터 확인

- 테스트 환경 구축에 요구되는 기반 시설과 도구의 확인


1.4.3 테스트 구현과 실행

테스트 구현과 실행은 특별한 순서로 테스트 케이스를 결합하고, 테스트 실행에 필요한 다른 정보를 포함함으로 써 테스트 절차 또는 스크립트를 명세화 하는 활동이다. 테스트 진행 이전에 환경이 마련되어있어야 한다.


테스트 구현과 실행은 다음과 같은 주요한 활동을 포함한다.

- 테스트 케이스의 개발 구현과 우선순위 설정

- 테스트 절차의 개발과 우선순위 설정, 테스트 데이터의 생성, 선택적으로 테스트 하네스와 자동화 테스트 스크립트 준비

- 효율적인 테스트 실행을 위한 테스트 수트의 생성

- 테스트 환경의 올바른 구축 확인

- 계획된 순서에 따른 수동 또는 테스트 실행 도구로 테스트 절차 수행

- 테스트 수행 결과를 기록, 테스트 중인 소프트웨어, 테스트 도구, 테스트웨어의 식별과 버전을 기록

- 예상 결과와 실제 결과 비교

- 예상 결과와 실제 결과간의 불일치를 사건으로 보고 불일치의 원인을 알아내기 위해 분석 (예, 코드 상, 특정한 테스트 데이터, 테스트 문서 또는 테스트 실행 중 실수로 발생될 수 있는 결함)

- 각각의 불일치를 조치한 결과를 확인하기 위해 테스트 활동을 반복, 예를 들면 수정을 확인하기 위해 이전에 실패한 테스트를 실행 (확인 테스팅), 수정으로 인해 새로운 버그가 추가되지 않았는지, 또는 변경되지 않아야 할 부분에서 수정 사항과 연관된 버그가 발생하지 않았는지 확인하는 테스트 수행 (리그레션 테스트)


1.4.4 완료 조건의 평과와 결과 보고

완료 조건의 평가는 테스트 실행 결과를 정의된 목표에 평가하는 활동이다.  이것은 각 테스트 레벨에서 수행되어야 한다.

완료 조건의 평가는 다음과 같은 주요한 활동을 포함한다.
- 테스트 로그와 테스트 계획에 명시된 완료 조건을 만족하는지 확인
- 추가 테스트가 필요한지 아니면 명세된 완료 조건을 변경해야 하는지에 대한 평가
- 이해 관계자에게 배포할 테스트 요약 보고서 작성

1.4.5 테스트 마감 활동

테스트 마감 활동은 완료된 테스트 활동으로부터 얻어진 경험, 테스트 웨어, 사실 정보와 수치 데이터를 통합하는 활동이다.  예를 들어 소프트웨어 시스템이 배포될 때(혹은 취소될때), 주요 단계를 달성 했을 때, 또는 유지보수 배포가 완료 되었을 때 마감 활동을 한다.


테스트 마감 활동은 다음과 같은 주요한 활동을 포함한다.

- 발송 하기로 계획 된 결과 물에 대한 확인, 종료 된 인시던트 보고서 또는 아직 오픈되어 변경된요구 사항의 처리, 그리고 인수되는 시스템의 문서화

- 추 후 재사용을 위한 테스트 웨어, 테스트 환경, 테스트 기반설비에 대한 마감 및 보관

- 테스트 웨어를 유지보수 기관에게 이관

- 추 후 배포 또는 프로젝트 성숙도 개선이 되도록, 분석된 교훈을 분석



728x90