Software Testing Strategies

Slides:



Advertisements
Similar presentations
Lecture 12 - Software Testing Techniques & Software Testing Strategies
Advertisements

Software Testing Strategies
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Illinois Institute of Technology
Chapter Eighteen Software Testing Strategies
Software Testing & Strategies
Software Testing Strategies
Software Engineering Lecture 13 Software Testing Strategies 1.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Chapter 13 & 14 Software Testing Strategies and Techniques
Programinės Įrangos Testavimo Strategijos
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
1 Chapter 7 Software Testing Strategies. 2 Software Testing Testing is the process of exercising a program with the specific intent of finding errors.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Software Engineering By Germaine Cheung Hong Kong Computer Institute Lecture 7.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
System Testing 12/09. Hierarchy of Testing Testing Program Testing Top Down Bottom Up Integration TestingUnit Testing System Testing Big Bang Sandwich.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
IF-ITB/YW/Revisi: Oktober 2008 IF2036 Software Testing Page 1 IF2036 Software Engineering Program Studi Teknik Informatika STEI ITB Software Testing.
Software Testing Strategies for building test group
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Group mambers: Maira Naseer (BCS ).
Chapter-5 (Testing Strategy)
Rekayasa Perangkat Lunak Part-13
Software Testing Strategies
Software Testing Techniques
Chapter 22 Software Testing Strategies برنامج استراتيجيات الاختبار
Debugging, Alpha & Beta Testing.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 13 Software Testing Strategies copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 18 Software Testing Strategies
Levels Of Testing and Special Tests
Chapter 13 & 14 Software Testing Strategies and Techniques
CS 8532: Advanced Software Engineering
Lecture 09:Software Testing
Verification and Validation Unit Testing
Chapter 17 Software Testing Strategies
CS 8532: Advanced Software Engineering
Chapter 10 – Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 17 Software Testing Strategies
Chapter 17 Software Testing Strategies
Chapter 17 Software Testing Strategies.
Chapter 22 Software Testing Strategies
Software Testing “If you can’t test it, you can’t design it”
Chapter 17 Software Testing Strategies
Chapter 11: Integration- and System Testing
System analysis and design
Chapter 17 Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Testing Strategies By:- Swati Khose

Strategic Approach to Testing - 1 Testing begins at the component level and works outward toward the integration of the entire computer-based system. Different testing techniques are appropriate at different points in time. The developer of the software conducts testing and may be assisted by independent test groups for large projects. The role of the independent tester is to remove the conflict of interest inherent when the builder is testing his or her own product.

Strategic Approach to Testing - 2 Testing and debugging are different activities. Debugging must be accommodated in any testing strategy. Need to consider verification issues are we building the product right? Need to Consider validation issues are we building the right product?

Strategic Testing Issues - 1 Specify product requirements in a quantifiable manner before testing starts. Specify testing objectives explicitly. Identify the user classes of the software and develop a profile for each. Develop a test plan that emphasizes rapid cycle testing.

Strategic Testing Issues - 2 Build robust software that is designed to test itself (e.g. use anti-bugging). Use effective formal reviews as a filter prior to testing. Conduct formal technical reviews to assess the test strategy and test cases.

Stages of Testing Module or unit testing. Integration testing, Function testing. Performance testing. Acceptance testing. Installation testing.

Unit Testing Program reviews. Formal verification. Testing the program itself. black box and white box testing.

Black Box or White Box? Maximum # of logic paths - determine if white box testing is possible. Nature of input data. Amount of computation involved. Complexity of algorithms.

Unit Testing Details Interfaces tested for proper information flow. Local data are examined to ensure that integrity is maintained. Boundary conditions are tested. Basis path testing should be used. All error handling paths should be tested. Drivers and/or stubs need to be developed to test incomplete software.

Generating Test Data Ideally want to test every permutation of valid and invalid inputs Equivalence partitioning it often required to reduce to infinite test case sets Every possible input belongs to one of the equivalence classes. No input belongs to more than one class. Each point is representative of class.

Regression Testing Check for defects propagated to other modules by changes made to existing program Representative sample of existing test cases is used to exercise all software functions. Additional test cases focusing software functions likely to be affected by the change. Tests cases that focus on the changed software components.

Integration Testing Bottom - up testing (test harness). Top - down testing (stubs). Modified top - down testing - test levels independently. Big Bang. Sandwich testing.

Top-Down Integration Testing Main program used as a test driver and stubs are substitutes for components directly subordinate to it. Subordinate stubs are replaced one at a time with real components (following the depth-first or breadth-first approach). Tests are conducted as each component is integrated. On completion of each set of tests and other stub is replaced with a real component. Regression testing may be used to ensure that new errors not introduced.

Bottom-Up Integration Testing Low level components are combined in clusters that perform a specific software function. A driver (control program) is written to coordinate test case input and output. The cluster is tested. Drivers are removed and clusters are combined moving upward in the program structure.

Time to get working program   Bottom - Up Top - Down Big Bang Sandwich Integration Early Time to get working program Late Drivers Yes No Stub Parallelism Medium Low High Test specification Easy Hard Product control seq.

Smoke & Sanity Testing Both sanity tests and smoke tests are ways to avoid wasting time and effort by quickly determining whether an application is too flawed to merit any rigorous testing.  Sanity Testing is also called tester acceptance testing. Smoke testing performed on a particular build is also known as a build verification test. One of the best industry practice is to conduct a Daily build and smoke test in software projects. Both smoke and sanity tests can be executed manually or using an automation tool.  When automated tools are used, the tests are often initiated by the same process that generates the build itself. As per the needs of testing, you may have to execute both Sanity and Smoke Tests in the software build. In such cases, you will first execute Smoke tests and then go ahead with Sanity Testing. In industry, test cases for Sanity Testing are commonly combined with that for smoke tests, to speed up test execution. Hence, it's a common that the terms are often confused and used interchangeably

Validation Testing Ensure that each function or performance characteristic conforms to its specification. Deviations (deficiencies) must be negotiated with the customer to establish a means for resolving the errors. Configuration review or audit is used to ensure that all elements of the software configuration have been properly developed, cataloged, and documented to allow its support during its maintenance phase.

Acceptance Testing Making sure the software works correctly for intended user in his or her normal work environment. Alpha test version of the complete software is tested by customer under the supervision of the developer at the developer’s site Beta test version of the complete software is tested by customer at his or her own site without the developer being present

Acceptance Testing Approaches Benchmark test. Pilot testing. Parallel testing.

System Testing Recovery testing Security testing Stress testing checks system’s ability to recover from failures Security testing verifies that system protection mechanism prevents improper penetration or data alteration Stress testing program is checked to see how well it deals with abnormal resource demands Performance testing tests the run-time performance of software

Performance Testing Stress test. Volume test. Configuration test (hardware & software). Compatibility. Regression tests. Security tests. Timing tests. Environmental tests. Quality tests. Recovery tests. Maintenance tests. Documentation tests. Human factors tests.

Debugging Debugging (removal of a defect) occurs as a consequence of successful testing. Some people better at debugging than others. Is the cause of the bug reproduced in another part of the program? What “next bug” might be introduced by the fix that is being proposed? What could have been done to prevent this bug in the first place?

Debugging Approaches Brute force Backtracking Cause elimination memory dumps and run-time traces are examined for clues to error causes Backtracking source code is examined by looking backwards from symptom to potential causes of errors Cause elimination uses binary partitioning to reduce the number of locations potential where errors can exist