Notes on Section 7 – Testing Types
Lecture 25
Functional Testing
The testing processes in which we try to make sure that the software
works as per the customer requirements are broadly classified as
functional testing. It needs to be confirmed that the required
functionalities are working fine.
The primary objective is compare the program behaviour against the
requirement specification.
Design the test suites as per the requirements and run them. If the output
is as expected then the functionality is said to be working correctly.
Most of the functional tests fall under the black box testing category.
Steps involved in functional testing:
1. Acquire and analyse functional requirement specification.
2. Design test suites based on the requirements. Collect input data.
3. Create expected output data.
4. Execute the application.
5. Collect the actual output data from the test runs and compare this with
the expected data. If there is deviation, raise relevant defects.
Once all the defects are resolved, the functional testing is said to have
ensured the quality of the application.
Notes on Section 7 – Testing Types
Types of Functional Testing
Smoke Testing
Also called Build verification testing.
Primary goal is to have a quick look at the most important
functionalities of the application and ensure that they are at
least working. Otherwise the build is rejected.
Sanity Testing
Test for rationality.
Check if the actual output is logical according to expected
output.
Regression Testing
Rigorous form of testing
Testing is done to discover new defects after some changes are
made to previous builds of the software.
Usability Testing
Focus on user-centric tests
Ensures that the application is ready for use for real world
users.
Notes on Section 7 – Testing Types
Lecture 26
Non-Functional Testing
Testing of an application for its non-functional requirements.
Focus on quality characteristics of the application.
Forms of Non-functional tests
1. Performance Testing
The technical investigation done to determine or validate the speed,
scalability and stability characteristics of the AUT.
Involves testing and tuning activities.
Goal is to achieve response times, throughput, and resource-utilization
levels which meet the performance objectives.
2. Load Testing
Objective is to understand the behaviour of the system under a specific
expected load.
Load can be no. of users or no. of transactions per amount of time.
Helps to identify the maximum operating capacity of an application.
3. Stress Testing
Deliberate intense testing of an application beyond normal operational
capacity.
Determines the stability of the application.
Reveals application bugs that surface only under high load conditions.
Spike testing is a subset of stress testing.
4. Security Testing
Reveals flaws in security mechanisms in the system under test.
Typical security requirements – confidentiality, integrity, availability,
authentication and non-repudiation.