• Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that
software product is Defect free.
• It involves execution of software/system components using manual or automated tools to evaluate one or more properties of
interest. The purpose of software testing is to identify errors, gaps or missing requirements in contrast to actual requirements.
• Types of software testing
• There are many different types of software tests, each with specific objectives and strategies:
• Acceptance testing: Verifying whether the whole system works as intended.
• Integration testing: Ensuring that software components or functions operate together.
• Unit testing: Validating that each software unit performs as expected. A unit is the smallest testable component of an
application.
• Functional testing: Checking functions by emulating business scenarios, based on functional requirements. Black-box testing
is a common way to verify functions.
• Performance testing: Testing how the software performs under different workloads. Load testing, for example, is used to
evaluate performance under real-life load conditions.
• Regression testing: Checking whether new features break or degrade functionality. Sanity testing can be used to verify menus,
functions and commands at the surface level, when there is no time for a full regression test.
• Stress testing: Testing how much strain the system can take before it fails. Considered to be a type of non-functional testing.
• Usability testing: Validating how well a customer can use a system or web application to complete a task.
• In each case, validating base requirements is a critical assessment. Just as important, exploratory testing helps a tester or
testing team uncover hard-to-predict scenarios and situations that can lead to software errors.
• Even a simple application can be subject to a large number and variety of tests. A test management plan helps to prioritize
which types of testing provide the most value – given available time and resources. Testing effectiveness is optimized by
running the fewest number of tests to find the largest number of defects.
What is software quality? The quality of software can be defined as the ability of the
software to function as per user requirement. When it comes to software products it
must satisfy all the functionalities written down in the SRS document.
• Quality software is reasonably bug or defect free, delivered on time and within budget,
meets requirements and/or expectations, and is maintainable.
• ISO 8402-1986 standard defines quality as “the totality of features and characteristics of a
product or service that bears its ability to satisfy stated or implied needs.”
• Key aspects of quality for the customer include:
• Good design – looks and style
• Good functionality – it does the job well
• Reliable – acceptable level of breakdowns or failure
• Consistency
• Durable – lasts as long as it should
• Good after sales service
• Value for money
• Verification is the process of checking that a software achieves its goal
without any bugs.
• It is the process to ensure whether the product that is developed is right or
not. It verifies whether the developed product fulfills the requirements that
we have.
• Verification is static testing.
Verification means Are we building the product right?
• Validation is the process of checking whether the software product is up to
the mark or in other words product has high level requirements.
• It is the process of checking the validation of product i.e. it checks what we
are developing is the right product.
• it is validation of actual and expected product. Validation is the dynamic
testing.
Validation means Are we building the right product?
• Explain different types of Verification.
• Verification is static type of s/w testing. It means code is not executed. The
product is evaluated by going through the code. Types of verification are:
i. Walkthrough
ii. Inspection
iii. Reviews
Walkthroughs are informal, initiated by the author of the s/w product to a
colleague for assistance in locating defects or suggestions for improvements.
They are usually unplanned. Author explains the product; colleague comes out
with observations and author notes down relevant points and takes corrective
actions.
Inspection is a thorough word-by-word checking of a software product with the
intention of:
- Locating defects
- Confirming traceability of relevant requirements
• - Checking for conformance to relevant standards and conventions
• Inspections are more formal than walkthroughs. It involves 5 major roles:
- Author: person who originally created the work product.
- Moderator: Person responsible to ensure the discussions proceed on the productive lines.
- Reader: Person responsible for reading aloud small logical units of the work product
- Recorder: Person who records/documents all the defects that arise from the inspection team.
- Inspector: All of the inspection team members who analyze and detect the defects within the work
product.
Review is a subsequent examination of a product for the purpose of monitoring earlier changes. It is a
process in which one or more persons check the changed documents or data to determine if the changes are
correct. It is also an analysis undertaken at a fixed point in time to determine the degree to which stated
objectives have been reached.
There are four levels of verification:
1. Component Testing: Verifying the design implementation for one software element like unit / module or
a group of software elements
2. Integration Testing: Testing with orderly progression which involves the integration of various software
and / or hardware elements together and tested. It continuous until the complete system has been
integrated.
3. System Testing: A type of testing which tests integrated software and hardware system verification
whether the system meets the specified requirements.
4. Acceptance Testing: A testing process that determines whether a system satisfies the acceptance criterion
and for enabling the customer for determining whether or not to accept the system.
• Software Review is systematic inspection of a software by one or more individuals who
work together to find and resolve errors and defects in the software during the early
stages of Software Development Life Cycle (SDLC). Software review is an essential part
of Software Development Life Cycle (SDLC) that helps software engineers in validating
the quality, functionality and other vital features and components of the software. It is a
whole process that includes testing the software product and it makes sure that it meets
the requirements stated by the client.
• Usually performed manually, software review is used to verify various documents like
requirements, system designs, codes, test plans and test cases.
1.Objectives of Software Review:
To improve the productivity of the development team.
To make the testing process time and cost effective.
To make the final software with fewer defects.
To eliminate the inadequacies.
• Types of Software Reviews:
There are mainly 3 types of software reviews:
1. Software Peer Review:
Peer review is the process of assessing the technical content and quality of the product and it is usually conducted by the author
of the work product along with some other developers.
Peer review is performed in order to examine or resolve the defects in the software, whose quality is also checked by other
members of the team. Peer Review has following types:
1. (i) Code Review:
Computer source code is examined in a systematic way.
2. (ii) Pair Programming:
It is a code review where two developers develop code together at the same platform.
3. (iii) Walkthrough:
Members of the development team is guided by author and other interested parties and the participants ask questions and make
comments about defects.
4. (iv) Technical Review:
A team of highly qualified individuals examines the software product for its client’s use and identifies technical defects from
specifications and standards.
5. (v) Inspection:
In inspection the reviewers follow a well-defined process to find defects.
2. Software Management Review:
Software Management Review evaluates the work status. In this section decisions regarding downstream activities are taken.
3. Software Audit Review:
Software Audit Review is a type of external review in which one or more critics, who are not a part of the development team,
organize an independent inspection of the software product and its processes to assess their compliance with stated
specifications and standards. This is done by managerial level people.
• Advantages of Software Review:
• Defects can be identified earlier stage of development (especially in formal
review).
• Earlier inspection also reduces the maintenance cost of software.
• It can be used to train technical authors.
• It can be used to remove process inadequacies that encourage defects.
• Software Quality Assurance (SQA) is simply a way to assure quality in the software. It is the set of activities which ensure processes,
procedures as well as standards are suitable for the project and implemented correctly.
• Software Quality Assurance is a process which works parallel to development of software. It focuses on improving the process of
development of software so that problems can be prevented before they become a major issue. Software Quality Assurance is a kind of
Umbrella activity that is applied throughout the software process.
• Software Quality Assurance has:
1. A quality management approach
2. Formal technical reviews
3. Multi testing strategy
4. Effective software engineering technology
5. Measurement and reporting mechanism
• Benefits of Software Quality Assurance (SQA):
1. SQA produces high quality software.
2. High quality application saves time and cost.
3. SQA is beneficial for better reliability.
4. SQA is beneficial in the condition of no maintenance for a long time.
5. High quality commercial software increase market share of company.
6. Improving the process of creating software.
7. Improves the quality of the software.
Test case
A test case is a set of actions performed on a system to determine if it satisfies
software requirements and functions correctly.
What is White Box Testing?