Name : Ravi Teja Dasari
INDEX
1. Introduction to Software
i. Definition
ii. Types of Software
2. Introduction to SOFTWARE TESTING
i. Objectives of Software Testing
ii. Purpose of Software Testing
3. Types of TESTING
4. Software Testing Life Cycle(STLC)
5. Summary
Introduction to Software:
Definition:
Software, in it’s general terms, is a set of instructions or
programs instructing a computer to do specific tasks. It is a
general term used to describe computer program.
It can also be defined as the process of verifying and
validating the software application with respect to the customer
requirements.
Types of Software:
Practical computer systems divide software systems into
three major classes:
1. System Software
2. Programming Software
3. Application Software
System Software:
provides the basic functions for computer usage and helps
to run the computer hardware and system.
purpose is to unburden the application software
programmer from the often complex details of the particular
computer being used such as device readers, printers,
keyboards.
Programming Software:
usually provides tools to assist a programmer in writing
computer programs, and software using different programming
languages in a more convenient way.
Tools include: compilers, interpreters, debuggers, linkers.
Application Software:
is developed for some certain purpose, which either can
be a certain program or a collection of some programmes, such
as a graphic browser or the data base management system.
allows end users to accomplish one or more specific tasks.
Software Testing:
Introduction:
Testing is a process used to help identify the correctness,
completeness and quality of developed computer software.
Testing can never completely establish the correctness of
computer software.
One definition of testing is "the process of questioning a
product in order to evaluate it", where the "questions" are
things the tester tries to do with the product, and the product
answers with it’s behaviour in reaction to the probing of the
tester.
Testing helps in Verifying and Validating if the Software
is working as it is intended to be working.
Objectives of Software Testing:
 To ensure that the software satisfies the BRS i.e., Business
Requirement Specification and SRS i.e., System Requirement
Specifications.
 Finding defects which may get created by the programmer
while developing the software.
 Gaining confidence in and providing information about the
level of quality.
 To prevent defects.
 To gain the confidence of the customers by providing them a
quality product.
 To make sure that the end result meets the business and user
requirements.
Purpose of Software Testing:
 Software testing is really required to point out the defects and
errors that were made during the development phases.
 It’s essential since it makes sure of the Customer’s reliability
and their satisfaction in the application.
 It is very important to ensure the Quality of the
product. Quality product delivered to the customers helps in
gaining their confidence.
 Testing is necessary in order to provide the facilities to the
customers like the delivery of high quality product or
software application which requires lower maintenance cost
and hence results into more accurate, consistent and reliable
results.
 Testing is required for an effective performance of software
application or product.
 It’s important to ensure that the application should not result
into any failures because it can be very expensive in the
future or in the later stages of the development.
Types of TESTING:
Testing of a software is done based on 5 major classifications
namely:
1. Source of test
2. Life Cycle phase
3. Goal of specific testing activity
4. Characteristics of the artifact under test
5. Test process
Source of test:
 Black box testing – is a method that examines the functionality
of an application without peering into its internal structures or
working. Tests are based on requirements and functionality.
 Also known as Closed box Testing.
 White box testing – is a method that tests internal structures or
workings of an application, as opposed to its functionality. This
testing is based on knowledge of the internal logic of an
application’s code.
 Also known as Glass box Testing, Clear box Testing.
 Internal software and code working should be known for this type of
testing. Tests are based on coverage of code statements, branches, paths,
conditions.
 Interface Testing – is performed to evaluate whether systems or
components pass data and control correctly to one another.
 Ad hoc Testing – is a method performed without planning and
documentation, but can be applied to early scientific
experimental studies.
Life Cycle phase:
 Unit Testing – is a method of testing of individual software
components or modules.
 Typically done by the programmer and not by testers, as it requires
detailed knowledge of the internal program design and code.
 Integration Testing – is a method of testing of integrated
modules to verify combined functionality after integration.
 Modules are typically code modules, individual applications, client and
server applications on a network, etc.
 This type of testing is especially relevant to client/server and distributed
systems.
 System Testing – Entire system is tested as per the
requirements.
 Black-box type testing that is based on overall requirements
specifications, covers all combined parts of a system.
 Regression Testing – Testing the application as a whole for the
modification in any module or functionality. Difficult to cover
all the system in regression testing so typically automation
tools are used for these testing types.
 Beta Testing – Final testing before releasing application for
commercial purpose. It is typically done by end-users or others.
Goal of specific testing activity:
 Robustness Testing – is any quality assurance methodology
focused on testing the robustness of software.
 Stress Testing – Testing technique which evaluates a system or
component at or beyond the limits of its specified
requirements.
 usually conducted by the performance engineer.
 Performance Testing – is the process of determining the speed
or effectiveness of a computer, network, software program or
device.
 usually conducted by the performance engineer.
 Load Testing – is a performance testing to check system
behaviour under load. Testing an application under heavy
loads, such as testing of a web site under a range of loads to
determine at what point the system’s response time degrades or
fails.
 usually conducted by the performance engineers.
Test Process:
 Waterfall Model – Requirement Analysis
Design
System Testing
Coding & Unit Testing
Integration & subsystem
Testing
Maintenance
Training & Delivery
Acceptance Testing
 V- model –
Requirement Analysis
Design
System Testing
Coding
Integration & subsystem
Testing
Maintenance
Acceptance Testing
Develop unit tests
Unit Testing
Validate requirement
Develop system acceptance tests
Validate design
Develop integration tests
 Agile Testing – Agile is an iterative development methodology,
where requirements evolve through collaboration between the
customer and self-organizing teams and agile aligns
development with customer needs.
Software Testing Life Cycle(STLC):
is a testing process which is executed in a sequence, in
order to meet the quality goals. It is not a single activity but it
consists of many different activities which are executed to
achieve a good quality product.
Sequence of STLC:
1. Requirement Analysis
2. Test Planning
3. Test Case Development
4. Environment Setup
5. Test Execution
6. Test Cycle Closure
Process Chart of STLC:
Requirements
Analysis
Test Planning
Test Case
Development
Environment Setup
Test Execution
Test Cycle Closure
Requirement Analysis:
Activities to be done:
 Analyzing the SRS from the testing point of view.
 Identifying the testing techniques and testing types.
 Prioritizing the feature which need focused testing.
 Analyzing the Automation feasibility.
 Identifying the details about the testing environment where
actual testing will be done.
Outcomes:
 Requirement Traceability Matrix.
 Automation feasibility report.
Test Planning:
Activities to be done:
 Estimation of testing effort.
 Selection of Testing Approach.
 Preparation of Test Plan, Test strategy documents.
 Resource planning and assigning roles and responsibility to
them.
 Selection of Testing tool.
Outcomes:
 Test Plan document.
 Test Strategy document.
 Best suited Testing Approach.
Test Case Development:
Activities to be done:
 Creation of test cases.
 Creation of test scripts if required.
 Verification of test cases and automation scripts.
 Creation of Test Data in testing environment.
Outcomes:
 Test cases.
 Test scripts (for automation if required).
 Test Data.
Environment Setup:
Activities to be done:
 As per the Requirement and Architecture document the list of
required software and hardware is prepared.
 Setting up of test environment.
 Creation of test data.
 Installation of build and execution of Smoke testing on it.
Outcomes:
 Test Environment setup is ready.
 Test Data is created.
 Results of Smoke testing.
Test Execution:
Activities to be done:
 Execution of Test Cases.
 Reporting test results.
 Logging defects for the failed test cases.
 Verification and retesting of the defect.
 Closure of defects.
Outcomes:
 Test execution Report.
 Updated test cases with results.
 Bug Report.
Test Cycle Closure:
Activities to be done:
 To evaluate the test completion on the basis of Test Coverage
and Software Quality.
 Documentation of the learning from the project.
 Analyzing the test results to find out the distribution of severe
defects.
 Test Closure Report preparation.
Outcomes:
 Report of Test Closure.
Thank you

Software testing

  • 1.
    Name : RaviTeja Dasari
  • 2.
    INDEX 1. Introduction toSoftware i. Definition ii. Types of Software 2. Introduction to SOFTWARE TESTING i. Objectives of Software Testing ii. Purpose of Software Testing 3. Types of TESTING 4. Software Testing Life Cycle(STLC) 5. Summary
  • 3.
    Introduction to Software: Definition: Software,in it’s general terms, is a set of instructions or programs instructing a computer to do specific tasks. It is a general term used to describe computer program. It can also be defined as the process of verifying and validating the software application with respect to the customer requirements. Types of Software: Practical computer systems divide software systems into three major classes: 1. System Software 2. Programming Software 3. Application Software
  • 4.
    System Software: provides thebasic functions for computer usage and helps to run the computer hardware and system. purpose is to unburden the application software programmer from the often complex details of the particular computer being used such as device readers, printers, keyboards. Programming Software: usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. Tools include: compilers, interpreters, debuggers, linkers.
  • 5.
    Application Software: is developedfor some certain purpose, which either can be a certain program or a collection of some programmes, such as a graphic browser or the data base management system. allows end users to accomplish one or more specific tasks.
  • 6.
    Software Testing: Introduction: Testing isa process used to help identify the correctness, completeness and quality of developed computer software. Testing can never completely establish the correctness of computer software. One definition of testing is "the process of questioning a product in order to evaluate it", where the "questions" are things the tester tries to do with the product, and the product answers with it’s behaviour in reaction to the probing of the tester. Testing helps in Verifying and Validating if the Software is working as it is intended to be working.
  • 7.
    Objectives of SoftwareTesting:  To ensure that the software satisfies the BRS i.e., Business Requirement Specification and SRS i.e., System Requirement Specifications.  Finding defects which may get created by the programmer while developing the software.  Gaining confidence in and providing information about the level of quality.  To prevent defects.  To gain the confidence of the customers by providing them a quality product.  To make sure that the end result meets the business and user requirements.
  • 8.
    Purpose of SoftwareTesting:  Software testing is really required to point out the defects and errors that were made during the development phases.  It’s essential since it makes sure of the Customer’s reliability and their satisfaction in the application.  It is very important to ensure the Quality of the product. Quality product delivered to the customers helps in gaining their confidence.  Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software application which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.
  • 9.
     Testing isrequired for an effective performance of software application or product.  It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.
  • 10.
    Types of TESTING: Testingof a software is done based on 5 major classifications namely: 1. Source of test 2. Life Cycle phase 3. Goal of specific testing activity 4. Characteristics of the artifact under test 5. Test process
  • 11.
    Source of test: Black box testing – is a method that examines the functionality of an application without peering into its internal structures or working. Tests are based on requirements and functionality.  Also known as Closed box Testing.
  • 12.
     White boxtesting – is a method that tests internal structures or workings of an application, as opposed to its functionality. This testing is based on knowledge of the internal logic of an application’s code.  Also known as Glass box Testing, Clear box Testing.  Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions.
  • 13.
     Interface Testing– is performed to evaluate whether systems or components pass data and control correctly to one another.  Ad hoc Testing – is a method performed without planning and documentation, but can be applied to early scientific experimental studies.
  • 14.
    Life Cycle phase: Unit Testing – is a method of testing of individual software components or modules.  Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code.  Integration Testing – is a method of testing of integrated modules to verify combined functionality after integration.  Modules are typically code modules, individual applications, client and server applications on a network, etc.  This type of testing is especially relevant to client/server and distributed systems.  System Testing – Entire system is tested as per the requirements.  Black-box type testing that is based on overall requirements specifications, covers all combined parts of a system.
  • 15.
     Regression Testing– Testing the application as a whole for the modification in any module or functionality. Difficult to cover all the system in regression testing so typically automation tools are used for these testing types.  Beta Testing – Final testing before releasing application for commercial purpose. It is typically done by end-users or others.
  • 16.
    Goal of specifictesting activity:  Robustness Testing – is any quality assurance methodology focused on testing the robustness of software.  Stress Testing – Testing technique which evaluates a system or component at or beyond the limits of its specified requirements.  usually conducted by the performance engineer.  Performance Testing – is the process of determining the speed or effectiveness of a computer, network, software program or device.  usually conducted by the performance engineer.
  • 17.
     Load Testing– is a performance testing to check system behaviour under load. Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.  usually conducted by the performance engineers.
  • 18.
    Test Process:  WaterfallModel – Requirement Analysis Design System Testing Coding & Unit Testing Integration & subsystem Testing Maintenance Training & Delivery Acceptance Testing
  • 19.
     V- model– Requirement Analysis Design System Testing Coding Integration & subsystem Testing Maintenance Acceptance Testing Develop unit tests Unit Testing Validate requirement Develop system acceptance tests Validate design Develop integration tests
  • 20.
     Agile Testing– Agile is an iterative development methodology, where requirements evolve through collaboration between the customer and self-organizing teams and agile aligns development with customer needs.
  • 21.
    Software Testing LifeCycle(STLC): is a testing process which is executed in a sequence, in order to meet the quality goals. It is not a single activity but it consists of many different activities which are executed to achieve a good quality product. Sequence of STLC: 1. Requirement Analysis 2. Test Planning 3. Test Case Development 4. Environment Setup 5. Test Execution 6. Test Cycle Closure
  • 22.
    Process Chart ofSTLC: Requirements Analysis Test Planning Test Case Development Environment Setup Test Execution Test Cycle Closure
  • 23.
    Requirement Analysis: Activities tobe done:  Analyzing the SRS from the testing point of view.  Identifying the testing techniques and testing types.  Prioritizing the feature which need focused testing.  Analyzing the Automation feasibility.  Identifying the details about the testing environment where actual testing will be done. Outcomes:  Requirement Traceability Matrix.  Automation feasibility report.
  • 24.
    Test Planning: Activities tobe done:  Estimation of testing effort.  Selection of Testing Approach.  Preparation of Test Plan, Test strategy documents.  Resource planning and assigning roles and responsibility to them.  Selection of Testing tool. Outcomes:  Test Plan document.  Test Strategy document.  Best suited Testing Approach.
  • 25.
    Test Case Development: Activitiesto be done:  Creation of test cases.  Creation of test scripts if required.  Verification of test cases and automation scripts.  Creation of Test Data in testing environment. Outcomes:  Test cases.  Test scripts (for automation if required).  Test Data.
  • 26.
    Environment Setup: Activities tobe done:  As per the Requirement and Architecture document the list of required software and hardware is prepared.  Setting up of test environment.  Creation of test data.  Installation of build and execution of Smoke testing on it. Outcomes:  Test Environment setup is ready.  Test Data is created.  Results of Smoke testing.
  • 27.
    Test Execution: Activities tobe done:  Execution of Test Cases.  Reporting test results.  Logging defects for the failed test cases.  Verification and retesting of the defect.  Closure of defects. Outcomes:  Test execution Report.  Updated test cases with results.  Bug Report.
  • 28.
    Test Cycle Closure: Activitiesto be done:  To evaluate the test completion on the basis of Test Coverage and Software Quality.  Documentation of the learning from the project.  Analyzing the test results to find out the distribution of severe defects.  Test Closure Report preparation. Outcomes:  Report of Test Closure.
  • 29.