TYCS - Software Testing & Quality Assurance
TYCS - Software Testing & Quality Assurance
(Computer Science)
SEMESTER - V ( CBCS)
4. Software Metrics 78
Course: TOPICS (Credits : 03 Lectures/Week:03)
USCS503 Software Testing and Quality Assurance
Objectives:
To provide learner with knowledge in Software Testing techniques. To understand how testing
methods can be used as an effective tools in providing quality assurance concerning for software.
To provide skills to design test case plan for testing software
Expected Learning Outcomes:
Understand various software testing methods and strategies. Understand a variety of software
metrics, and identify defects and managing those defects for improvement in quality for given
software. Design SQA activities, SQA strategy, formal technical review report for software
quality control and assurance.
Software Testing and Introduction to quality : Introduction, Nature of errors,
an example for Testing, Definition of Quality , QA, QC, QM and SQA , Software
Development Life Cycle, Software Quality Factors
Unit I Verification and Validation : Definition of V &V , Different types of V & V 15L
Mechanisms, Concepts of Software Reviews, Inspection and Walkthrough
Software Testing Techniques : Testing Fundamentals, Test Case Design, White
Box Testing and its types, Black Box Testing and its types
Software Testing Strategies : Strategic Approach to Software Testing, Unit
Testing, Integration Testing, Validation Testing, System Testing
Software Metrics : Concept and Developing Metrics, Different types of Metrics,
Unit II Complexity metrics 15L
Defect Management: Definition of Defects, Defect Management Process,
Defect Reporting, Metrics Related to Defects, Using Defects for Process
Improvement.
Software Quality Assurance : Quality Concepts, Quality Movement,
Background Issues, SQA activities, Software Reviews, Formal Technical
Unit III Reviews, Formal approaches to SQA, Statistical Quality Assurance, Software 15L
Reliability, The ISO 9000 Quality Standards, , SQA Plan , Six sigma, Informal
Reviews
Quality Improvement : Introduction, Pareto Diagrams, Cause-effect Diagrams,
Scatter Diagrams, Run charts
Quality Costs : Defining Quality Costs, Types of Quality Costs, Quality Cost
Measurement, Utilizing Quality Costs for Decision-Making
Textbook(s):
1. Software Engineering for Students, A Programming Approach, Douglas Bell, 4th
Edition,, Pearson Education, 2005
2. Software Engineering – A Practitioners Approach, Roger S. Pressman, 5th Edition, Tata
McGraw Hill, 2001
3. Quality Management, Donna C. S. Summers, 5th Edition, Prentice-Hall, 2010.
4. Total Quality Management, Dale H. Besterfield, 3rd Edition, Prentice Hall, 2003.
Additional Reference(s):
1. Software engineering: An Engineering approach, J.F. Peters, W. Pedrycz , John
Wiley,2004
2. Software Testing and Quality Assurance Theory and Practice, Kshirsagar Naik,
Priyadarshi Tripathy , John Wiley & Sons, Inc. , Publication, 2008
3. Software Engineering and Testing, B. B. Agarwal, S. P. Tayal, M. Gupta, Jones and
Bartlett Publishers, 2010
1
INTRODUCTION TO SOFTWARE
TESTING
Unit Structure :
1.0 Objectives
1.1 Introduction
1.2 Software Testing
1.2.1 What is Software?
1.2.2 Need for Software Testing
1.2.3 Who should test the software?
1.2.4 Qualities of a good tester.
1.3 Software Quality
1.3.1 Quality Revolution
1.3.2 Software Quality models
1.4 Error
1.4.1 Types of Errors
1.5 Test Case
1.5.1 Guidelines for designing a Test Case
1.5.2 A simple Test Case
1.6 Quality Management (QM)
1.6.1 Implementing QM
1.6.2 Importance of QM
1.7 Software Quality Assurance (SQA)
1.8 Quality Control (QC)
1.8.1 Key Components of Quality Control
1.8.2 Types of Quality Control
1.8.3 Benefits of Quality Control
1
Software Testing and 1.9 Software Development Life Cycle
Quality Assurance
1.10 Verification and Validation
1.10.1 Difference between verification and validation
1.10.2 Software Verification methods
1.11 Black box Testing
1.12 White box Testing
1.13 Comparison of Black box testing with White box testing
1.14 Let’s sum it up.
1.15 List of References
1.16 Bibliography
1.17 Unit End Exercises
1.0 OBJECTIVES
After completion of this module, you will learn:
1.1 INTRODUCTION
In this chapter, we are going to explore the intriguing area of software
testing, which is a key component in terms of developing software.
Everyone might have questions such as what is a software and why it is so
important to test a software? How should we test it and who should test it?
There are enormous questions, and this section answers the questions.
We are going to see a simple test case, errors associated with software and
how they can be minimized. The main purpose of software testing can be
understood when a programmer develops a code, and nobody likes it when
it gives errors. Such situations are implied on using software testing and
make us think that is software reliable? A competent software tester must
project credibility and possess the qualities of curiosity, persistence,
creativity, diplomacy, and persuasion.
In this section, we will go over the fundamentals of software testing,
demonstrate how a test case is written, investigate different types of errors,
2
and the importance of quality. This chapter builds a strong foundation for Introduction to Software
comprehending the topic of software testing. Testing
4
2. Explorer: Introduction to Software
Testing
The testers can delve into unfamiliar environments and uncover bugs that
would otherwise go unnoticed.Thanks to a little imagination and a
willingness to take risks.
3. Good communicative skills:
Good software testers are gentle and skilled at telling the
developers undesirable news.They approach the developers
diplomatically, persuade them when necessary, and have their bugs
repaired.
4. Learns from past mistakes:
Each error gives a source of improvement to the software, and this helps
the tester to learn from it and apply the learning in future. A good tester
takes the opportunity to learn and improve and always double checks
their findings.
5. Organized:
Good testers are always very well organized. They prepare test cases
step-by-step and use checklists, files, and statistics to support their
conclusions. They always make sure to double-check their findings.
5
Software Testing and The idea to extend quality control beyond the manufacturing units and
Quality Assurance into the entire company was first forth by an American Joseph M. Juran
in 1954. He emphasized the value of systems thinking, which starts with
the requirements for the product, the design, the testing of the prototype,
the appropriate use of the equipment, and the accurate process feedback.
Juran encouraged Japan to transition from SQC to TQC (Total Quality
Control). This includes quality control (QC), audits, the quality circle,
and the promotion of quality management principles throughout the
entire organization.
6
1.3.2 Software Quality models Introduction to Software
Testing
Various software quality models have been proposed to define quality
and its related attributes. There are many standards developed by a group
of experts called the International Organization for Standardization
(ISO). ISO 9126 is the most important standard which includes six
characteristics of quality, functionality, reliability, usability, efficiency,
maintainability, and portability.Carnegie Mellon University's Software
Engineering Institute (SEI) developed the Capability Maturity
Model(CMM). The CMM framework rates development processes on a
scale of 1 to 5, which is commonly referred to as level 1 through level 5.
Level 1 is the beginning point, whereas level 5, optimizedis the highest
level of process maturity.The McCall's quality factors notion of software
quality was put forth by McCall, Richards, and Walters in 1977. A
system's behavioral feature is represented by the quality factor. The 11
quality factors are: correctness, reliability, efficiency, integrity, usability,
maintainability, testability, flexibility, portability, reusability, and
interoperability.
7
Software Testing and Efficiency: a group of characteristics that affect how well the program
Quality Assurance performs in relation to how many resources is used when certain
conditions are met.
Maintainability: a group of characteristics that affect how much work is
required to accomplish a given adjustment (which might be anything
from software fixes to environmental changes to functional and
requirement changes).
Portability:a group of characteristics (including the business, hardware,
or software environments) that affect how easily software can be
transferred between environments.
8
Flexibility: the time and effort required to enhance a working software Introduction to Software
product. Testing
9
Software Testing and Level 3: Documentation is crucial at this level. Project management and
Quality Assurance software development procedures are recorded, examined, standardized,
and integrated with organizational processes. In other words,
conventional procedures are accepted throughout the entire organization.
Software development is done by adhering to a set procedure.
Functionalities and the corresponding attributes are monitored.
Cost and schedule are kept in check by monitoring them.
Level 4: Metrics are crucial at this stage. Metrics pertaining to
procedures and goods are gathered and examined. These measurements
are employed to get quantitative knowledge of both process and product
attributes. Corrective measures are initiated when metrics reveal that
limits are being breached. For instance, it is helpful to begin a process of
root cause analysis if too many test cases fail during system testing in
order to comprehend why so many tests are failing.
Level 5: Process management at this level comprises intentional process
optimization and enhancement. At this stage, the emphasis is on
continuously improving process performance through innovative and
gradual technical advancements.
Key practices include Defect prevention, Technology change
management, Process change management.
1.4 ERROR
An error results in an incorrect output and generally occurs when there are
lot of bugs present inside a program. The words error can be treated as a
mistake inside the code. Developers mostly use this word. Incorrect logic,
grammar, or loops can result in errors that have an adverse effect on the
end-user experience.It arises for several causes, such as application
challenges brought on by design, code, or system specification problems.
1.4.1 Types of Errors
Most common types of errors while developing a software are as
follows:
1. Syntactic Error:
These errors include mistakes commonly done while writing a code
according to the syntax of a language (Java, Python). It can be due to
missing parenthesis, error in structure(indentation), or missing operators.
Example 1:
int a = 7 //semicolon is missing
Error message:
ab.java:20: ‘;’ expected
2. Calculation Error:
These errors are due to bad logic, incorrect conversion from one data to
another, incorrect formula, incorrect approximation.
10
3. Hardware Error: Introduction to Software
Testing
A hardware error occurs when a computer system's hardware component
crashes. Examples:
I/O device errors, unavailable device, incorrect device selection, etc.
4. User Interface Error:
Inability to compile/execute a program as user expects and the reply
from the system is very slow. Misleading or confusing information in the
help section, unsuitable keyboard usage.
5. Control flow Error:
The errors include datatype error, errors due to exception handling,
blocking or unblocking interruptions.
6. Error Handling Error:
Responding to and recovering from erroneous circumstances in your
software is the process of error handling.
This test case includes the set of inputs, expected output and actual
result. Other information such as name of the tester, environment, test
ID, screen is also included in it.
12
Introduction to Software
1.6 QUALITY MANAGEMENT (QM) Testing
Quality management is the practice of monitoring the activities, tasks,
and processes (inputs) that are utilized to create a product or service
(outputs). Quality planning, quality assurance, quality control, and
quality improvement are the four primary parts of quality management.
Quality Management is the practice of putting all four elements into
practice inside a company.
Quality Management places equal emphasis on the tasks and procedures
that went into producing the outputs (products and services) as it does on
the quality of the outputs themselves. A product's and/or service's quality
should ideally improve not only as it is produced, but also as the process
itself improves, leading to more reliable, higher-quality goods and
services.
1.6.1 Implementing QM
A company must recognize and oversee numerous interconnected,
multifunctional activities before implementing a quality management
system to help guarantee client satisfaction. The many aims, needs, and
goods and services offered by the organization should be taken into
consideration when designing the QM. This framework, which is mostly
based on the PDCA cycle, enables continual improvement of both the
product and the QM. The following are the fundamental actions in
putting in place a quality management system:
1. Design
2. Build
3. Deploy
4. Control
5. Measure
6. Review
7. Improve
1.6.2 Importance of QM
The only effective approach to ensure constant, measurable improvement
to the firm's operations is by putting in place a comprehensive and
standardized quality management system. A quality management system
helps with compliance, transparency,and improves customer happiness
through documentation and planning.With the aid of the appropriate
technology, quality management systems also make sure that
opportunities don't go missed.
13
Software Testing and The benefits of QM are as follows:
Quality Assurance
1. Improved consistency
2. Increased Profits
3. Continuous Improvement
4. Evidence-based decisions
5. Customer Satisfaction
14
The phrase "software quality assurance" may not be entirely accurate. Introduction to Software
Since "assurance" refers to "grounds for justified confidence that a claim Testing
has been or will be achieved," the application of software engineering
techniques can only "assure" the quality of a project. In truth, QA is used
to lessen the risks associated with creating software that does not satisfy
stakeholders' wants, needs, and expectations while staying on schedule
and within budget.
SQA might concentrate on software operations, infrastructure, and
maintenance in addition to software development. All software
processes, from the most fundamental (like governance) to the most
complex (like data replication), should be covered by a conventional
quality system.
2. Testing:
Executing numerous tests and measurements to evaluate the functioning,
performance, or features of goods or services.
3. Inspection:
The frequent examination of goods, materials, or services to spot flaws,
violations, or departures from quality standards.
4. Corrective Action:
Putting suitable steps in place to deal with any discovered quality
problems and stop them from happening again.
5. Training:
Giving staff the abilities and information required to sustain quality
standards successfully.
15
Software Testing and 6. Statistical Process Control (SPC):
Quality Assurance
You can observe process behaviour, identify problems with internal
systems, and resolve production-related problems with the use of SPC
tools and methods.
7. Continuous Improvement:
Continually reviewing data and input to spot problem areas and improve
the system's overall quality.
1. Process Control:
This kind of quality control focuses on keeping an eye on and
controlling the production processes. It is an ability to adjust the process to
give desired outputs.To assure quality and boost performance, processes
are monitored and modified. To attain consistency, this is often a technical
procedure leveraging feedback loops, controls at the industrial level.
2. Control Charts:
For quality control, control charts function as a dashboard. They let
you rapidly spot any trends or patterns that might hint at a problem since
they demonstrate how a process is doing over time. You can spot
problems beforehand and adjust keep your process running smoothly by
routinely reviewing control charts.
3. Acceptance Sampling:
Acceptance sampling is like inspecting a random sample of goods from a
production batch. This kind of quality control is employed to ascertain
whether the batch complies with the necessary requirements. The entire
batch is rejected if the sample does not match the standards but is accepted
if it does.
16
1.8.3 Benefits of Quality Control Introduction to Software
Testing
To guarantee customer satisfaction and establish a solid reputation for a
company, quality control is crucial. It can also increase efficiency by
streamlining operations and identifying areas for improvement. Costs can
be decreased by discovering and fixing flaws early in the production
process. Any organization should prioritize quality control because it
helps toachieve the following:
1. Increase Customer Satisfaction: QC makes ensuring that goods and
services meet or beyond consumer expectations, which raises customer
happiness and loyalty.
2. Efficiency: The production process can be streamlined and made more
efficient with the aid of a well-designed and implemented Quality
Control method. As a result, productivity rises, waste declines, and
profitability rises.
3. Reduction in Cost: By finding and repairing errors early in the
production process, quality control can assist in cost reduction. As a
result, there is less chance of needing to repair faulty items and less
need for material waste and rework.
4. Compliance: Businesses can lower their risk of facing legal or
financial repercussions by putting quality control procedures in place
to make sure that their goods or services adhere to the appropriate
standards and laws.
5. Risk Improvement: QC assists in identifying potential risks and
hazards through thorough testing and inspections, allowing
organizations to take preventative action.
6. Constant Improvement: QC promotes an environment in which
businesses constantly work to improve their offerings in terms of
goods, services, and procedures.
7. Innovation: The identification of chances for innovation and
improvement in the production process through quality control
procedures results in the creation of fresh, enhanced goods or services.
Businesses may stay ahead of their rivals and fulfill the changing
needs of their customers by consistently aiming for quality.
8. Better service quality: Services can also be subject to quality control
procedures to make sure they adhere to the necessary standards.
Businesses may enhance the quality of their services and boost
customer happiness and loyalty by detecting and resolving issues with
service delivery.
1. Requirement Analysis:
The analysis step involves assembling all the relevant information
needed for a new system and coming up with the initial prototype
concepts.The project managers and stakeholders are primarily focused on
this phase. Developers are free to specify any prototype system
requirements, carry out research and analysis to ascertain end-user
demands, and analyze alternate solutions to current prototypes. Finally, a
Software Requirement Specification document (SRS) is produced as a
reference for the model's subsequent phase.
2. Feasibility Study:
If management accepts the system proposal, the next stage is to examine
the system's practicality. The primary goal of a feasibility study is to
assess the feasibility, user requirements, resource efficiency, and, of
course, cost-effectiveness of a proposed system. These are classified into
technical, operational, economic, scheduling, and social feasibility
categories. The primary goal of a feasibility study is to achieve the scope
rather than to solve the problem. During the feasibility study phase, cost
and benefit estimations are more precisely made to assess the Return on
Investment (ROI). This section lists the resources needed to do a
thorough investigation.
18
3. Design: Introduction to Software
Testing
The design stage is a prerequisite for the primary developer stage.
Developers will first outline the general application's characteristics, as
well as specific components such as its: user interfaces, system
interfaces, and network needs. They will usually convert the SRS
document they developed into a more logical form that may be later
implemented in a programming language. The system's system design
can be described using a variety of tools and methodologies: Flowchart,
Data flow diagram (DFD), Data dictionary, Structured English, Decision
table, and Decision tree are all examples of diagrams.
4. Implementation or coding:
During this phase, programmers actually write code and create the
application in accordance with the specifications and design papers from
previousstage. The process of turning the program specifications into
computer instructions, or programs, is known as the programming phase
during this time. Developers will use various tools, including compilers,
debuggers, and interpreters, and adhere to any coding standards
established by the business. Depending on their requirements, they will
select a programming language (C, C++, Java, Python, or C#).
5. Testing:
Software development is not the end. Testing is now required to ensure
that there are no defects, and that the end-user experience won't suffer at
any time. A test run of the system is completed to remove any bugs
before the new system is really put into use. It is a crucial stage in a
system's success.
6. Deployment:
The deployment phase starts once the new system has received user
approval. After testing, the software's overall design will be completed,
and all of the system's programs will be loaded onto the user's computer.
The user training process begins when the system has been loaded. After
passing this stage, the program is technically ready for market and may
be made available to any end users.
7. Maintenance:
Maintenance is required to fix problems that arise with the system while
it is in operation and to adjust the system to any changes in the
surroundings in which it operates. Developers are also in charge of
making any modifications that the software may require after it has been
deployed. It has been observed that some flaws are constantly discovered
in the systems, which must be noted and fixed. It also refers to
periodically reviewing the system. In comparison to smaller systems,
larger systems could need more extensive maintenance phases.
19
Software Testing and 1.10 VERIFICATION AND VALIDATION
Quality Assurance
Verification and validation are two related ideas in software testing that
practitioners regularly utilize.
Testing is a combination of both verification and validation.
Software Testing = Verification + Validation
These two are complementary and necessary to one another. Each offers a
unique set of error filters and a unique method for identifying software
bugs.
1. Verification:
Verification means the process of deciding if the results of a particular
phase of the software development process meet the requirements
established in the preceding phase.Verification typically requires
knowledge of the specific software artifacts, requirements, and
specifications. Static testing, which is done manually, relates to
verification. We only look over and evaluate the document. Checklists,
issue lists, walkthroughs, and inspection meetings can all be used to verify
that the product is designed to give all functionality to the client.
Verification often comprises reviews and meetings to examine documents,
plans, codes, requirements, and specifications.
2. Validation:
The actual testing of the product takes place after the procedure of
verification. This stage involves finding defects that result from
differences infunctionality and specifications.
It provides a response to the query, "Are we developing the right
product?". The process of figuring out whether the software development
process's outputs from a specific phase satisfy the specifications set during
the phase before is called validation.
These kinds of activities enable us to verify that a product is suitable for
the intended application. Activities aimed at validating a product's
20
compliance with client expectations. In other words, validation activities Introduction to Software
concentrate on the finished product, which has undergone rigorous Testing
customer testing. Validation determines whether the product lives up to
users' overall expectations.
Verification Validation
1. The process of document, design, 1. The process of document, design,
and code verification is static. and code verification is dynamic.
2. It does not entail running the code. 2. Code is executed
3. It is a manual check of 3. Computer based checking.
documents/files.
4. The requirements specifications, 4.The ultimate product, as well as
application architecture, high- individual units, modules, and sets
level and detailed design, and of linked modules, is the target.
database design are the main
targets.
5. It employs techniques such as desk 5. It makes use of techniques
checks, walkthroughs, and including white-box, gray-box, and
inspections. black-box testing.
6. It comes before validation 6. It comes after verification
7. It responds to the query, "Are we 7. It responds to the query, "Are we
building the product correctly?" creating the right product?"
21
Software Testing and
Quality Assurance
1. Peer Reviews:
The peer-review approach is the simplest and most casual way to examine
papers, programs, or software with the aim of identifying flaws throughout
the verification process. In this strategy, we hand out the document or
software programs to others and ask them to review them. We do this to
get their opinions on the quality of our work as well as to get them to point
out any flaws. This approach may involve tasks like software verification,
SDD verification, and SRS document verification. With this approach, the
reviewers may also write a brief report on their findings, observations,
etc.Due to the effectiveness and significance of peer review, numerous
studies have demonstrated its usefulness. The reviewer has two options for
reporting their findings: they can either write a report or just speak up
during talks. Peers will engage in this informal activity, which has the
potential to be quite productive if reviewers have the necessary topic
expertise, programming prowess, and involvement.
Advantages of Peer Reviews:
Without investing a lot of resources, you can anticipate some positive
outcomes.
Its structure is significant and quite effective.
Disadvantages of Peer Reviews:
If the reviewer is inexperienced, it could have negative outcomes.
2. Walkthroughs:
Walkthroughs are more formal and systematic than peer reviews. A small
group of two to seven people are given a tour of the document by its
author. There is no requirement that participants bring anything. The
author of the presentation is the only one who prepares for the meeting.
All participants have received the document(s). The author introduces the
content to familiarize them with it during the meeting. Everyone is
welcome to ask questions. For everyone to observe and express their
22
opinions, each participant may write their observations on any type of Introduction to Software
display mechanism, including boards, sheets, projection systems, etc. Testing
Following the review, the author drafts a report detailing the conclusions
and any issues raised during the discussion.
Advantages of Walkthroughs:
It might aid us in identifying potential flaws.
It can also be used to distribute documents to other people.
Disadvantages of Walkthroughs:
The author could omit important details and overly highlight some of his
or her interests.
It's possible that the participants won't have many insightful questions to
ask.
3. Inspections:
The most formal and organized type of verification approach is an
inspection. These are distinct from walkthroughs and peer reviews. The
person giving the presentationrather than the document's author—has
prepared and read it. This makes them read and understand the text in
advance of the meeting. A team of three to six people is assembled, and
the team is headed by an objective moderator. Everyone in the group
engages honestly, energetically, and in accordance with the guidelines of
how such a review should be handled. Everyone may get a chance to voice
their opinions, potential flaws, and problematic regions. After the meeting,
the moderator's essential suggestions are incorporated into the final report.
Advantages of Inspections:
Finding potential errors or issues in documents like SRS, SDD, etc. may
be done extremely effectively using this method.
The critical inspections might also assist in identifying errors and
strengthening these documents, which might help in stopping the spread of
errors throughout the software development life cycle process.
Disadvantages of Inspections:
They take effort and discipline.
It costs more and calls for qualified testers.
24
Introduction to Software
Testing
2. Equivalence partitioning:
We don't want to create multiple test cases that examine the same
component of our application in order to reduce testing expenditures. A
good test case reveals a new class of faults than previous test cases have.
A technique for minimizing the amount of test cases that must be created
is equivalence partitioning. The goal is to divide the input domain of the
system into a number of equivalence classes, each of which functions
similarly, so that if a test case in one class encounters an error, other test
cases in that class would likewise encounter that error.
4. Acceptance Testing:
The customer creates the acceptance test cases. Contracts between the
client and the development company for custom software frequently
indicate that if the customer's acceptance test cases are not passed, they
may refuse to accept delivery of the product.The team occasionally
receives the customer's acceptance test cases, which offers them a clear
objective to work toward together. Other instances, the client runs the
acceptance test cases after obtaining the code but concealing them from
the developers.Working openly and together to create the acceptance test
cases is something which is far more beneficial for the customer and the
development team. The development team and the customer then share a
common understanding of what the software must look like for the
customer to be satisfied.
5. Graph-Based Testing:
His method creates a connection between logical input known as causes
and related actions known as the result. With the use of Boolean graphs,
the causes and consequences are displayed. The actions listed below are
carried out:
25
Software Testing and Identify the causes (inputs) and effects (outputs).
Quality Assurance
Create a cause-and-effect diagram.
Create a decision table from the graph.
Create test cases from decision table rules.
26
recommended to perform black box testing by someone who has a Introduction to Software
recent, unbiased understanding of the client's requirements. Testing
4. Give specific instructions for how the tester should produce the desired
input conditions and how the software should react in the test case.
5. Be clear in this documentation so that other testers besides you can use
the test case's instructions to execute the exact same test case. These
instructions will be crucial, particularly if a programmer has to
recreate a failure.
6. Encourage the consumer to participate in acceptance testing in a
collaborative manner.
7. To control the quantity of test cases performed, use equivalence class
partitioning. The same flaw will be visible in all test cases belonging
to the same equivalence class.
8. Find the very frequent bugs that hide in crevices and gather at
boundaries using boundary value analysis.
9. Black box test scenarios only expose the signs of flaws when they
uncover failures. You must employ your investigative abilities to
identify the flaw in the code that resulted in the failure.
10. Use decision tables to keep track of the intricate business rules that the
system must implement and test.
This chapter taught us that comprehensive testing is not practical.
However, there are effective software engineering techniques for building
test cases that can optimize your likelihood of finding as many flaws as
possible with a fair amount of testing, such as equivalence class
partitioning and boundary value analysis. It's also advantageous to test the
integrated code and integrate code as frequently as feasible. We can isolate
bugs in the new code in this way, detect them quickly, and effectively fix
them. The advantages of working together with a customer to create the
acceptance test cases and automate their execution to create compile-able
and executable documentation for the system were the final lesson we
learned.
27
Software Testing and
Quality Assurance
Examples:
Consider the following code. What will be the Statement coverage for the
below cases.
Case 1: a = 5, b=2
Case 2: Let a=2, b=5
28
Introduction to Software
Testing
2. Branch Coverage:
This method involves creating test cases that traverse every branch from
every decision point at least once. Every edge in a flowchart needs to be
traveled along at least once.
In order to make sure that the program is reliable and that all potential
routes through the application have been adequately tested, branch
coverage testing is crucial. We will examine branch coverage testing in
more detail in this post, including what it is, how it operates, and its
significance.
Branch coverage can be calculated as follows:
29
Software Testing and Examples:
Quality Assurance
Consider the following code. What will be the Branch coverage?
The smallest number of pathways necessary to cover all the edges must be
identified in order to determine branch coverage.
Case 1: traversing through “Yes “decision, the path is 1-2-4-5-6-8 but
edges 3 and 7 are not covered in this path.
Case 2: To cover the edges 3 & 7 as these are not covered in the first step,
we have to traverse through “No” decision. In the case of “No” decision
the path is 1-3-5-7.
30
So by traveling through these two paths, all branches have been covered. Introduction to Software
Testing
Branch Coverage is 2.
3. Condition Coverage:
Condition coverage is a proportion of the program's Boolean sub-
expressions that have been evaluated in test cases as having either a true or
false result. The results of each of these sub-expressions are measured
separately by condition coverage. You may be sure that each of these
subexpressions has been separately verified as true and false by using
condition coverage.
31
Software Testing and 1.13 COMPARISON OF BLACK BOX TESTING WITH
Quality Assurance
WHITE BOX TESTING
32
Introduction to Software
1.16 BIBLIOGRAPHY Testing
1. Naik, Kshirasagar, and Priyadarshi Tripathy. Software testing and
quality assurance: theory and practice. John Wiley & Sons, 2011.
2. Froberg, Scott. "Software Testing by Yogesh Singh." ACM SIGSOFT
Software Engineering Notes 37.3 (2012): 36-36.
3. Mauch, Peter D. Quality management: theory and application. CRC
press, 2009.
4. William (Informático) Perry. Effective methods for software testing.
John Wiley & Sons, 1995.
5. Chopra, Rajiv. Software testing: a self-teaching introduction. Mercury
Learning and Information, 2018.
6. Chopra, Rajiv. Software testing: a self-teaching introduction. Mercury
Learning and Information, 2018.
33
2
SOFTWARE QUALITY ASSURANCE
Unit Structure :
2.0 Objectives
2.1 Introduction
2.2 Quality Concepts
2.2.1 What Is Software Quality?
2.2.2 Defect In Software
2.2.3 Software Quality Views
2.2.4 Software Quality Requirements
2.3 SQA Activities
2.4 Software Reviews
2.4.1 Formal Technical Reviews
2.4.2 Peer Reviews:
2.5 Statistical Quality Assurance
2.6 Software Reliability
2.7 The ISO 9000 Quality Standards
2.7.1. Principles of ISO 9000
2.7.2. Advantages Of ISO 9000
2.8 Six Sigma
2.8.1 Characteristics If Six Sigma
2.8.2 Six Sigma Methodologies
2.9 Quality Improvement
2.9.1. Pareto Chart
2.9.2 Scatter Diagram
2.9.3 Cause-and-Effect Diagram
2.9.4 Run Chart
34
2.10 Quality Costs Software Quality Assurance
2.0 OBJECTIVES
After completion of this module, you will learn:
2.1 INTRODUCTION
In this unit, we are going to study Software Quality Assurance (SQA).
Software quality assurance (SQA) is a tough accomplishment. While
standards clarify how to maximize performance, Quality Assurance
Engineers are largely allowed to make practical decisions about how to
achieve the SQA. The purpose of this study is to understand SQA’s
importance in delivery of a Software.
Individuals create, maintain, and use software in a wide range of
circumstances. Software is created by students in their classrooms,
enthusiasts join open-source development teams, and professionals
produce software for a variety of industries, from aerospace to banking.
Each of these distinct groups will need to address quality issues that
develop in the software they are using. This chapter will state the SQA
terms, highlight the source of errors in software and discuss software
engineering practices to be followed depending on the kind of working
sector.
Each profession has a set of guiding principles which are to be followed
by the professional. To be a professional individuals should be aware of
these principles or have work experience for the same.To achieve Quality
Assurance for a software, individual should have a good understanding of,
35
Software Testing and 1. Software quality fundamentals
Quality Assurance
2. Software Quality Management Processes
3. Practical considerations
4. Software Quality tools
36
3. We examined the test plan and discovered a flaw. Software Quality Assurance
37
Software Testing and Here are eight common error-cause categories as an illustration:
Quality Assurance
1) issues with defining requirements
2) maintaining effective client-developer communication
3) deviations from specifications
4) errors in architecture and design
5) errors in coding (including test code)
6) non-compliance with current processes/procedures
7) insufficient reviews and tests
8) errors in documentation.
2.2.3 Software Quality Views
Development and purchase of software products are influenced by a
variety of factors.These considerations include user wants and
expectations, manufacturer considerations, a product's intrinsic qualities,
and perceived worth. It's crucial to look at quality from a wider angle to
fully understand it. This is since the idea of quality predates the creation
of software.
Figure.2 displays the Software Quality Views. They are as follows:
39
Software Testing and The Functional requirement is a possible use case for software to achieve.
Quality Assurance The constraint requirements are the obligations the software needs to
prove wrong. And the Non-functional requirements quality are the
requirements from which we can prioritize the important ones and rest can
be satisfied in later versions.The requirements should be properly
documented and communicated to all shareholders of the software.
A good quality software requirement satisfies the following criteria:
1. It should be correct, complete, and clear for each stakeholder group,
including the client, the system architect, testers, and those responsible
for system maintenance
2. it is said to be of high quality.
3. clear, meaning that all parties involved are giving the same
interpretation of the requirement
4. It should be precise, consistent, and feasible to achieve.
5. independent of the design
6. independent of the implementation technique
7. verifiable and testable
8. may be traced back to a business need
9. unique.
40
objectives that the customer has set. The development team must meet Software Quality Assurance
these quality objectives by implementing a series of procedures or
making sure that the consumer receives quality.
SQA operations follow the standard procedures of quality management.
These tasks serve as monitoring, tracking, evaluations, audits, and
reviews to make sure the organization's quality policy is followed.
Independently completing these tasks and providing the development
team with feedback.The development team oversees providing the
customer with the necessary quality. The development team is
responsible for implementing quality policy in terms of goals, objectives,
practices, checks, controls, documentation, and management input. For
instance, the quality policy mandates the creation of a test plan for both
the early stages of development and the final stages. SQA can apply this
policy using several tools such as auditing and inspection.
Verify adherence to the standards and procedures outlined in the QA
policy; discrepancies are corrected. Ascertain that deviations are
recorded, documented, and entered the QA database for reference. To
make sure that standards are met, and consumer quality is guaranteed,
design and architecture are examined. Activate change management.
Gather information on numerous observations made during the auditing,
inspection, and review processes to create a QA database and improve
various standards.
42
Everyone who attended FTR must make a decision after the review. Software Quality Assurance
A review leader
The author
Specialized professionals.
Keep in touch with the author and the development team in a positive
manner.
2. The author:
Each method of peer review requires participation from the author.
3. Specialized professional:
The specialized professionals participating in the two peer review
methods differ by review. For inspections, the recommended
professionals are:
43
Software Testing and Coder: A professional who is well-versed in coding activities,
Quality Assurance preferably the team leader for the specified coding team, is referred
to as a programmer or implementer.
44
2.6 SOFTWARE RELIABILITY Software Quality Assurance
Six Sigma stands for six standard deviation from mean (sigma is thee
Greek letter used to represent standard deviation in statistics).
Six Sigma strives for perfection. It allows for only 3.4 defects per
million opportunities ( or 99.999666 percent accuracy)
49
Software Testing and
Quality Assurance
51
Software Testing and 2.9 QUALITY IMPROVEMENT
Quality Assurance
The strategy for methodically raising the standard of care is quality
improvement. To eliminate variance, generate predictable results, and
enhance outcomes for patients, healthcare systems, and companies, quality
improvement aims to standardize processes and structure.
2.9.1. Pareto Chart
The Pareto chart aids in prioritizing the most important issues for remedial
action or in focusing on specific problem areas.Based on the Pareto 80-20
rule, the Pareto chart. It suggests that 20% of the few significant causes or
factors—often referred to as the Vital Few—are responsible for 80% of
the issues or failures.And the remaining 20% of issues are the result of
80% of numerous trivial causes, also known as trivial many. As a result, it
provides us with data about the Vital Few from the Trivial Many.One of
the crucial basic 7 QC Tools, this tool is widely utilized in problem-
solving methodologies like 8D, PDCA, and Six Sigma.
Steps to make a Pareto Chart:
1. Record the data – Refer Check Sheet.
2. Order the data.
3. Label the vertical axis.
4. Label the Horizontal axis.
5. Plot the Bars.
6. Add up the counts.
7. Add a cumulative line.
8. Add title and Legends.
9. Analyze the Chart.
10. Interpret the results.
52
Benefits of Pareto Chart: Software Quality Assurance
1. It is simple to create.
2. Helps understand a problem.
3. Helps to analyze Weighted cost of problem.
53
Software Testing and 2. Scatter chart with Strong or High Negative Correlation: The X
Quality Assurance values decreases and so the Y value also decreases.
54
5. Scatter chart with Weakest or No Correlation has no pattern or unclear Software Quality Assurance
relations.
55
Software Testing and Benefits of Fishbone diagram:
Quality Assurance
1. The emphasis is on causes rather than symptoms or presumptions.
2. Break problems down into little parts to identify the true core cause.
3. Involve more individuals and encourage teamwork.
4. Enhances the efficiency and performance of the team.
5. boosts understanding of the process.
56
2.10 QUALITY COSTS Software Quality Assurance
The costs incurred to ensure that your product is of a high caliber are
referred to as quality costs. It entails guarding against, spotting, and
resolving any product problems. It's essential to make sure that your
product lives up to the customer's expectations, which goes beyond
simply improving its appearance. For instance, if someone buys a car for
very little money, they won't anticipate luxury seats or air conditioning.
But they'll be looking for the automobile to perform well. Here, quality is
defined as a functional vehicle as opposed to one that has opulent
amenities.
Companies must carefully measure and manage their quality costs since
they can have a big influence on their bottom line.Analysis of software
quality costs can focus SQA efforts on improving activities that
frequently fail and have high failure costs, depending on the specific
SQA technique being used, or, alternatively, on improving expensive
control activities. This analysis helps others learn from them and
replicate their success by focusing on the teams whose efforts keep their
quality expenses much below the average. At the same time, quality cost
analysis can assist in identifying teams whose ineffective quality
assurance efforts result in higher-than-average quality costs. The
outcomes can then be used to aid in team development.
57
Software Testing and 2.10.2 Quality Cost Measurement
Quality Assurance
Each business calculates its cost of quality differently. Organizations
frequently calculate the entire warranty costs as a proportion of sales to
measure the cost of quality. The Cost of Quality is examined externally
rather than internally by this method. A more thorough breakdown of all
quality costs is necessary for comprehension.
Cost of Quality (COQ) is calculated by adding COGQ and COPQ,
COGQ = Cost of Good quality
COPQ= Cost of Poor quality
2.13 BIBLIOGRAPHY
1. Duncan, S., 2005. Software Quality Assurance: From Theory to
Implementation. Software Quality Professional, 7(3), p.42.
2. Naik, K. and Tripathy, P., 2011. Software testing and quality
assurance: theory and practice. John Wiley & Sons.
59
Software Testing and 2.14 UNIT END EXERCISES
Quality Assurance
1. Explain Software Quality Assurance (SQA) in brief?
2. What are the characteristics of the Six Sigma rule?
3. Calculate the cost of quality (COQ) if appraisal cost is $10,000, repair
cost $15,000.
4. Explain different categories of scatter diagram.
5. What are different types of quality costs? Explain.
6. Explain in brief about ISO 9000.
60
3
SOFTWARE TESTING STRATEGIES
Unit Structure
3.0 Objectives
3.1 Introduction: Strategic Approach to Software Testing
3.2 Unit Testing
3.2.1 Why Unit testing?
3.2.2 Unit testing tools
3.2.3 Unit testing techniques
3.2.4 How to achieve best results using Unit testing
3.2.5 Advantages of Unit testing
3.2.6 Disadvantages of Unit testing
3.3 Integration Testing
3.3.1 Guidelines for Integration Testing
3.3.2 Reason behind Integration Testing
3.3.3 Integration Testing Techniques
3.3.4 Types of Integration Testing
3.4 Validation testing
3.5 System testing
3.5.1 Types of System testing
3.5.2 Why is System testing important
3.6 Summary
3.7 List of References
3.8 Unit End Exercises
3.0 OBJECTIVES
To get familiar with different strategies involved in software testing
To get acquaint with the different types of testing involved in software
testing approach
61
Software Testing and 3.1 INTRODUCTION: STRATEGIC APPROACH TO
Quality Assurance
SOFTWARE TESTING
Software testing involves assessing a software application to see if it
complies with requirements and to spot any flaws. These are typical
testing techniques:
1. Black box testing - Tests the software's functionality without
examining the internal code layout.
2. White box testing - Examines the software's internal logic and code
structure.
3. Unit testing verifies that individual software modules or components
are operating as intended.
4. Integration testing verifies that various software components are
integrated and function as a system.
5. Functional testing - Verifies that the functional specifications of the
software are satisfied.
6. System testing verifies that the entire software system satisfies the
required specifications.
7. Acceptance testing verifies that the software satisfies the requirements
of the client or end user.
8. Regression testing verifies that the programme has not developed new
flaws after updates or adjustments have been done.
9. Performance testing - This checks the software's speed, scalability, and
stability to see how it performs.
10. Software is put through security testing to check for flaws and make
sure it complies with security standards.
Software testing is a form of investigation to determine if there are any
flaws or defects in the software so that they can be fixed to improve the
software's quality and determine whether or not it satisfies the criteria.
Glen Myers claims that the following goals of software testing:
64
3. Promotes trust - By putting the programme through testing, Software Testing Strategies
stakeholders and developers can be more confident that it meets
requirements and works as intended.
4. Makes maintenance simpler - By identifying and resolving defects
early on, testing makes it easier to maintain and update the product.
5. Reduces costs - Fixing problems quickly during the development stage
reduces costs over the duration of the product's life.
65
Software Testing and The software is typically tested at four levels: unit testing, integration
Quality Assurance testing, system testing, and acceptance testing. However, due to time
constraints, software testers occasionally skip unit testing, which can
result in higher defects during integration testing, system testing,
acceptance testing, or even beta testing, which happens after a software
application is finished.
Here are a few essential justifications:
Unit testing enables developers and testers to swiftly update code that
is producing defects by assisting them in understanding the
fundamentals of the program.
NUnit
JUnit
PHPunit
ParasoftJtest
EMMA
Unit test cases must have clear and consistent naming conventions.
66
Before moving on to the next stage of the SDLC, the defects found Software Testing Strategies
during unit testing must be rectified.
Adopt test cases as you write the code; otherwise, the number of
possible execution pathways would rise.
Verify whether the matching unit test is accessible or not for any
module whose code has changed.
After a few days, unit testing enables the developer to modify code
and verify that the module is still operating faultlessly.
67
Software Testing and
Quality Assurance
Determine the test case strategy first, which will help you create
executable test cases based on the test data.
Select input data before running the test case. Testing heavily relies on
the input data.
69
Software Testing and 3.3.4 Types of Integration Testing
Quality Assurance
Integration testing are categorized into two types: Incremental and Non-
Incremental
Top-Down approach
Bottom-Up approach
Top-Down approach
The top-down testing technique focuses on the process in which lower-
level modules are tested alongside higher-level modules until all of the
modules have been successfully tested. Critical modules are tested first,
allowing for the early detection and correction of significant design
problems. With this approach, the modules will be added gradually or one
at a time, and the data flow will be examined in the same sequence.
70
In the top-down approach, we will be ensuring that the module we are Software Testing Strategies
adding is the child of the previous one like Child C is a child of Child
B and so on as we can see in the below image:
Advantages:
o Identification of defect is difficult.
o An early prototype is possible.
Disadvantages:
o Due to the high number of stubs, it gets quite complicated.
o Lower level modules are tested inadequately.
o Critical Modules are tested first so that fewer chances of defects.
Bottom-Up approach
The technique of testing lower level modules with higher level modules
until all of the modules have been successfully tested is known as the
"bottom to up" testing strategy. Since top-level critical modules are tested
last, a defect may result. Another option is to indicate that we will install
the modules in order, starting at the bottom, and then examine the data
flow.
71
Software Testing and In the bottom-up method, we will ensure that the modules we are
Quality Assurance adding are theparent of the previous one as we can see in the below image:
Advantages
o Identification of defect is easy.
o Do not need to wait for the development of all the modules as it saves
time.
Disadvantages
o Critical modules are tested last due to which the defects can occur.
o There is no possibility of an early prototype.
72
Big bang Method: Software Testing Strategies
This method integrates all components at once and then conducts testing.
While it is practical for small software systems, it makes it challenging to
identify flaws in large software systems.
Since the testing team has less time to execute this process because this
testing might be done after all modules have been completed, internal
connected interfaces and high-risk important modules are more likely to
be overlooked.
Advantages:
Disadvantages:
Activities:
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
74
End-to-end testing is done in an environment that is comparable to the one Software Testing Strategies
used in production.
Black box testing, which includes testing the software's external
functionality, includes system testing. To find little flaws, testing mimics
the user's perspective.
The following actions are a part of system testing.
1] Regression Testing
Regression testing is carried out as part of system testing to check and
pinpoint any defects that may have arisen as a result of changes made to
any other system component. It ensures that any modifications made
throughout the development process did not produce a new flaw and
ensures that no existing defects will be present as new software is added
over time.
75
Software Testing and 2] Load Testing
Quality Assurance
To determine whether the system can function under real-time loads, load
testing is conducted alongside system testing.
3] Functional Testing
A system is put through functional testing to see whether there are any
missing functions. The tester compiles a list of crucial features that should
be included in the system, can be introduced during functional testing, and
should raise the system's quality.
4] Recovery testing:
System testing includes recovery testing of a system, which verifies the
system's dependability, credibility, accountability, and ability to recover. It
ought to be able to successfully recover from all potential system
failures.In this testing, we will evaluate the application's ability to bounce
back from errors or natural calamities.
5] Migration Testing
Migration testing is performed to ensure that if the system needs to be
modified in new infrastructure so it should be modified without any issue.
6] Usability Testing
The purpose of this testing to make sure that the system is well familiar
with the user and it meets its objective for what it supposed to do.
3.6 SUMMARY
Software testing involves assessing a software application to see if it
complies with requirements and to spot any flaws. We have covered seven
76
different steps involved in software testing strategies. We have also Software Testing Strategies
focused on different types of testing along with their fundamentals. We
have dwelled into integration testing, unit testing and system testing along
with the concepts associated with them.Each unit or individual component
of the software application is tested as part of the unit testing process. In
integration testingunits or individual software components are tested
collectively.Validation testing makes ensuring that the product really does
meet the needs of the customer
77
4
SOFTWARE METRICS
Unit Structure :
4.0 Objectives
4.1 Introduction: Concept and Developing Metrics
4.2 Different types of Metrics
4.3 Complexity metrics
4.4 Defect Management: Definition of Defects
4.5 Defect Management Process
4.5.1 Objective ofDefect Management Process
4.5.2 Various stages of Defect Management Process
4.5.3 Defect workflow and states
4.5.4 Advantages of Defect Management Process
4.5.5 Disadvantages of Defect Management Process
4.6 Defect Reporting
4.7 Metrics Related to Defects
4.8 Using Defects for Process Improvement
4.9 Summary
4.10 List of References
4.11 Unit End Exercises
4.0 OBJECTIVES
To get familiar with the concepts and development metrics
To understand the concept of defects and factors associated with defect
management
78
gather trustworthy data about it. Developers will then be able to plan Software Metrics
ahead and make accurate decisions for upcoming testing procedures.
Metric in software testing: A system's or its constituent parts' retention of
a specific attribute is measured by a metric. A metric is not defined by
testers merely for the purpose of documentation. In software testing, it has
many benefits. Developers can use a measure, for instance, to estimate
how long it takes to develop software. It may also be used to count the
number of new features, improvements, etc., that have been made to the
software.
Match the measurements to the project lifestyle phase that yields the
best results.
For this figure the cyclomatic complexity can be computed using each of
the algorithms just noted
1] The flow graph consists of 4 regions
2]V(G) = 11 edges - 9 nodes + 2 = 4
3]V(G) = 3 predicate nodes + 1 = 4
Therefore, the flow graph in Figure has a cyclomatic complexity of 4.
More importantly, the value for V(G) gives you an upper constraint on the
number of independent routes that make up the basis set, and thus, an
80
upper bound on the number of tests that must be created and run to ensure Software Metrics
that every program statement is covered.
a peer review
Code Examination
Arithmetic Defects
Logical Defects
Syntax Defects
Multithreading Defects
Interface Defects
Performance Defects
81
Software Testing and Defect Management Process (DMP), as the name implies, controls defects
Quality Assurance by only identifying and correcting the errors.
While it is hard to completely eliminate errors or flaws from software,
many problems can be reduced by correcting or resolving them.
The primary goals of the defect management process are to prevent
defects, identify defects at the earliest stages, and moderate the impact of
defects.
4.5.1 Objective ofDefect Management Process
The following is an overview of the defect management method' primary
objective:
DMP's main goal is to reveal flaws at an early stage of the software
development process.
The execution of the defect management method will assist us in
improving the procedure and software implementation.
The impact or effects of software problems are lessened via the defect
management method.
The DMP, or defect management process, aids in defect prevention.
Resolving or correcting problems is the primary objective of the defect
management process.
The following are the critical objectives of the defect management process
for various organizations or projects:
We are able to contribute to status and progress reports on the defect
through the defect management procedure.
to identify the root cause of the fault and determine the best course of
action.
to offer suggestions and information about the disclosure of the flaw.
4.5.2 Various stages of Defect Management Process
Various stages of Defect Management Process are as depicted in the figure
1 below
82
1. Defect Prevention: Defect prevention is the first step in the defect Software Metrics
management process. The danger of defects is reduced in this stage by
following processes, methodology, and accepted practices. The best
method for minimizing the impact of a defect is to remove it within the
original development stage.Because it is less expensive and the impact
can be lessened in the initial stages of addressing or resolving
faults.But for later stages, finding flaws and then resolving them can
be expensive, and the impacts of a problem might even be
exacerbated.
The defect prevention stage includes
Minimize expected impact: When all the critical risk has been
discovered, we can take the topmost risks that may be dangerous to the
system if encountered and try to diminish or eliminate it.Those risks
that cannot be removed will decrease the possibility of existence and
its financial impact.
84
If we encounter the following circumstance, a defect report may Software Metrics
occasionally not have an owner in the latter stages of the defect lifecycle:
If the problem won't be rectified as part of the project, the defect report
is regarded as delayed.
If the issue has been resolved and tested, the defect report is deemed to
be closed.
Defect states: If defects are identified throughout the testing, the testing
team must manage them in the following three states:
1. Initial state: It is the initial defect state, also referred to as the open
state.The task of gathering all the information needed to correct the
flaws in this stage falls to one or more test engineers.
2. Returned state: Return state is the second defect state. In this case,
the individual receiving the test report rejects it and requests more
details from the report's author.In a returned state, the test engineers
have the option of adding more details or accepting the report's
rejection.The test manager should check for errors in the initial
information collection process itself if several reports are denied.The
rejection state or clarification state are other names for the returned
state.
3. Confirmation state: The test engineer conducted a confirmation test
to ensure that the defect had been repaired before reaching the last
state of defect, known as the confirmation state.It is accomplished by
doing the same actions that revealed the flaw during testing.The report
is finished if the flaw is fixed.And if the problem was not fixed, the
complaint was reopened and sent back to the owner who had originally
saved the defect report for correction.A resolved or verified state is
another name for a confirmation state.
86
For example, Software Metrics
Goals of DMP:
DMP should be carried out at each step and throughout the Software
Development Life Cycle (SDLC) in order to improve the process.
89
Software Testing and The following actions should be taken to limit the likelihood of defect:
Quality Assurance Review test cases and test scenarios.
Analyse and combine functional and non-functional requirements.
Review technical specifications
Baselines of the environment
Using an automated project script, faults can be found at an early
stage.
4.9 SUMMARY
You can evaluate quality before the product is produced thanks to
software metrics, which offer a quantifiable technique to evaluate the
quality of internal product attributes. Metrics give you the knowledge you
need to produce effective requirements and design models, reliable code,
and exhaustive tests. A software measure needs to be straightforward,
calculable, compelling, consistent, and objective in order to be helpful in
real-world settings. It should be independent of the programming language
you're using and give you useful feedback.
Function, data, and behavior: the model's three component are the main
metrics for the requirements model. Design metrics take into account
concerns with architecture, component-level design, and interface design.
Metrics for architectural design take into account the model's structural
elements. By creating proximate measures for cohesion, coupling, and
complexity, component-level design metrics give an indicator of module
quality.
Software testing flaws, the defect management process, advantages, and
disadvantages have all been observed.The Defect Management Process is
crucial to software testing because, as we all know, faults must be tested in
all software created code.Software flaws can be found and fixed as part of
the defect management process. The entire defect management procedure
will assist us in identifying the issue as early as possible and ensuring that
a high-quality product is delivered.
Metrics and KPIs for software testing are significantly enhancing the
software testing process. These play a significant part in the software
development lifecycle, from validating the product's quality to
guaranteeing the accuracy of the numerous tests carried out by the testers.
Therefore, you can improve the efficiency and accuracy of your testing
efforts and obtain superior quality by applying and putting these software
testing metrics and performance indicators into practice.
91