STQA UNIT-04 Self Notes
STQA UNIT-04 Self Notes
➢ Functional Testing-
Functional testing is a type of testing which verifies that each function of the software
application operates in conformance with the requirement specification. This testing
mainly involves black box testing, and it is not concerned about the source code of the
application.
Every functionality of the system is tested by providing appropriate input, verifying the
output and comparing the actual results with the expected results. This testing involves
checking of User Interface, APIs, Database, security, client/ server applications and
functionality of the Application Under Test. The testing can be done either manually or
using automation.
➢ Non-Functional Testing-
Non-functional testing is a type of testing to check non-functional aspects (performance,
usability, reliability, etc.) of a software application. It is explicitly designed to test the
readiness of a system as per nonfunctional parameters which are never addressed by
functional testing.
TANISHA BANGAR 1
A good example of non-functional test would be to check how many people can
simultaneously login into a software.
TANISHA BANGAR 2
➢ What is Acceptance Testing?
Acceptance testing, a testing technique performed to determine whether or not the software
system has met the requirement specifications. The main purpose of this test is to evaluate
the system's compliance with the business requirements and verify if it is has met the
required criteria for delivery to end users.
NeoLoad. Neotys develop a testing tool which is called Neo Load. The NeoLoad is used
to test the performance test scenarios. With the help of NeoLoad, we can find the
bottleneck areas in the web and the mobile app development process.
TANISHA BANGAR 3
➢ What is Regression Testing & Methodology for Regression Testing?
Regression testing is a black box testing techniques. It is used to authenticate a code change
in the software does not impact the existing functionality of the product. Regression testing
is making sure that the product works fine with new functionality, bug fixes, or any change
in the existing feature.
Regression testing is a type of software testing. Test cases are re-executed to check the
previous functionality of the application is working fine, and the new changes have not
produced any bugs.
Regression testing can be performed on a new build when there is a significant change in
the original functionality. It ensures that the code still works even when the changes are
occurring. Regression means Re-test those parts of the application, which are unchanged.
Regression tests are also known as the Verification Method. Test cases are often
automated. Test cases are required to execute many times and running the same test case
again and again manually, is time-consuming and tedious too.
• Transcendent View: quality is something that is understood clearly, but it’s not
tangible and can’t be communicated, such as love or beauty.
• Value-Based View: if a product is perceived to be offering good value for the price, it
possesses good quality.
TANISHA BANGAR 4
➢ McCall’s Quality Factors-
This model classifies all software requirements into 11 software quality factors. The 11
factors are grouped into three categories – Product Operation, Product Revision, and
Product Transition Factors.
• Correctness- These requirements deal with the correctness of the output of the software
system.
• Reliability- Reliability requirements deal with service failure.
• Efficiency- It deals with the hardware resources needed to perform the different
functions of the software system.
• Integrity- This factor deals with the software system security, that is, to prevent access
to unauthorized persons.
• Usability- Usability requirements deal with the staff resources needed to train a new
employee and to operate the software system.
• Maintainability- This factor considers the efforts that will be needed by users and
maintenance personnel to identify the reasons for software failures, to correct the
failures, and to verify the success of the corrections.
• Flexibility- This factor deals with the capabilities and efforts required to support
adaptive maintenance activities of the software.
• Testability- Testability requirements deal with the testing of the software system as
well as with its operation.
TANISHA BANGAR 5
• Reusability- This factor deals with the use of software modules originally designed for
one project in a new software project currently being developed.
• Interoperability- Interoperability requirements focus on creating interfaces with other
software systems or with other equipment firmware. For example, the firmware of the
production machinery and testing equipment interfaces.
➢ Quality Factors-
• Correctness- These requirements deal with the correctness of the output of the software
system.
• Reliability- Reliability requirements deal with service failure.
• Efficiency- It deals with the hardware resources needed to perform the different
functions of the software system.
• Integrity- This factor deals with the software system security, that is, to prevent access
to unauthorized persons.
• Usability- Usability requirements deal with the staff resources needed to train a new
employee and to operate the software system.
➢ Quality Criteria-
According to ISO 9126, quality characteristics of software are divided into six criteria:
functionality, reliability, usability, efficiency, maintainability and portability. All these
requirements and quality criteria must be checked by the tester.
TANISHA BANGAR 6
➢ Relationship between Quality Factors and Criteria-
A quality factor represents the behavioural characteristic of a system. A quality criterion is
an attribute of a quality factor that is related to software development.
➢ Quality Metrics-
An objective way to measure, evaluate, and monitor the product and process lifecycle.
Software metrics can be classified into three categories –
➢ Quality Characteristics-
• Usability- It is described as how the user is utilizing a system effectively and the ease
of which users can learn to operate or control the system. The well- known principle of
usability is KISS (Keep It Simple Stupid). Software applications should be user-
friendly.
• Reliability- It is the ability of a system to continue to keep operating over time.
• Availability- It is the ratio of the available system time to the total working time it is
required or expected to function.
• Portability- It is the ability of a software application to run on numerous platforms
such as data portability, hosting, viewing, etc.
• Testability- It shows how well the system or component facilitates to perform tests to
determine whether the predefined test criteria have been met.
• Scalability- It is the ability of a system to handle the demand for stress caused by
increased usage without decreasing performance.
• Flexibility- It is the ability of a system to adapt to future changes.
• Reusability- It is the use of existing software I more than one software with small or
no change. It is a cost-efficient and time-saving quality attribute.
TANISHA BANGAR 7
• Maintainability- It is the ability of a software application to maintain easily and
support changes cost-effectively.
• Supportability- It is the ability of a system that satisfies necessary requirements and
needs to identifying and solving problems.
• Interoperability- It is the ability of two or more systems to communicate or exchange
data easily and to use the data that has been exchanged.
• Performance- It is the ability of a system in the form of responsiveness to various
actions within a certain period of time.
TANISHA BANGAR 8
TANISHA BANGAR 9