0% found this document useful (0 votes)
5 views

Unit-II

The document outlines the fundamentals of software testing, including definitions, the need for testing, common terms, objectives, and the fundamental test process. It emphasizes the importance of rigorous testing to identify defects, reduce failures, and meet quality standards. The document also details the phases of the testing process, including planning, analysis, design, implementation, and execution.

Uploaded by

tyit4421
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Unit-II

The document outlines the fundamentals of software testing, including definitions, the need for testing, common terms, objectives, and the fundamental test process. It emphasizes the importance of rigorous testing to identify defects, reduce failures, and meet quality standards. The document also details the phases of the testing process, including planning, analysis, design, implementation, and execution.

Uploaded by

tyit4421
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Unit-II

Fundamentals of Testing
Unit-II

Fundamentals of Testing
• Definition of Software Testing
• While testing has no single standard
definition, some popular ones are:
• Glenford J Myers; an American author,
computer scientist, and entrepreneur;
defines testing as— “the proces s of
executing a program or part of a program
with the intention of finding errors.”
• institute of Electrical and Electronic
Engineers (IEEE 83a) standard defines
testing as— “the process of exercising or
evaluating a system or system component
by manual or automated means to verify
that it satisfies specified requirements.”
• To sum up, software testing is the act of
“verifying if the software behavior is as
expected.
Need for Software Testing

• More than one-third of this cost could be


avoided if better software testing was
performed. Therefore testing is necessary
as some errors can turn out to be
expensive or dangerous.
• Every product needs to be checked to
ensure there are no errors. If developers
check their own product, there are chances
that they might miss errors due to bad
assumptions or blind spots. It is advisable
to get the product checked by another
individual who was not involved in product
development.
• For software systems, some errors are
important while others are not. You need to
determine the impact of a software error.
For this, consider the context within which
the different software systems operate.
Common Testing Terms

• Debugging
• Debugging is a part of the development
activity that identifies, analyzes, and
removes defects. Debugging is performed
by Developers on their piece of code.
• Testing
• Testing is the activity of identifying defects
and is performed by Testers.
• Testing is done by testers in an
environment similar to production. There
are different kinds of software testing
levels, types, and techniques. These two
terms, Debugging and Testing, are often
confused and used interchangeably.
• Review
• A review can be performed on deliverables
like documents, code, test plan, and test
cases. While testing can only be done when
the executable code is ready, reviews can
be done on different kinds of documents
and at all stages of development.
• Reviews are commonly referred to as a
static testing technique as they are done
without executing the code. Reviews are
very important for each software or product
as finding a defect early will reduce its
development cost and time.
• Role of Software Testing
• Rigorous testing is necessary during software
development and maintenance to Identify defects
• Reduce failures in the operational environment
• Increase quality of the operational system.
• meet contractual or legal requirements
• Meet industry-specific standards, which may
specify the type of techniques that must be used or
the percentage of the software code that must be
executed.
Objectives of Software Testing

• Following are the objectives of software


testing:

• Finding defects which prevent the probability


of their occurrence in production
• Gaining confidence in the quality of the
software application.
• Defect analysis in one phase can also help
identify the root cause and prevent defects in
the subsequent phases.
Objectives of Different Testing
Types
• Each type of testing has its specific objectives.
Let us look at the different types of testing
and their respective objectives.
• Development Testing
• The objective of development testing, also
known as a unit or component testing, is to
find maximum defects early in the
development lifecycle.
• Fixing the defects at an early stage saves
defect leakage, cost and time.
• User Acceptance Testing
• User acceptance testing is performed with
the objective of confirming whether the
system works, as expected by the end
users. This is the final stage of testing
before deploying the code to production.
• Maintenance Testing
• The objective of Maintenance testing is to
ensure no new defects have been
introduced, especially in the case of
enhancements and/or defect fixes.
• Operational Testing
• The objective of Operational testing is to
ensure reliability and performance.
Software should be tested to check
whether it works satisfactorily even with
the maximum expected workload.
Fundamental Test Process
• Test Planning and Control
• Test Analysis and Design
• Test Implementation and Execution
• Evaluating Exit Criteria and Reporting
• Test Closure
Phase 1 – Test Planning and
Control
• In the Test Planning and Control phase, you
need to ensure the goals and objectives of
the customers, stakeholders, and project
are understood. Additionally, evaluate the
risks of the system to be addressed by
testing.
• Based on this understanding and as a part
of test planning, specify the objective of
testing, and determine the scope and risk.
• The next activity is to design test strategy,
identify the resource requirements,
schedule test analysis, and design tasks.
• Then, plan for test implementation,
execution, and evaluation, and also
determine the exit criteria for testing.
Phase 2 – Test Analysis and Design

• The Test Analysis and Design phase


involves a review of the test basis and the
identification of test conditions.
• Review of the test basis includes a review
of product requirements, architecture,
design specifications, and interfaces
between the products. It also includes
examining the specifications for the
software being tested.
• All these artifacts are called “test basis” as
these are used as a basis for defining what
and how you should test.
Phase 2 – Test Analysis and Design
(contd.)
• The requirements and system are also evaluated
for testability in the Test Analysis and Design phase.
• For example, if the performance of the software is
important, it should be specified in a testable way.

• If the requirement is specified as “the software


needs to respond quickly,” it is not testable, as
“quick” can be interpreted in more than one way. A
more testable requirement could be, “the software
needs to respond in 2 seconds with 10 people
logged on”.
Phase 3 – Test Implementation and
Execution
• During the third phase, Test
Implementation and Execution, the test
conditions designed are taken and set up
as tests. The test environment is also set
up before executing the tests.
• Implementation includes prioritizing the
test cases, using techniques and test
approach, and creating test suites from
test cases for efficient test execution. You
need to ensure the test environment has
been set up correctly by running specific
tests on it if possible.

You might also like