What is fundamental test process in software testing?
Testing
is a process rather than a single activity. This process starts from test
planning then designing test cases, preparing for execution and evaluating
status till the test closure. So, we can divide the activities within the
fundamental test process into the following basic steps:
1) Planning
and Control
2) Analysis
and Design
3)
Implementation and Execution
4)
Evaluating exit criteria and Reporting
5) Test
Closure activities
1)
Planning and Control:
Test
planning has following major tasks:
i. To
determine the scope and risks and identify the objectives of testing.
ii. To
determine the test approach.
iii. To
implement the test policy and/or the test strategy. (Test strategy is an
outline that describes the testing portion of the software development cycle.
It is created to inform PM, testers and developers about some key issues of the
testing process. This includes the testing objectives, method of testing, total
time and resources required for the project and the testing environments.).
iv. To
determine the required test resources like people, test environments, PCs, etc.
v. To
schedule test analysis and design tasks, test implementation, execution and
evaluation.
vi. To
determine the Exit criteria we need to set criteria such as Coverage
criteria. (Coverage criteria are the percentage of statements in the
software that must be executed during testing. This will help us track whether
we are completing test activities correctly. They will show us which tasks and
checks we must complete for a particular level of testing before we
can say that testing is finished.)
Test control
has the following major tasks:
i. To
measure and analyze the results of reviews and testing.
ii. To monitor
and document progress, test coverage and exit criteria.
iii. To
provide information on testing.
iv. To
initiate corrective actions.
v. To make decisions.
2)
Analysis and Design:
Test analysis and Test Design has the
following major tasks:
i.
To review the test basis. (The test basis is the information we need in
order to start the test analysis and
create our own test cases. Basically it’s a documentation on which test
cases are based, such as requirements, design specifications, product risk
analysis, architecture and interfaces. We can use the test basis documents to
understand what the system should do once built.)
ii.
To identify test conditions.
iii. To design the tests.
iv. To evaluate testability of the
requirements and system.
v. To design the test environment set-up
and identify and required infrastructure and tools.
3) Implementation and Execution:
During test implementation and execution, we take the test conditions
into test cases and procedures and other test ware such as scripts for
automation, the test environment and any other test infrastructure. (Test cases
is a set of conditions under which a tester will determine whether an application is working correctly or not.)
(Test ware is a term for all utilities that serve in combination for
testing a software like scripts, the test environment and any other test
infrastructure for later reuse.)
4) Test
implementation has the following major task:
i. To
develop and prioritize our test cases by using techniques and create test
data for those tests. (In order to test a software application you need to
enter some data for testing most of the features. Any such specifically
identified data which is used in tests is known as test data.)
We also write some instructions for carrying out the tests which is known as test procedures.
We may also need to automate some tests using test harness and automated tests scripts. (A test harness is a collection of software and test data for testing a program unit by running it under different conditions and monitoring its behaviour and outputs.)
ii. To create test suites from the test cases for efficient test execution.
(Test suite is a collection of test cases that are used to test a software program to show that it has some specified set of behaviours. A test suite often contains detailed instructions and information for each collection of test cases on the system configuration to be used during testing. Test suites are used to group similar test cases together.)
iii. To implement and verify the environment.
We also write some instructions for carrying out the tests which is known as test procedures.
We may also need to automate some tests using test harness and automated tests scripts. (A test harness is a collection of software and test data for testing a program unit by running it under different conditions and monitoring its behaviour and outputs.)
ii. To create test suites from the test cases for efficient test execution.
(Test suite is a collection of test cases that are used to test a software program to show that it has some specified set of behaviours. A test suite often contains detailed instructions and information for each collection of test cases on the system configuration to be used during testing. Test suites are used to group similar test cases together.)
iii. To implement and verify the environment.
5)
Test execution has the following major task:
i. To
execute test suites and individual test cases following the test procedures.
ii. To
re-execute the tests that previously failed in order to confirm a fix. This is
known as confirmation testing or re-testing.
iii. To log
the outcome of the test execution and record the identities and versions of the
software under tests. The test log is used for the audit trial. (A test log is
nothing but, what are the test cases that we executed, in what order we
executed, who executed that test cases and what is the status of the test case
(pass/fail). These descriptions are documented and called as testlog.).
Iv. to Compare actual results with expected results.
Iv. to Compare actual results with expected results.
v. Where there
are differences between actual and expected results, it report discrepancies as
Incidents. Test execution has the following major task:
i. To
execute test suites and individual test cases following the test procedures.
ii. To
re-execute the tests that previously failed in order to confirm a fix. This is
known as confirmation testing or re-testing.
iii. To log
the outcome of the test execution and record the identities and versions of the
software under tests. The test log is used for the audit trial. (A test log is
nothing but, what are the test cases that we executed, in what order we
executed, who executed that test cases and what is the status of the test case
(pass/fail). These descriptions are documented and called as test log.).
iv. To
Compare actual results with expected results.
v. Where
there are differences between actual and expected results, it report
discrepancies as Incidents.
6) Evaluating Exit criteria and Reporting:
Based on the risk assessment of the project we will set the criteria for
each test level against which we will measure the “enough testing”. These
criteria vary from project to project and are known as exit criteria.
Exit criteria come into picture, when:
— Maximum test cases are executed with certain pass percentage.
— Bug rate falls below certain level.
— When achieved the deadlines.
Evaluating
exit criteria has the following major tasks:
i. To check the test logs against the exit criteria specified in test
planning.
ii. To assess if more test are needed or if the exit criteria specified
should be changed.
iii. To write a test summary report for stakeholders.
7) Test Closure activities: Test
closure activities are done when software is delivered. The testing can be
closed for the other reasons also like:
- When all the information has been gathered which are needed for the testing.
- When a project is cancelled.
- When some target is achieved.
- When a maintenance release or update is done.
Test closure activities have the following
major tasks:
i. To check
which planned deliverables are actually delivered and to ensure that all
incident reports have been resolved.
ii. To
finalize and archive test ware such as scripts, test environments, etc. for
later reuse.
iii. To
handover the test ware to the maintenance organization. They will give support
to the software.
iv To
evaluate how the testing went and learn lessons for future releases and
projects.
Comments
Post a Comment