Software Quality and Testing

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Software Engineering

-Amruta Patil

This courseware material are to be used in conjunction with "Software Engineering: A practioner's Appraoch" 7/e and
are provided with permission by R.S. Pressman and associates. The course material is also havind contents copied
from internet. Changes are made wrt Pune University Syllabus
Software Quality And Testing
UNIT-V
Quality
• Quality of design refers to the characteristics that designers specify for a product.
• In software development, quality of design encompasses the degree to which the design meets the
functions and features specified in the requirements model.

user satisfaction = compliant product + good quality + delivery within budget and schedule

• A product’s quality is a function of how much it changes the world for the better.
Software Quality
• An effective software process applied in a manner that creates a useful product that provides
measurable value for those who produce it and those who use it.
Garvin’s Quality Dimensions:
• Performance quality
• Feature quality.
• Reliability.
• Conformance.
• Durability.
• Serviceability.
• Aesthetics.
• Perception.

Fig: McCall’s software quality factors


Software Quality Metrics
Software quality metrics are a subset of software metrics that focus on the quality aspects of
the product, process, and project.
Product Quality Metrics In-process Quality Metrics
1. Mean Time to Failure 1.Defect density during machine testing
2. Defect Density 2.Defect arrival pattern during machine testing
3. Customer Problems 3.Phase-based defect removal pattern
4. Customer Satisfaction 4.Defect removal effectiveness

Maintenance Quality Metrics


1. Fix backlog and backlog management index
2. Fix response time and fix responsiveness
3. Percent delinquent fixes
4. Fix quality
Software Quality Dilemma
• What is software quality dilemma?
Some of the reasons for dilemma:
1. “Good Enough” Software
2. The Cost of Quality
3. Risks
4. Negligence and Liability
5. Quality and Security
6. The Impact of Management Actions
Achieving software quality
• Management and practice are applied within the context of four broad
activities that help a software team achieve high software quality:
1. software engineering methods
2. project management techniques
3. quality control actions
4. software quality assurance.
Software Testing
• Software testing can be stated as the process of verifying and validating whether a software or
application is bug-free, meets the technical requirements as guided by its design and development.
• It also checks whether the software meets the user requirements effectively and efficiently by
handling all the exceptional and boundary cases.
• Testing is a set of activities that can be planned in advance and conducted systematically.
• Two steps:
1. Validation: “Are we building the right product?
2. Verification: “Are we building the product right?
Types of software testing:
1. Manual Testing
2. Automation Testing
Principles of Testing
Test Plan
• A Test Plan is a detailed document that describes the test strategy, objectives,
schedule, estimation, deliverables, and resources required to perform testing for a
software product.
• The test plan serves as a blueprint to conduct software testing activities
• As per ISTQB, “Test Plan is A document describing the scope, approach,
resources, and schedule of intended test activities”.
• It is fully monitored and controlled by the testing manager.
Seven steps to prepare a test plan.

1. Analyze product structure and architecture.


2. Now design the test strategy.
3. Define all the test objectives.
4. Define the testing area.
5. Define all the useable resources.
6. Schedule all activities in an appropriate manner.
7. Determine all the Test Deliverables.
S No. Test Case Test Scenario

Test Scenario provides a small description


A test case is a defined format for software testing required
of what needs to be performed based on the
to check if a particular application/software/module is
1. use
working or not. Here we check for different conditions
case.
regarding the same.

Test Scenario provides a small description,


2. Test cases are more detailed with a number of parameters.
mostly one-line statements.

3. Test cases are low-level actions. Test scenarios are high-level actions.

Test scenarios are derived from documents


4. Test cases are mostly derived from test scenarios.
like BRS, SRS, etc.

5. It focuses on “What to test” and “How to test”. It focuses more on ‘What to test”.

Test cases require more resources for documentation and


6.
execution.
Test Case
• A test case is a defined format for software testing required to check if a particular
application/software is working or not.
• consists of a certain set of conditions that need to be checked to test an application
• A test case consists of various parameters such as Id, condition, steps, input, expected result, result,
status, and remarks.
• When Do We Write Test Cases?
• Types of Test Cases:
Functionality Test Case Unit Test Case
User Interface Test Case Integration Test Case
Performance Test Case Database Test Case
User Acceptance Test Case Security Test Case
Test Case Template
Manual Testing:
1. Testing software manually
2. The tester takes over the role of an end-user and tests the software to identify any unexpected
behavior or bug
3. Testers use test plans, test cases, or test scenarios to test software
4. Stages: unit testing, integration testing, system testing, and user acceptance testing.
Types:
1) White Box Testing:
• the developer will inspect every line of code before handing it over to the testing team or the concerned
test engineers.
• also known as open box testing, glass box testing, structural testing, clear box testing
• developer will execute the complete white-box testing
for the particular software and send the specific
application to the testing team.
2) Black Box Testing
• The test engineer will analyze the software against requirements,
identify the defects or bug, and sends it back to the development
team.
• Then, the developers will fix those defects, do one round of White
box testing, and send it to the testing team.
• The source code is not visible in this testing; that's why it is
known as black-box testing.
• The main objective of implementing the black box testing is to
specify the business needs or the customer's requirements.
Types:
A) Functional Testing
• The test engineer will check all the components systematically against requirement specifications is known
as functional testing. Functional testing is also known as Component testing.
• emphases on application requirement rather than actual code
Types:
a) Unit Testing -test engineer will test the module of an application independently
b) Integration Testing - test the data flow between dependent modules or interface between two features
c) System Testing - the test environment is parallel to the production environment – end to end testing
B) Non-function Testing
• It provides detailed information on software product performance and used technologies.
• minimize the risk of production and related costs of the software
• a combination of performance, load, stress, usability and, compatibility testing
Types:
• Performance Testing
• Usability Testing
• Compatibility Testing
3) Grey Box Testing
• Collaboration of black box and white box testing
• The grey box testing includes access to internal coding for designing test cases
• Grey box testing is performed by a person who
knows coding as well as testing.
Automation Testing:
1. Tester writes scripts and uses another
software to test the product
2. Used to re-run the test scenarios quickly
and repeatedly
3. Regression testing, automation testing
4. Test the application from a load,
performance, and stress point of view.
5. Increases the test coverage, improves
accuracy, and saves time and money
Verification & Validation
• Verification refers to the set of tasks that ensure that software correctly implements a specific function.
• Validation refers to a different set of tasks that ensure that the software that has been built is traceable to
customer requirements.
• Software Testing Strategy—The Big Picture
Software testing steps
Defect Management
• A defect is the consequence/outcome of a
coding fault.
• A bug is a defect that results from an
error or some issue in code.
• Defect Management is a systematic
process to identify and fix bugs. A defect
management cycle contains the following
stages
Defect Life Cycle
Bug Reporting
• When a bug has been identified, it has to be documented and sent to developers to
be fixed.

• Elements of an Effective Bug Report


1. What is the problem?
2. How can the developer reproduce the problem (to see it for themselves)?
3. Where in the software (which webpage or feature) has the problem appeared?
4. What is the environment (browser, device, OS) in which the problem has
occurred?
An effective bug report should contain the following:
1.Title/Bug ID
2.Environment
3.Steps to reproduce a Bug
4.Expected Result
5.Actual Result
6.Visual Proof (screenshots, videos, text) of Bug
7.Severity/Priority.

Benefits of a Good Software Bug Report


1.Help to figure out precisely what’s wrong with a bug.
2.Saves you time and money by helping you catch the bug before it worsens.
3.Stops bugs from making it into the final product and ruining someone’s experience.
4.Plus, it helps ensure the same bug doesn’t appear again in future versions.
5.Finally, everyone involved will know what’s happening with the bug so they can do something about it.
Bug Reporting
Debugging
• Debugging is the process of identifying and resolving errors, or bugs, in a software
system.
• Debugging can be a time-consuming and complex task, but it is essential for ensuring that
a software system is functioning correctly.
• Common methods and techniques used in debugging
1.Code Inspection.
2.Debugging Tools
3.Unit Testing
4.Integration Testing
5.System Testing
6.Monitoring
7.Logging
Case Study
Software testing tool like selenium
Other:
1. TestRail
2. X-ray
3. Testpad

You might also like