23ps8776 Software Testing
23ps8776 Software Testing
DATE: 10.09.2023
PREPARED BY: MURALE KARTHI J G N
Ist MCA COMPUTER APPLICATIONS
JAMAL MOHAMED COLLEGE (AUTONOMOUS)
TIRUCHIRAPALLI – 20
ROLL NO: 23PS8776
Software Testing
• Software Testing Fundamental.
• Testing Principles.
• Testability.
• Attributes of good test.
SOFTWARE TESTING FUNDAMENTALS
• Testing presents an interesting anomaly for the software
engineer.
• During earlier software engineering activities, the
engineer attempts to build software from an abstract
concept to a tangible product.
• In fact, testing is the one step in the software process
that could be viewed (psychologically, at least) as
destructive rather than constructive.
• Here, we discuss about the following:-
1. Testing Objectives
2. Testing Principles
3. Testability
Testing Objectives:-
• Testing is a process of executing a program with
the intent of finding an error.
• A good test case is one that has a high probability
of finding an as-yet undiscovered error.
• A successful test is one that uncovers an as-yet-
undiscovered error.
• If testing is conducted successfully ( according to
objectives stated previously) it will uncover
errors in the software.
Testing Principles
• Before applying methods to design effective test cases, a
software engineer must understand the basic principles that
guide software testing.
• All tests should be traceable to customer requirements.
The objective of software testing is to uncover errors. The
most severe defects are those cause the program to fail to
meet its requirements.
• Tests should be planned long before testing begins.
The Pareto principle applies to software testing.
Stated simply, the Pareto principle implies that 80 percent of
all errors uncovered during testing will likely be traceable to
20 percent of all program components.
The problem, of course, is to isolate these suspect
components and to thoroughly test them.
• Testing should begin “in the small” and progress
toward testing “in the large.”
• The first tests planned and executed generally
focus on individual components.
• Exhaustive testing is not possible.
• It is impossible to execute every combination of
paths during testing. It is possible to a adequately
cover program logic and to ensure that all
conditions in the component level design have
been exercised.
• To be most effective, testing should be
conducted by an independent third party.
Testability
• Software testability is the degree to which a
software system / software module / software
requirement – or design document which
supports testing in a given test context.
• A software engineer designs a computer
program , a system or a product with testability
this enables the individuals changed with testing
to design effective test cases more easily.
• The following are the characteristics that lead to
testable software. They are:-
• Operability means “The better it works, the more
efficiently it can be tested.“
• Observability means “what you see is what you test.“
Distinct output is generated for each input.
Incorrect output is easily identified.
Internal errors are automatically reported.
Source code is accessible.
• Controllability It means "The better we can control
the software, more the testing can be automated
optimized."
• All code is executable through some combination of input.
• Input and output formats are consistent and structure.
• Test can conveniently specified, automated and
reproduced.
Decomposability means "By controlling the scope
of testing, you can more quickly isolate
problems and perform smarter retesting."
• The software system is built from independent
modules.
• Software modules can be tested independently.
Simplicity means "The less there is to test, the
more quickly we can test it.“
Code simplicity : For example, a coding is
standard is adopted for ease of inspection and
maintenance.
Stability means "The fewer the changes, the fewer the
disruptions to testing.“
• Changes to the software are infrequent.
• Changes to the software are controlled.
• Changes to the software do not invalidate existing tests.
Understandability means "The more information we
have, the smarter we will test."
• Changes to the design are communicated to testers.
• Technical documentation is instantly accessible.
• Technical documentation is well organized.
• Technical documentation is specified and detailed.
• Technical documentation is accurate.
Attributes of a good test:-
• A good test has a high probability of finding an error. To
achieve this goal, the tester must understand the software
and attempt to develop a mental picture of how the
software might fail.
• A good test is not redundant. Testing time and resources
are limited.
• There is no point in conducting a test that has the same
purpose as another test.
• A good test should be “best of breed”. In a group of tests
that have a similar intent, time and resource limitations
may mitigate toward the execution of only a subset of
these tests.
• A good test should be neither too simple nor too complex.
THANK YOU