No matter the IT methodology you’re using – agile, waterfall or iterative – test phases for your programme will be the same. They just align to different methodologies in different ways. So what are these test phases and what tests does each phase incorporate? This Testing Phases and Phrases glossary tells you all you need to know…..
Key testing Phases
Depending on the delivery methodology selected (e.g. waterfall, agile, iterative etc), test phases will align with that methodology. However, the methodology selected does not impact the types of testing that should be considered. This post outlines key test phases, rather than describing how they align to different methodologies. Key test phases include:
Static testing can take the form of several test types, but is generally executed against business requirements and code review. As part of the requirements phase, testers pair with business analysts to test and assure the testability of requirements, using measures such as: if they are complete; singular; or unambiguous. Code review may be carried out manually, or using code review tools, to ensure adherence to coding standards.
Unit & Unit Test Integration (may be referred to as Component)
Unit & unit integration testing are development activities. Each system component (code) is tested in isolation by the developer, to confirm the integrity of that code. By compiling code, a unit integration test is completed to ensure that code tested in isolation can integrate with the completed code base.
Functional Test Phases
Functional test phases ensure that the requirements used to develop and deliver the application are proved to be functionally compliant; does the application – and the functions within the application – work as expected, for example. Functional testing usually includes system testing, system integration testing, end to end testing, and regression (other forms may include functional & site acceptance testing (FAT & SAT)).
System tests – are singular and test the function that is described by the requirement.
System integration test – ensures that the functions described by the requirements integrate to deliver the application.
End to end (e2e) test – ensures the application under test can integrate with both internal and external applications.
Regression testing – ensures that changes to an application do not impact areas of the existing application that have not been changed or updated.
User Acceptance Testing (UAT)
Ensures that both functional and non-functional requirements support the user expectations. UAT ensures that day to day activities are supported by the delivered application. Does the application support business processes? Is it performing so it does not impact daily activities? Does it meet the business requirements and are process changes or workarounds supported?
Non-Functional Test Phases
Non-functional test phases ensure that the non-functional requirements used to develop and deliver the application are proved to be non-functionally compliant; does the application perform as expected? Is it secure? Can it be supported by service owners and their teams? Non-functional testing generally takes the form of performance, security and operational acceptance.
Performance – does the application perform as expected i.e. can it support load (users), volume (data), stress (load & volume break point), soak (availability over time)
Security – is the application secure to both internal and external threats? Does code and infrastructure comply to security standards described by company security documentation?
Operational acceptance testing (OAT) – ensures the application is service complaint and ready to release into a production environment. This phase ensures supportability, recoverability and usability amongst other OAT types.