0% found this document useful (0 votes)
6 views20 pages

Chapter 4 - Software Testing and Maintenance Overview

Chapter 5 discusses software testing, emphasizing the distinction between validation and verification, where validation checks if the software meets user requirements and verification ensures adherence to specifications. It also covers manual versus automated testing, testing approaches like black-box and white-box testing, and the importance of testing documentation. Additionally, it differentiates between testing, quality control, and quality assurance, and outlines types of maintenance in software development.

Uploaded by

noorlightgh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views20 pages

Chapter 4 - Software Testing and Maintenance Overview

Chapter 5 discusses software testing, emphasizing the distinction between validation and verification, where validation checks if the software meets user requirements and verification ensures adherence to specifications. It also covers manual versus automated testing, testing approaches like black-box and white-box testing, and the importance of testing documentation. Additionally, it differentiates between testing, quality control, and quality assurance, and outlines types of maintenance in software development.

Uploaded by

noorlightgh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Chapter 5:

Software Testing is evaluation of the software against


requirements gathered from users and system specifications.
Testing is conducted at the phase level in software
development life cycle or at module level in program code.
Software testing comprises of Validation and Verification.
Software Validation

Validation is process of examining whether or not the


software satisfies the user requirements. It is carried out at
the end of the SDLC. If the software matches requirements
for which it was made, it is validated.
Validation ensures the product under development is as per the user
requirements.
Validation answers the question – "Are we developing the product
which attempts all that user needs from this software”
Validation emphasizes on user requirements.
Software Verification
Verification is the process of confirming if the software is meeting the
business requirements and is developed adhering to the proper
specifications and methodologies.

• Verification ensures the product being developed is according to design


specifications.
• Verification answers the question– "Are we developing this product by
firmly following all design specifications”
• Verifications concentrates on the design and system specifications.
VERIFICATION VALIDATION
|Check whether the software conforms to specifications. Check whether software meets the customer expectations
The process of evaluating work-products (not the actual and requirements. The process of evaluating software
final product) of a development phase to determine during or at the end of the development process to
whether they meet the specified requirements for that determine whether it satisfies specified business
phase. requirements.

Verification is a static practice of verifying documents, Validation is a dynamic mechanism of validating and testing
design, code and program. the actual product.

It does not involve executing the code. It always involves executing the code.
It is human based checking of documents and files. It is computer based execution of program.

Verification uses methods like inspections, reviews, Validation uses methods like black box (functional) testing,
walkthroughs, and Desk-checking etc. gray box testing, and white box (structural) testing etc.

Verification is done by QA team to ensure that the Validation is carried out with the involvement of testing
software is as per the specifications in the SRS document. team.

It generally comes first-done before validation. It generally follows after verification.

Are we building the product right? Are we building the right product?
Target of the Test

• Errors - These are actual coding mistakes made by developers. In


addition, there is a difference in output of software and desired output,
is considered as an error.
• Fault - When error exists fault occurs. A fault, also known as a bug, is a
result of an error which can cause system to fail.
• Failure - failure is said to be the inability of the system to perform the
desired task. Failure occurs when fault exists in the system.
Target of the Test are:

1. Errors 2. Fault

3. Failure
5.3 Manual VS Automated Testing

Testing can either be done manually or using an


automated testing tool
Manual - This testing is performed without taking help of automated
testing tools. The software tester prepares test cases for different
sections and levels of the code, executes the tests and reports the
result to the manager.
 Manual testing is time and resource consuming.

 The tester needs to confirm whether or not right test cases are used.

 Major portion of testing involves manual testing.


Automated - This testing is a testing procedure
done with aid of automated testing tools. The
limitations with manual testing can be overcome
using automated test tools.

A test needs to check if a webpage can be opened in Internet Explorer. This can be
easily done with manual testing. But to check if the web-server can take the load
of 1 million users, it is quite impossible to test manually.

There are software and hardware tools which helps tester in conducting load
testing, stress testing, regression testing.
5.4 Testing - Designing a Test Case
5.5 Testing Approaches

IEEE standard glossary of software engineering terminology says that


“The process of exercising software to verify that it satisfies the specified
requirements and to detect errors”.
Tests can be conducted based on two approaches :
• Functionality testing
• Implementation testing
 When functionality is being tested without taking the actual
implementation in concern it is known as black-box testing.
 The other side is known as white-box testing where not only
functionality is tested but the way it is implemented is also
analyzed.

 Exhaustive tests are the best-desired method for a perfect


testing.
 Every single possible value in the range of the input and
output values is tested. It is not possible to test each and
every value in real world scenario if the range of values is
large.
5.5.1 White-Box Testing
 It is conducted to test program and its implementation, in order to improve code
efficiency or structure. It is also known as ‘Structural’ testing.
 In this testing method, the design and structure of the code are known to the
tester. Programmers of the code conduct this test on the code.
5.5.2 Black Box Testing

It is carried out to test functionality of the program. It is also called


Behavioral Testing. The tester in this case, has a set of input
values and respective desired results. On providing input, if the
output matches with the desired results, the program is tested ok
and problematic otherwise.
BLACK BOX TESTING WHITE BOX TESTING
It is a way of software testing in which It is a way of testing the software in
the internal structure or the program or which the tester has knowledge about
the code is hidden, and nothing is the internal structure or the code or the
known about it. program of the software.
It is mostly done by software testers. It is mostly done by software developers.
No knowledge of implementation is Knowledge of implementation is
needed. required.
It can be referred as outer or external It is the inner or the internal software
software testing. testing.
It is functional test of the software. It is structural test of the software.
This testing can be initiated on the
basis of requirement specifications This type of testing of software is started
document. after detail design document.
No knowledge of programming is It is mandatory to have knowledge of
required. programming.
It is the behavior testing of the
5.6 Testing Documentation
Test documentation is documentation of artifacts created before or
during the testing of software. It helps the testing team to estimate
testing effort needed, test coverage, resource tracking, execution
progress, etc. It is a complete suite of documents that allows you to
describe and document test planning, test design, test execution,
test results that are drawn from the testing activity.
• Test Documentation makes planning, review, and execution of
testing easy as well as verifiable.
• Testing activities generally consume 30% to 50% of software
development project effort. Documentations help to identify Test
process improvement that can be applied to future projects.
5.7 Testing VS. Quality Control, Quality Assurance
Testing is basic activity aimed at detecting and solving technical
issues in the software source code and assessing the overall product
usability, performance, security, and compatibility.
Quality Control – is the process of verifying that production of
products and delivery of services(operational results) conforms to
requirements. Through QA Control team verifies the product’s
compliance with the functional requirements.
Quality Assurance – focuses more on organizational aspects of
quality management, monitoring the consistency of the production
process.

References:
https://www.altexsoft.com/whitepapers/quality-
assurance-quality-control-and-testing-the-
basics-of-software-quality-management/
5.8 Types of Maintenance

1. Corrective maintenance Bug Fix

2. Adaptive maintenance Porting & Migration

3. Perfective maintenance Enhancement & Scalability

4. Preventive maintenance Documentation


Enhancement

You might also like