Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Testing and Quality Assurance: Introduction and Terminology

Similar presentations

Presentation on theme: "Software Testing and Quality Assurance: Introduction and Terminology"— Presentation transcript:

1 Software Testing and Quality Assurance: Introduction and Terminology
Reading: John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented Software, Addison-Wesley, 2001, ISBN: Chapter 1

2 Outline What software testing is — and Is not
Software testing vs. debugging Software testing vs. quality assurance. Know the similarities and the differences between Object-Oriented software testing and traditional software testing.

3 What Software Testing is—and Is Not
Software testing is the process of finding evidences of defects in software systems. Software testing ensures that a product meets requirements. A successful test is one that discovers an as-yet-undiscovered error. Software testing is not: debugging. Quality Assurance (QA).

4 Our Textbook Definitions
An error is a slip-up or inappropriate decision by a software developer that leads to the introduction of a defect. A defect is a flaw in any aspect of the system that contributes, or may potentially contribute, to the occurrence of one or more failures: It might take several defects to cause a particular failure. A failure is an unacceptable behaviour exhibited by a system: The frequency of failures measures the reliability.

5 Software Testing vs. Debugging
Software testing does not include the effort associated with tracking down bugs and fixing them (debugging or repair of bugs) Testing is the process of finding failures Debugging is the tracking down the source of the failure.

6 Software Testing vs. Quality Assurance
Software testing is not quality assurance (QA). QA is responsible for developing test plans and setting standards that project members should follow in order to build a better software. QA might monitor testing during development and keep statistics. Testing is necessary but is not enough for QA process. QA addresses activities designed to prevent defects as well as to remove those defects. Testing can contribute to improved quality by helping to identify problems early in the development process but no amount of testing will improve the quality of the software

7 Our Focus in This Course
On Object-Oriented (OO) and component-based software (CB). You can apply many of the techniques on other programming paradigms On describing what to test in OO development efforts. On describing techniques for how to test OO software.

8 Expectations Familiarity with testing procedural software.
Experience in developing software using OO and CB technologies.

9 Object-Oriented Software Testing
Object-oriented programming have features that are very different from the other programming paradigms. Object-Oriented features Inheritance Polymorphism Encapsulation Interfaces Reusability

10 Object-Oriented Software vs. Traditional Software Testing
Similarities in testing OO software and traditional software Software meets requirements Unit testing, integration testing, and regression testing Differences in testing OO software and traditional software OO analysis, design and implementation are different representations of the same problem model. It implies that testing can be done at each stage OO software development concerns objectives like reusability and extensibility. In addition to conventional goals of testing, these objectives need to be tested.

11 Advantages of OO Testing
Analysis models map straight forward to design models which map to code. Thus, we can start testing during analysis and refine the tests done in analysis to tests for design. Tests of design can be refined to tests of implementation. So, the testing process can be interwoven with the development process.

12 Advantages to Testing Analysis and Design Models
Test cases can be identified earlier in the process, even as requirements are being determined (to ensure that the specified requirement is testable). Bugs can be detected early in the development process, saving time, money, and effort. Test cases can be reviewed for correctness early in the project. Note: Testing models are beneficial but testing code is still an important part of the process.

13 Testing Approach Analyze a little Design a little Code a little
Test what you can.

14 Tests for OO Software Model testing
Class testing, which replaces unit testing Interaction testing, which replaces integration testing System (and sub system) testing Acceptance testing Deployment/self testing Regression testing

15 “Test Early, Test Often, Test Enough”
Testing Motto “Test Early, Test Often, Test Enough” Test Early: Testing during analysis and design phases can help to uncover problems early in the development process and help to scope the size of the effort needed to perform testing by determining what needs to be tested. Test often: When iterative incremental process is used, as iterations are completed on analysis, design, and implementation phases, the products should be tested. Test enough: Test every aspect of the software.

16 Brickles Game Brick Pile Puck Paddle Play field

17 Summary of Key Points Software testing is the process of discovering evidences of defects and failures in software systems. Software testing is not quality assurance (QA). Testing OO Software is different from testing procedural software. Test early, test often, test enough Software testers should have a very good understanding of the development process, product and the ability to anticipate likely faults and errors.

Download ppt "Software Testing and Quality Assurance: Introduction and Terminology"

Similar presentations

Ads by Google