Unit 23: Risk Analysis and System Testing
LO2 Create a customized risk-based test strategy, plans and techniques for a given
specification.
4. Functional Testing, Structural Testing & Automated Testing
1
2
Functional Testing - Functional Testing Methods
Unit Testing: In Unit Testing, individual units of the software are tested. Unit Testing of software
package applications is done during the development(coding) of an application. The goal of Unit
Testing is to isolate a section of code and verify its correctness.
Integration testing: Integration Testing is a level of software package testing where individual
units are combined and tested as a bunch. The purpose of this level of testing is to show faults
within the interaction and between the integrated units.
Smoke Testing: In the smoke testing technique, testers examine all the basic components of a
software system to ensure that they work properly. Typically, smoke testing is conducted by the
testing team, instantly once a software package build is formed.
3
Functional Testing - Functional Testing Methods
User Acceptance: Acceptance testing is Formal testing that is used to determine whether a
system satisfies its acceptance criteria or not and lets the customer determine whether to
accept the system or not. This testing is usually performed by the customer.
Localization Testing: Part of the software testing process that focuses on adapting a globalized
application to a particular culture/locale. This testing is normally done by the testing teams.
Globalization Testing: Globalization Testing is a testing method that checks the proper
functionality of the product with any of the culture/locale settings by using every type of
international input possible. It is performed by the testing team.
4
Non-Functional Testing - Non-Functional
Testing Methods
Performance Testing: In Performance Testing, a tester confirms that the software will perform
well under its expected workload. A software performance likes its response time, reliability,
resource usage, and scalability. The goal of Performance Testing isn’t to find bugs but to eliminate
performance bottlenecks.
Exploratory Testing: Exploratory testing means the testing of a software package without any
specific plans or schedules. This is a testing method where we don’t have any test cases or test
planning documents to check the application.
Load Testing: Load testing is conducted to recognize the behavior of the application under a
specific expected load. Load testing is done to find out that, how will an application behave under
both normal and at peak conditions.
5
Non-Functional Testing - Non-
Functional Testing Methods
Volume Testing: Volume Testing is used to check the system performance of an application by increasing the
volume of data in the database. It helps to analyze how a software or application response under these
conditions. It is also known as Flood Testing.
Scalability Testing: Scalability Testing is a part of non-functional tests that examines a software package to
ensure that an application can handle the projected increase in user traffic, data volume, transaction counts
frequency, etc.
Usability Testing: Usability testing is used to test how easy is to use the software by testing it with real users.
Users are asked to complete tasks while they are being observed by developers, to see where they encounter
problems and experience confusion.
Security Testing: Security Testing is a Non-functional testing method that ensures its data and resources are
protected from possible intruders. It also tests that software systems and applications must be free from any
threats, risks that may cause a big loss.
6
Maintenance
Regression Testing: Type of software package testing that seeks to uncover
software package errors once changes to the program (e.g. bug fixes or new
functionality). This is executed by retesting the program. This testing is performed
by the testing teams.
Maintenance Testing: Maintenance Testing is done on the already deployed
software package. The deployed software package needs to be enhanced,
modified or migrated to different hardware. The Testing done during this
improvement, modification and migration cycle is known as maintenance testing.
7
Functional Testing
Functional testing focuses on verifying that the software meets the specified functional
requirements and behaves as expected from a user's perspective. It ensures that the system
functions correctly and performs its intended tasks. In a risk test plan, functional testing helps
identify risks associated with the software's functionality and ensures that critical
functionalities are working as intended.
Functional testing techniques, such as black-box testing and user acceptance testing, involve
testing the software without considering its internal structure or code. The goal is to validate
that the software meets the desired functional criteria and performs as intended, reducing
the risk of functional failures or inadequate system behaviour. 8
9
Structural Testing
Structural testing, also known as white-box testing, focuses on examining the internal structure and
code of the software. It aims to ensure that the software functions correctly at the code level,
uncovering any vulnerabilities, flaws, or deviations from expected behaviour. Structural testing is
particularly important in identifying risks related to security, reliability, and maintainability.
Techniques like code coverage analysis, path testing, and mutation testing are used in structural
testing to assess the quality and robustness of the software's codebase. By examining the internal
structure, structural testing helps uncover potential risks that might not be apparent through
functional testing alone, enabling their timely identification and mitigation.
10
Automated Testing
Automated testing involves using
Automated functional testing tools,
software tools and scripts to automate
such as Selenium, allow for the efficient
the execution of test cases, thereby
execution of large sets of functional test
increasing testing efficiency,
cases across various platforms and
repeatability, and accuracy. It plays a
configurations. This reduces the risk of
crucial role in risk test plans by
overlooking critical functionality or
mitigating risks associated with time
introducing errors due to manual
constraints, repetitive tasks, and human
execution.
error in testing processes.
11
THANK YOU!
12