Comprehensive Overview of Software Testing and Strategies

Slide Note
Embed
Share

Software testing is a crucial process that involves finding errors before delivering to the end user. The principles and objectives of testing, along with testing strategies and approaches, play a vital role in ensuring quality and reliability in software development. Various testing methods, including planning, execution, and evaluation, are essential for effective software testing.


Uploaded on Dec 06, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Testing Principles

  2. Testing Objectives Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.

  3. What Testing Shows? errors requirements conformance performance an indication of quality

  4. Testing Principles 1. All the tests should be traceable to customer requirements 2. Tests should be planned 3. 80% of errors uncovered, during testing 4. Testing should begin in the small & progress toward testing in the large 5. Testing should be conducted by independent third party

  5. A strategic Approach to Software Testing Testing strategy provides a process, that describes for the developer, quality analysis & the customer The steps conducted as a part of testing The testing strategy includes -

  6. The testing strategy includes Test planning Test case design Test execution Data collection Effectiveness evaluation

  7. The Strategic Approach for S/W Testing Can Be Before starting testing process, Formal technical reviews must be conducted Various components of the system are tested Then interface is tested i.e. entire computer based system is tested Different testing techniques can be applied at different point of time

  8. The developer of the software conducts testing For the large projects, independent test groups also assists the developers Testing & debugging are different activities That must be carried out in software testing Debugging also lies within any testing strategy

  9. Testing Strategy System engineering Analysis modeling Design modeling Code generation Unit test Integration test Validation test System test

  10. Testing Strategy We begin by testing-in-the-small And move toward testing-in-the-large

  11. Verification & Validation

  12. verification Set of activities That ensure that Software correctly implements a specific function

  13. Strategic Issues

  14. Before the testing stars, specify the product requirements appropriately Specify testing objective clearly Identify categories of users for the software e & their role with reference to software system Develop a test plan that emphasizes rapid cycle testing Build robust software which can b e useful for testing Use effective formal reviews before actual testing process begins Conduct formal technical reviews to assess the test strategy & test cases Throughout the testing process adopt the continuous development strategy

  15. Testing Strategies for Conventional Software

  16. 1. Unit testing 2. Integration testing Non-incremental integration - big-bang approach Incremental integration - top down testing - bottom up integration - regression testing - smoke testing 3. Validation testing - acceptance testing - - alpha testing beta testing 4. System testing - recovery testing - security testing - stress testing - performance testing

  17. A unit is the smallest testable part of software. It usually has one or a few inputs and usually a single output. In procedural programming - a unit may be an individual program, function, procedure, etc. In object-oriented programming, - the smallest unit is a method, which may belong to - a base/ super class, abstract class or derived/ child class. Unit testing frameworks, drivers, stubs, and mock/ fake objects are used to assist in unit testing.

  18. 1. Unit Testing Individual components are tested independently Driver and stub software are used in unit testing Driver - - a program, that accepts the test data & prints the relevant results Stub - - - - - a subprogram, that uses module interfaces and performs minimal data manipulation If required

  19. Unit Testing module to be tested results software engineer test cases

  20. Unit Testing module to be tested interface local data structures boundary conditions independent paths error handling paths test cases

  21. Unit Test Environment driver interface local data structures boundary conditions Module independent paths error handling paths stub stub test cases RESULTS

  22. BENEFITS (Advantages) of Unit Testing Unit testing increases confidence in changing/ maintaining code. If good unit tests are written - and if they are run every time any code is changed, - we will be able to promptly catch any defects - introduced due to the change. Also, if codes are already made less interdependent - to make unit testing possible, - the unintended impact of changes to any code is less. Codes are more reusable. - In order to make unit testing possible, - codes need to be modular. This means that codes are easier to reuse.

  23. The cost of fixing a defect - detected during unit testing is lesser - in comparison to that of defects - detected at higher levels. Compare the cost (time, effort, destruction, humiliation) - of a defect detected - during acceptance testing or when the software is live. Debugging is easy. - When a test fails, only the latest changes need to be debugged. - With testing at higher levels, - changes made over the span of several days/ weeks/ months need to be scanned.

  24. Integration Testing is a level of software testing - where individual units are combined and tested as a group. The purpose of this level of testing is - to expose - faults in the interaction - between integrated units. Test drivers and test stubs are used - to assist in Integration Testing.

  25. Definition by ISTQB integration testing: Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems

  26. ANALOGY During the process of manufacturing a ballpoint pen, the cap, the body, the tail and clip, the ink cartridge and the ballpoint are produced separately and unit tested separately. When two or more units are ready, they are assembled and Integration Testing is performed. For example, whether the cap fits into the body or not.

  27. When is Integration Testing performed? Integration Testing is performed after Unit Testing and before System Testing. Who performs Integration Testing? Either Developers themselves or independent Testers perform Integration Testing.

  28. APPROACHES Big Bang is an approach to Integration Testing where all or most of the units are combined together and tested at one go. This approach is taken when the testing team receives the entire software in a bundle. So what is the difference between Big Bang Integration Testing and System Testing? Well, the former tests only the interactions between the units while the latter tests the entire system.

  29. Top Down is an approach to Integration Testing where top level units are tested first and lower level units are tested step by step after that. This approach is taken when top down development approach is followed. Test Stubs are needed to simulate lower level units which may not be available during the initial phases.

  30. Bottom Up is an approach to Integration Testing where bottom level units are tested first and upper level units step by step after that. This approach is taken when bottom up development approach is followed. Test Drivers are needed to simulate higher level units which may not be available during the initial phases.

  31. Sandwich/Hybrid is an approach to Integration Testing which is a combination of Top Down and Bottom Up approaches.

  32. 2.Integration Testing Group of dependent components are tested together Uncovers errors in - Design and construction of software architecture. - Integrated functions and operation at system level - Interfaces and interactions between them - Resource integration and environmental integration

  33. Integration Testing Strategies Options: the big bang approach an incremental construction strategy

  34. Approaches Of Integration Testing Non incremental integration - big-bang approach Incremental integration - top down testing - Bottom up testing - Regression testing - Smoke testing

  35. Non Incremental Integration (Big-bang Approach) Steps - - - All components are combined in advance The entire program is tested as a whole And - chaos usually results - - set of errors are tested as a whole once these errors are corrected, new ones appear this process continues infinitely -

  36. Advantages - simple Disadvantages - Hard to debug - difficult to isolate errors while testing

  37. Incremental Integration - top down integration testing - Bottom up integration testing - Regression testing - Smoke testing

  38. Top Down Integration A top module is tested with stubs B F G stubs are replaced one at a time, "depth first" C as new modules are integrated, some subset of tests is re-run D E

  39. Bottom-Up Integration A B F G drivers are replaced one at a time, "depth first" C worker modules are grouped into builds and integrated D E cluster 42

  40. Regression Testing re-execution of some subset of tests that have already been conducted - to ensure that - changes have not propagated unintended side effects Whenever software is corrected, - some aspect of the software configuration is changed. Regression testing helps to ensure that - changes (due to testing or for other reasons) - do not introduce unintended behavior or additional errors. Regression testing may be conducted manually, - by re-executing a subset of all test cases - or using automated capture/playback tools.

  41. Smoke Testing A common approach for creating daily builds for product software steps: Software components that have been translated into code are integrated into a build. A build includes all data files, libraries, reusable modules, etc. The build is integrated with other builds and the entire product is smoke tested daily.

  42. 3. Validation Testing

  43. Acceptance testing Conducted to ensure that The s/w works correctly In the user work environment Can be conducted over a period of weeks or months

  44. Types of Acceptance Testing Alpha testing - complete s/w is tested by customer - under supervision of developer - at developer s site - in controlled environment Beta testing - complete s/w is tested by customer - without developer being present - at customer s site - no control of developer

  45. 4. System Testing

  46. DEFINITION System Testing is a level of the software testing - where a complete and integrated software is tested. The purpose of this test is - to evaluate the system s compliance - with the specified requirements. Definition by ISTQB system testing: - The process of testing an integrated system - to verify that it meets specified requirements.

Related


More Related Content