Functional testing focuses on what the system does, rather than how it does it. Non-functional testing is focused on how the system does what it does. Both functional and non-functional testing are black-box tests, being focused on behavior. White-box tests are focused on how the system works internally—i.e., on its structure.
Functional tests can have, as their test basis, the functional requirements. These include both the requirements that are written down in a specification document and those that are implicit. The domain expertise of the tester can also be part of the test basis.
Functional tests will vary by test level or phase. A functional integration test will focus on the functionality of a collection of interfacing modules, usually in terms of the partial or complete user workflows, use cases, operations, or features these modules provide. A functional system test will focus on the functionality of the application as a whole, complete user workflows, use cases, operations, and features. A functional system integration test will focus on end-to-end functionality that spans the entire set of integrated systems.
The test analyst can employ various test techniques during functional testing at any level. All of the techniques discussed in Advanced Software Testing: Volume 1 will be useful.
We should keep in mind that test analyst is a role, not a title, job description, or position. In other words, some people play the role of test analyst exclusively, but others play that role as part of another job. So, when dedicated, professional testers do functional testing, they are test analysts both in position and in role. However, when domain experts do the analysis, design, implementation, or execution of functional tests, they are working as test analysts. When developers do the analysis, design, implementation, or execution of functional tests, they are working as test analysts.
For test analysts in the ISTQB Advanced syllabus, we consider functional and usability testing as concerned with the following quality attributes:
In this excerpt, we’ll look at testing the first three of these attributes, starting with accuracy.
Read this article → (PDF 288 kB)