P17 Systems Testing 04 - Functional Testing
P17 Systems Testing 04 - Functional Testing
P17 System Testing Monday, September 24, 2007 Module 4 : Functional Testing
Marty Swafford IBM Rational Software IBM Certified Solution Designer - Rational Manual Tester, Rational Performance Tester, Rational Functional Tester for Java [email protected]
As soon as we started programming, we found out to our surprise that it wasnt as easy to get programs right as we had thoughtI can remember the exact instance when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
Maurice Wilkes, computer pioneer
Module Objectives
After completing this module, you will be able to: Define functional testing Explain the focus of functional testing List the types of functional test triggers
The main objective of functional testing is to verify that each function of the software application operates in accordance with the written requirement specifications.
Functional Testing
Is a black-box process Is not concerned about the actual code Focus is on validating features Uses external interfaces, including
Application programming interfaces (APIs), Graphical user interfaces (GUIs), Command line interfaces (CLIs).
Functional Testing Key Points Functional Testing acts as the First Customer for the product. Functional tests are also performed on products which do not directly interact with but provide functionality to other products via an API (e.g. print driver) Functional testing is performed in a controlled environment and usually is tested only in a subset of the supported environment.
Mainline function Error conditions Recovery Basic usability Accessibility Global enablement Vulnerability Regression
Error conditions
Basic usability
Global enablement
Regression
Coverage
Useful for mainline function testing, globalization, accessibility and regression testing, as well as basic usability testing. Useful when creating tests for all Functional Testing focus areas Useful for error, vulnerability, and recovery testing. Useful for mainline function and basic usability testing as well as error, vulnerability, and recovery testing.
Coverage Triggers A functional tester tests the login code by using the browser interface to enter a valid user ID and password. This straightforward attempt to exercise code for the single function of logging on is referred to as a coverage trigger.
Variation Triggers Using the same single login function but using a variety of values for the user ID and password. Attempts to exercise code with these combinations of parameters are classified as variation triggers. Variation triggers test boundaries as well as valid and invalid values.
Sequencing Triggers A sequencing trigger in the functional test level is when you use the sequence of steps or discrete tests as the main condition of the test. The sequence itself is the trigger you use to find a class of defects. For example, when testing the login function you check to see if a given sequence functions properly (such as invalid login, invalid login, and then valid login), rather than just testing the valid and invalid logins independently.
Interaction Triggers
A trigger is classified as an interaction trigger when it starts an interaction among two or more bodies of code. For example, the LoginAction() code calls a routine named LoginSite() that gets the registered user's information from the database and logs them into the tool. When the methods are run independently they run successfully, but they fail when run together, this is an interaction trigger. The interaction involves more than a simple serial sequence of actions.
Module summary
Functional verification test involves testing that each function of a product meets the documented requirements. Functional verification test can include the testing of:
Main functions and Error conditions Recovery code and Basic usability Accessibility and Global enablement Vulnerability and Regression