1 / 90

Software Testing

Understand the differences between error, fault, and failure in software testing. Learn the principles, strategies, and phases of testing, including unit testing, integration testing, and validation testing. Discover the benefits of unit testing and nuances of integration testing.

bland
Download Presentation

Software Testing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Testing

  2. Error, Fault, Failure • An error • a human action that produces an incorrect result. (Mistake). • we all make mistakes and when developing the software. • Fault – • The result of an error being made is a fault. • It is something that is wrong in the software • (source code or documentation – specifications, manuals, etc.). • Faults are also known as defects or bugs. • Failure – • When a system or piece of software • produces an incorrect result or does not perform the correct action. • Failures are caused by faults in the software.

  3. Testing Principles

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

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

  6. 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

  7. Testing Strategy • We begin by ‘testing-in-the-small’ • And • move toward ‘testing-in-the-large’

  8. Testing Strategies for Conventional Software

  9. 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

  10. Phases of Testing

  11. 1. Unit Testing • 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.

  12. 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

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

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

  15. BENEFITS (Advantages) of Unit Testing • Unit testing - increases confidence in changing/ maintaining code. • If good unit tests are written - & if they are run every time any code is changed, - its possible to promptly catch any defects - introduced due to the change. • Codes are more reusable. This means that codes are easier to reuse.

  16. 2. 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. 

  17. 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

  18. 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.

  19. Integration Testing Strategies • Options: • • the “big bang” approach • • an incremental construction strategy

  20. Approaches of Integration Testing • Non incremental integration - big-bang approach • Incremental integration - top down testing - Bottom up testing - Regression testing - Smoke testing

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

  22. Advantages – - simple • Disadvantages – - Hard to debug - difficult to isolate errors while testing

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

  24. Top Down Integration A B F G C D E

  25. Bottom-Up Integration A B F G C D E

  26. Regression Testing • re-execution of some subset of tests • that have already been conducted - to ensure that - changes have not propagated - unintended side effects or additional errors • Whenever software is corrected, - some aspect of the software configuration is changed.

  27. 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.

  28. 4. System Testing

  29. System Testing • a complete and integrated software is tested. • Definition by ISTQB system testing: - The process of testing an integrated system - to verify that it meets specified requirements.

  30. The system test is - a series of tests conducted - to fully test - the computer based system - (As a single unit)

  31. When is it performed? - System Testing is performed - after Integration Testing and before Acceptance Testing. • Who performs it? - Normally, - independent Testers perform System Testing.

  32. Types of System Tests • Recovery testing • Security testing • Stress testing • Performance or load testing • Interoperability testing • Scalability testing

  33. Types of System Tests • Recovery testing - System’s ability to recover from failures. - s/w is forced to fail & then it is verified, - whether the system is properly recoverable or not. - Reinitialization, checkpoint mechanisms, data recovery & restart - are verified • Security testing - Verifies the protection mechanism, – unauthorized internal or external access, - or willful damage.

  34. Stress testing - Software is tested at highest load, than normal working environment - i.e. system is executed for – resources in abnormal quantity, frequency or volume • Performance testing - runtime performance of the software is evaluated. - resource utilization is measured. - such as – CPU load, throughput, response time, memory usage. - ex. Beta testing

  35. Acceptance Testing

More Related