Quizzdata
HomeOur ServicesTutorialsTrainingJobs BoardQuizzit Blog..About UsContact Information
The Fundamental Test Phases

There are different phases within testing.

The phases range from the testing of the simplest elements of the code to the point of delivery or implementation of the application.

Component Testing

Component testing is the testing of individual software components.

It is the lowest level of testing. It refers to the testing of the smallest items, the building blocks of the system. It is also known as: -

 

·         Unit Testing

·         Module Testing

·         Program Testing

 

BS7925-2 Standard for software component testing defines a generic process for the testing of software components. It also defines techniques for the design and measurement of component testing.

Before component testing starts the component test strategy and project component test plan are specified.

The project component test plan will consist of the following: -

 

·         Component Test Planning

The component test planning specifies how the strategy and project plan described above apply to the component under test. This includes any exceptions to the strategy and details any stubs and drivers that may be needed.

 

·         Component Test Specification

Test cases are designed using techniques selected in the strategy. Test cases must state their objective, initial state, inputs and expected outcome. Every test case must be repeated.

 

·         Component Test Execution

Each Test case is executed.

 

·         Component Test Recording

The identity and version of the component and specification are recorded. The actual outcome is recorded and compared to the expected outcome. Any discrepancy is logged and analysed to determine where the error lies and the earliest test activity that needs to be repeated in order to remove the discrepancy in the test specification or verify the removal of the fault in the component. The failure and success of the test are recorded and the test coverage determined.

 

·         Checking for Test Completion

The test records are checked against the previously specified completion criteria. If these criteria are not met, the earliest test activity that must be repeated in order to meet the criteria is identified and the test process is restarted from that point. It may be necessary to repeat the test specification activity to design further test cases to meet a test coverage target.

 

 

Integration Testing

Testing performed to expose faults in the interfaces and in the interaction between integrated components BS7925-1.

The integration test plan will also consist of the following: -

 

·         Integration test plan

·         Integration test specification

·         Integration test execution

·         Integration test recording

·         Checking for completion.

 

Integration testing is divided into two phases, which are: -

 

Integration testing in the small

This is concerned with bringing individual components together to test them as a whole. The individual components may work very well on their own but you need to check the interfaces and interaction between them. Through integration testing in the small we start assembling components into sub systems. We can then integrate the sub-systems together to create the overall system being delivered.

 

Integration testing in the large

This is concerned with bringing individual systems together to ensure that there is smooth interaction between the two systems.

When systems are integrated together there are various problems that can arise, the most common being that the correct information is not passed from the source system to the target system.

When data is transferred between systems there is always the risk that data will get lost in transfer, especially if it is being transmitted externally. Integration testing acts as a solution to most of these problems.

 

Top to bottom integration testing

 

·         This is when the components at the top of the component hierarchy are tested first.

·         Stubs simulate lower level components.

·         Tested components are used to test lower level components.

·         The test process is repeated until the lowest level components are tested.

 

Bottom to Top integration testing

 

·         Lowest level components are tested first.

·         Drivers simulate higher-level components.

·         Lower level tested components are the used to test higher-level components.

·         The process is repeated until the highest-level component is tested.

 

 

 

System Testing

This is a requirement based testing and is divided into two phases, which are: -

Functional system testing

Non-Functional system testing

 

Functional system testing

This is the testing of a system in relation to its functional requirements. A functional requirement is a requirement that specifies a function that a system or system component must perform.

The functionality of the system is what the system does. It is the processes that it carries out. Therefore we can say that functional testing is testing to see that the system does what it is supposed t do.

·         Tests are derived from user requirements or system requirements.

·         Tests are based on documented requirements and not the delivered code.

·         Test preparation can occur as soon as the user requirements have been agreed.

·         Promotes quality within the finished system.

 

By preparing test earlier in the SDLC, any errors detected will be cheaper to fix and any valuable test execution time will not have to be spent on test creation. Testing against requirements as opposed to the code will also ensure that the users are getting a system that conforms to those requirements, which are actually what they want. It is the requirements document that forms the contract of “what is asked for” and “what is delivered”.

 

Business process functional testing is a testing based on expected user profiles. It should reflect the business environment and the business processes.

However, it must be ensured that all functionality is tested within the system.

 

Non-Functional system testing

This is the testing of everything that doesn’t relate to the functionality of the system. This type of testing covers aspects such as ease of use and performance. The system may provide all the necessary functionality but if it is not easy to use or does not perform very well then it will not be “fit for purpose”.

 

Non-Functional Test Types

Load

Performance

Stress

Security

Usability

Storage

Volume

Recovery

 

Non-functional system testing is more concerned with how well a system performs its function.

All systems are written with a purpose in mind; usually with the intention of making money and being profitable. It is the non-functional attributes that give the system a competitive edge over their competitors.

 

 

Acceptance Testing

The formal testing conducted to enable a user, customer, or other authorised entity to determine whether to accept a system or component. BS7925-1

Acceptance testing is the testing of deliverable, for acceptability, by the user of that deliverable.

There are different types of acceptance testing, which are: -

 

·         User Acceptance Testing

This is the final and last stage of system validation.

The testing of a system, for acceptability, by the user of the deliverable.

All deliverables can and should be tested.

Acceptance criteria should be stated in advance.

It is based on business functions.

Business events or business processes should be tested within each business function.

Each business rule should be exercised.

Non-functional attributes should be tested.

It should be carried out with a simulation of the live environment.

 

·         Contract Acceptance Testing

Acceptance testing which a third party performs.

Acceptance criteria must be laid out in the contract.

If the acceptance criteria are met, the assumption is that the system is fit for purpose.

 

·         Alpha Testing

This is the testing carried out with the actual simulation or actual operational testing at an in-house site not otherwise involved with the software developers. BS7925-1.

Independent in-house testing performed on early, stable version of the software.

Performed by internal and or external users.

 

·         Beta Testing

This is the operational testing at a site not otherwise involved with the software developers. BS7925-1.

The prospective users of the system will use it as they intend to once the system is live but this time the testing is carried out at their own site. Users only test the system functionality that is relevant to them.

Back to Tutorials

The fundamental test phases