Basic Concepts of Software Testing and Objective of Testing
Basic Concepts of Software Testing and Objective of Testing
Automation Testing .
Lecture 1
Mrs. S. S. Sant
Lecturer in Computer Engineering
Government Polytechnic Pune
Software Testing
Course Outcome
• Apply various software testing methods.
Learning Outcome
Software Testing
Software Testing
Software testing
Definition:
The process or method of finding error/s in
a software application or program so that the application
functions according to the end user's requirement is
called software testing.
Software Testing
Software Testing
Software Testing
Objectives of Software testing
• Finding defects which may get created by the programmer while developing
the software.
• To prevent defects.
• To make sure that the end result meets the business and user requirements.
Software Testing
Benefits of Software Testing
• Cost-Effective: Testing any IT project on time helps you to save your
money for the long term.
Software Testing
Software Testing
Bug, Fault & Failure
• Error : An error is a human action that produces the incorrect result
that results in a fault.
Software Testing
Software Testing
Test Case
• A test case is a document, which has a set of test data,
preconditions, expected results and post conditions, developed for
a particular test scenario in order to verify compliance against a
specific requirement.
• Typical Test Case Parameters:
• Test Case ID
• Test Scenario
• Test Case Description
• Test Steps
• Prerequisite
• Test Data
• Expected Result
• Test Parameters
• Actual Result
• Environment Information
• Comments
Software Testing
Test Case Template:
Software Testing
Sr. Sr.
When to Start Testing? When to Stop Testing?
No No
Availability of the test environment
supporting necessary hardware,
Coverage of the requirements and
1 software network configuration, 1
functionalities has been achieved.
settings and tools for the purpose of
test execution
Availability of proper and adequate
2 2 Completion of test case execution
data.
Requirements should be clearly defined Bug rate falls below a certain level and
4 4
and approved. no high-priority bugs are identified
Software Testing
Verification and Validation
Verification:
• Verification is a static analysis technique.
• Testing is done without executing the code.
• Examples – Reviews, Inspection, and walkthrough.
Validation:
• Validation is a dynamic analysis technique,
• where testing is done by executing the code.
• Examples - functional & non-functional testing techniques.
Software Testing
Quality Assurance and Quality Control
Software Testing
Software Testing
QA and QC
• Quality is meeting the requirement, expectation, and needs of
the customer is free from the defects.
• QA is focuses on preventing defect.
• QC is focuses on identifying a defect.
Software Testing
Test Process in Software Testing
Software Testing
1.Test Planning and Control
• Test Planning : Test planning involves
producing a document that describes an
overall approach and test objectives.
• It involves reviewing the test basis, identifying
the test conditions based on analysis of test
items, writing test cases and Designing the
test environment.
• Completion or exit criteria must be specified
so that we know when testing (at any stage) is
complete. Software Testing
Test Planning and Control
• Purpose
• To determine the scope and risks and identify the
objectives of testing.
• To determine the required test resources like people,
test environments etc.
• To schedule test analysis and design tasks, test
implementation, execution and evaluation.
• Control This is the activity of comparing actual
progress against the plan, and reporting the status,
including deviations from the plan. It involves taking
actions necessary to meet the mission and objectives
of the project. Software Testing
2) Analysis and Design
• Test analysis and Test Design has the following major
tasks:
• To review the test basis. The test basis is the
information on which test cases are based, such as
requirements, design specifications, product risk
analysis, architecture and interfaces
• To identify test conditions
• To design the tests
• To design the test environment set-up and identify
the required infrastructure and tools
Software Testing
3) Implementation and Execution
• Test execution involves actually running the specified
test on a computer system either manually or by
using an automated test tool. It is a Fundamental
Test Process in which actual work is done.
Software Testing
3) Implementation and Execution
• Test implementation has the following major task:
• To develop and prioritize test cases by using
techniques and create test data for those tests.
• To create test suites from the test cases for efficient
test execution. Test suite is a collection of test cases
that are used to test a software program
• To re-execute the tests that previously failed in order
to confirm a fix.
• To log the outcome of the test execution. A test log is
the status of the test case (pass/fail).
• To compare actual results with expected results.
Software Testing
4) Evaluating Exit criteria and Reporting
• Evaluating exit criteria is a process defining when to
stop testing. It depends on coverage of code,
functionality or risk. Basically it also depends
on business risk, cost and time and vary from project
to project. Exit criteria come into picture, when:
• Maximum test cases are executed with certain pass
percentage
• Bug rate falls below certain level
• When we achieve the deadlines
Software Testing
4) Evaluating Exit criteria and Reporting
Software Testing
5) Test Closure activities
• Test closure activities are done when software is
ready to be delivered. The testing can be closed for
the other reasons also like:
• When a project is cancelled
• When some target is achieved
• When a maintenance release or update is done
Software Testing
5) Test Closure activities
• Test closure activities have the following major tasks:
• To check which planned deliverables are actually
delivered and to ensure that all incident reports have
been resolved
• To finalize and archive testware such as scripts, test
environments, etc. for later reuse
• To handover the testware to the maintenance
organization. They will give support to the software
• To evaluate how the testing went and learn lessons
for future releases and projects
Software Testing
Automation Testing
• Automated testing is a software testing technique
that automates the process of validating the
functionality of software and ensures it meets
requirements before being released into production.
With automated testing, an organization can run
specific software tests at a faster pace without
human testers.
Software Testing
Automation Testing
• Automation testing aims to improve
• Testing efficiency, accuracy, and speed by automating
repetitive and time-consuming manual testing tasks.
• Automation testing or test automation uses open
source or paid automated testing tools to test
software applications quickly and efficiently, and
• 24/7 without human intervention.
Software Testing
Automation Testing
• Automation testing aims to improve
• Testing efficiency, accuracy, and speed by automating
repetitive and time-consuming manual testing tasks.
• Automation testing or test automation uses open
source or paid automated testing tools to test
software applications quickly and efficiently, and
• 24/7 without human intervention.
Software Testing
Automation Testing
• without human intervention.
Software Testing
Automation Testing Advantages
• 1. Increase in test coverage: More scripts can be tested at the same time,
increasing test coverage. It helps save time and takes the load off of
manual testers. Automated software testing has the potential to enhance
software quality by expanding the range and thoroughness of tests. It
enables the execution of lengthy tests that are typically avoided in manual
testing, allowing them to run unattended. Moreover, it facilitates running
tests on multiple computers with diverse configurations.
• 2. Greater accuracy: Continuous testing increases the chances of errors
while done manually, but in automated testing, repetitive tests can be
performed with the same precision.
• 3. Cost saving: With automated testing, the test cases run at a faster
speed and bugs are identified early on in the development cycle and fixed.
Despite high initial costs, once the automated framework is set up, there
is an overall reduction in the costs.
Software Testing
Automation Testing
• 4. Reduces regression testing time: Automated regression
practiced with testing tools allows manual testers to be freed
from running monotonous regression tests. The testers get
time to perform value-add tasks.
• 5. Performs tasks that cannot be done by manual
testers: Certain tests such as the controlled web application
tests can be simulated with automated testing, but cannot be
performed by manual testers.
• 6. Time-saving: With automated testing, manual scripts are
also automated and regression testing time is reduced. As
tests are run 24/7, automated testing saves time. Automation
testing saves significant time by executing tests faster
compared to manual testing. Lengthy
Software Testing tests that may be time-
Automation Testing
• 7. Reusability of test scripts: In automated testing,
the same script can be used with minor changes.
Thus, the reusability of test scripts facilitates the
process of testing, and also, the same scripts can be
stored and reused for repeating the test when the
need arises.
• 8. Helpful to testers: Since tests can run
automatically when the source code changes and
notify the testers of any issue, it is very helpful to
both testers and developers.
• 9. Return on investment isTesting
Software high: Automation help