Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Class notes

SOFTWARE TESTING

Rating
-
Sold
-
Pages
29
Uploaded on
04-09-2023
Written in
2023/2024

software testing describe

Institution
Course

Content preview

SOFTWARE TESTING
UNIT I
Introduction: Purpose of Testing, Dichotomies, Model for Testing, Consequences of Bugs, Taxonomy of
Bugs.
Flow graphs and Path testing: Basics Concepts of Path Testing, Predicates, Path Predicates and Achievable
Paths, Path Sensitizing, Path Instrumentation, Application of Path Testing.


Software testing is the process of evaluating and verifying that a software product or application
does what it is supposed to do. The benefits of testing include preventing bugs, reducing
development costs and improving performance.



PURPOSE OF TESTING
• Software testing is an activity that is used to evaluate the capabilities of a system and determine if
it is in accordance with the specifications.
• The purpose of testing is more than just debugging and detecting bugs. Testing is usually
performed for the following purposes:
▪ For improving and assuring software quality.
▪ For verification and validation.
▪ For estimating reliability.
Productivity and Quality in software:
• Any software product can’t be developed perfectly. There may be flaws, security issues, poor
design.
• If flaws are discovered, the software is cycled back for rework and correction.
• Productivity is measured by the sum of the costs of the development, the rework, and the cost of
testing.
• The biggest part of software cost is the cost of detecting bugs, the cost of correcting them.
• For software, quality and productivity are indistinguishable because the cost of a software copy is
trivial.
• Testing and Test Design are parts of quality assurance should also focus on bug prevention. A
prevented bug is better than a detected and corrected bug.

Phases in a tester's mental life can be categorized into the following 5 phases:
1. Phase 0: (Until 1956: Debugging Oriented) There is no difference between testing and debugging.
2. Phase 1: (1957-1978: Demonstration Oriented) The purpose of testing here is to show that software
works. This failed because the probability of showing that software works 'decreases' as testing increases.
3. Phase 2: (1979-1982: Destruction Oriented) The purpose of testing is to show that software doesn’t
work. This also failed because the software will never get released as you will find one bug or the other.
Also, a bug corrected may also lead to another bug.
4. Phase 3: (1983-1987: Evaluation Oriented) The purpose of testing is not to prove anything but to
improve the product up to extent that bugs are fixed.
1|Page
SK Madhena

,5. Phase 4: (1988-2000: Prevention Oriented) The purpose of testing is to prevent the bugs.


Test Design: Software code must be designed and tested. Tests should be properly designed and tested
before applying it to the actual code.
Testing isn’t everything: There are approaches other than testing to create better software. Methods
other than testing include:
1. Inspection Methods: Methods like walkthroughs, desk checking, formal inspections and code reading
appear to be as effective as testing but the bugs caught don’t completely overlap.
2. Design Style: While designing the software itself, adopting stylistic objectives such as testability,
openness and clarity can do much to prevent bugs.
3. Static Analysis Methods: Includes formal analysis of source code during compilation. In earlier days, it is
a routine job of the programmer to do that. Now, the compilers have taken over that job.
4. Languages: The source language can help reduce certain kinds of bugs. Programmers find new bugs
while using new languages.
5. Development Methodologies and Development Environment: The development process and the
environment in which that methodology is embedded can prevent many kinds of bugs.
Pesticide paradox and complexity barrier:
First law: The pesticide paradox- Every method you use to prevent or find bugs leaves out some of the
bugs. The same method is not effective against these remaining bugs are residue bugs.
Second law: The complexity barrier- software complexity grows to the limits of our ability to manage that
complexity.

Dichotomies:
Testing Debugging

Testing starts with known conditions, uses Debugging starts from possibly unknown initial
predefined procedures and has predictable conditions and the end cannot be predicted except
outcomes. statistically.

Testing can and should be planned, designed and Procedure and duration of debugging cannot be so
scheduled. constrained.

Testing is a demonstration of error or apparent
Debugging is a deductive process.
correctness.

Testing proves a programmer's failure. Debugging is the programmer's vindication
(Justification).

Testing, as executes, should strive to be Debugging demands intuitive leaps, experimentation
predictable, dull, constrained, rigid and inhuman. and freedom.

Much testing can be done without design Debugging is impossible without detailed design

2|Page
SK Madhena

, knowledge. knowledge.

Testing can often be done by an outsider. Debugging must be done by an insider.

Much of test execution and design can be Automated debugging is still a dream.
automated.



• Both Structural and functional tests are useful, both have limitations, and both target different
kinds of bugs. Functional tests can detect all bugs but would take infinite time to do so. Structural
tests are inherently finite but cannot detect all errors even if completely executed.
• Designer Versus Tester: Test designer is the person who designs the tests whereas the tester is
the one actually tests the code. During functional testing, the designer and tester are probably
different persons. During unit testing, the tester and the programmer merge into one person.
• Tests designed and executed by the software designers are by nature biased towards structural
consideration and therefore suffer the limitations of structural testing.
• Modularity Versus Efficiency: A module is a discrete, well-defined, small component of a system.
Smaller the modules, difficult to integrate; larger the modules, difficult to understand. Both tests
and systems can be modular. Testing can and should likewise be organised into modular
components. Small, independent test cases can be designed to test independent modules.
• Small versus Large: Programming in large means constructing programs that consists of many
components written by many different programmers. Programming in the small is what we do for
ourselves in the privacy of our own offices. Qualitative and Quantitative changes occur with size
and so must testing methods and quality criteria.
• Builder Versus Buyer: Most software is written and used by the same organization. Unfortunately,
this situation is dishonest because it clouds accountability. If there is no separation between
builder and buyer, there can be no accountability.
• The different roles / users in a system include:
1. Builder: Who designs the system and is accountable to the buyer.

2. Buyer: Who pays for the system in the hope of profits from providing services.

3. User: Ultimate beneficiary or victim of the system. The user's interests are also guarded by.

4. Tester: Who is dedicated to the builder's destruction.

5. Operator: Who has to live with the builders' mistakes, the buyers' murky (unclear)
specifications, testers' oversights and the users' complaints.
Model for testing:




3|Page
SK Madhena

Written for

Institution
Course

Document information

Uploaded on
September 4, 2023
Number of pages
29
Written in
2023/2024
Type
Class notes
Professor(s)
Ssr
Contains
All classes

Subjects

$10.99
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller
Seller avatar
samarasimhareddymalireddy

Get to know the seller

Seller avatar
samarasimhareddymalireddy PRIYADARSHINI COLLEGE OF ENGINEERING AND TECHNOLOGY
Follow You need to be logged in order to follow users or courses
Sold
-
Member since
2 year
Number of followers
0
Documents
1
Last sold
-

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Working on your references?

Create accurate citations in APA, MLA and Harvard with our free citation generator.

Working on your references?

Frequently asked questions