|
Functional Testing is probably the most widely used form of software testing in the Information Technology world today. The vast majority of software producing companies have tight budgets, tight deadlines and lots of competition. Functional Testing's main aim to answer the following question:
Does the software do what it was designed to do?
Software developments are nearly always driven by business requirements, as they form the reason why the software is being developed in the first place. Business requirements can be documented in several ways, either grouped under the one single banner of business requirements or separated into sections such as user requirements, functional requirements and system requirements etc. Functional Testing is typically planned to satisfy business requirements as a group or individually. Some requirements are not testable, which does not necessarily mean there was a mistake, but simply means another form of testing will have to be used to satisfy the requirement. Functional requirements should always be testable however. It is common for company departments and customers alike to request a list of requirements and their associated test case result. This is why the importance of Functional Testing is ranked highly in the development life-cycle.
Requirements are created at the beginning of the software development life-cycle, so Functional Testing can be a consideration very early on. Questions like "How am I going to test this?" are valid at any stage, and so the earlier on it can be answered the better. Requirement reviews can be said to include Functional Testing as both an input and an output, such is the importance of this testing.
Functional Testing is based on the external behavior of the software under test, otherwise known as 'black-box testing', which means that no knowledge of the inner design of the code or logic is required. An example of a form of Functional Testing is 'Security Testing', which tests the functions relating to threats from malicious persons and viruses etc. Interoperability testing can also be considered to be a form of Functional Testing as the capability of the software product to interact with other specified components or systems is being tested.
Before any software product
can be released it must be tested. Typically a formal test strategy is
planned and executed on the software before it can be considered for
release. Often after the formal phases of testing have been completed,
additional testing is performed called Alpha and Beta testing.
|