Testing depends on the approach taken at different points within the development process.
Testing is a Process Itself
The testing process is determined by the following phases
- Test planning
- Test analysis and test design
- Test implementation and test execution
- Evaluating Exit Criteria and reporting
- Test closure activities
- Test Controlling (at all phases)
- Test phases may overlay on Testing activity throughout the software development process
- Testing is more than test execution!
- Includes overlapping and backtracking
- Each phase of the testing process takes place parallel to the phase of the development process
Main Tasks:
Test control is an ongoing activity influencing test planning. The test plan may be re designed according to the information acquired from best controlling.
The test process status is determined by comparing the progress achieved against the last test plan. Necessary activities will be started accordingly.
- Measure and analyze results
- The test coverage and progress and the exit criteria are monitored and documented
- Start correcting measures
- Prepare and make decisions
Main Tasks:
- Identifying the scope and risk
- Determining the testing objectives and exit criteria
- Identifying the approach: test coverage, test techniques, test teams
- Carry out testing method/test strategy, plan time
- Obtaining and organizing test resources: people, test environment, test budget
Test Plan(German: Testkonzept):
Test Plan document explaining the scope, approach, resources and schedule of intended test activities. It includes, but is not limited to, the test items, the features to be tested, resources and contingency planning.
Test Strategy:
High test level description to be performed and the testing carried out with those levels for an organization or program.
According to the overall approach, the test efforts are divided among the test objects and the different test objectives: the choice of test methods, how and when the test activities should be done , when do we stop testing , whats the exit criteria
Exit Criteria (after Glib and Graham):
The set of generic specific conditions, agreed upon with the stakeholders, for permitting a process to be officially completed. The purpose of exit criteria is to prevent a task from being considered completed when there are still parts of the task outstanding which have not been finished.
Exit criteria helps when to stop testing. This should be done for each test level.
Main Tasks:
- Analysis on test basis (requirements, system architecture, design, interfaces)
- Review system architecture, system design including interfaces among test objects
- Identify specific test conditions and required test data ● Evaluate the availability of test data and/or the feasibility of generating test data
- Designing the test/test cases
- Create and prioritize logical test causes(test causes without specific values for test data)
- Positive tests give proof functionality working as expected, negative tests helps to handle error situations
- Testability analysis is more about following
- Organizing the test environment(test bed)
- Availability of the test environment, time etc.
- Define the test environment operation, including user administration
- Loading data sets and system parameters
- Connecting the test environment to adjacent systems
- Test infrastructure and test tools, if needed
- Processes, procedures and responsibilities
- Selecting, equipping, installation and operations of test tools.
Test Data:
Data that is present in the system before even test is executed and affects or is affected by the component or system under test.
Input Data: A variable that is read by a system within or outside
Test Coverage:
The degree of which a specified item has been exercised by a test suite (expressed as a percentage). Mostly used on white box tests to determine code coverage.
Test Oracle:
- A source to validate the expected results of the software under test: benchmarks from previous tests .
- User’s manual or domain knowledge.
Test Implementation and Execution -
- Design and prioritize test cases
- Creating test data, writing test procedure
- Creating test sequences (test suites) - Creating test automation scripts, if necessary - Configuring the test environment(test bed) - Executing test (manually or automatically)
- Follow sequence state in the test - Plan for test suites, order of test cases execution
- Test result evidence and analysis, Retest, Regression
- Ensure that changes (after installing a new release, or error fixing) did not uncover other or introduce new defects.
Test suite/Test Sequence
- Several tests where post condition of one test is given as pre condition to another test
- Test procedure specification(test scenario) - Document that specifies the sequence of execution priority
Test Execution
Process of executing a test, producing actual results.
Test log
A consecutive record of suitable details about the execution of tests: when the test was executed,what was the actual outcome
Regression tests
- Execution of a previously tested program ,ensure that no new defect have been introduced in previous working areas of the software , as a result of the defect fix made.
- It is performed when the fix alters the environment
QA Software Testing Training
- Personalized Free Consultation
- Access to Our Learning Management System
- Access to Our Course Curriculum
- Be a Part of Our Free Demo Class
Main Tasks
- Assessing test execution against the defined objectives (e.g. test and criteria)
- Evaluating test logs(summary of test activities, test result , communication exit criteria) -
- Provide information to allow the decision, whether more test should take place.
Main Tasks
- Data should we collected from completed test activities to merge experience, test ware, facts and numbers.
- Closure of defect reports or raising change request.
- Verifying which planned deliverable have been delivered and tested. Documenting the acceptance of the system .
- Finalizing an test artifacts, test environment and the test infrastructure for future use, hand it over to operations .
- Analyzing “lessons learned” for future project.
The testing process can be divided into different stages.
- Testing planning covers the activities defining test strategy for all test phase as well as planning resources (Time, personnel, machines).
- Testing design (specification) covers designing the test cases and their expected results.
- Test execution includes defining the test data, test execution and comparing results.
- Test evaluation and reporting covers test results with evidence and exit criteria evaluation
- Test conclusion include the closure of defect report and improvements needed
- Test control consists of controlling activities all the above phases of the testing process