Software Testing and Quality Assurance: Introduction and Terminology
Published byModified over 4 years ago
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. debuggingSoftware 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 failuresDebugging 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 paradigmsOn 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 featuresInheritancePolymorphismEncapsulationInterfacesReusability
10 Object-Oriented Software vs. Traditional Software Testing Similarities in testing OO software and traditional softwareSoftware meets requirementsUnit testing, integration testing, and regression testingDifferences in testing OO software and traditional softwareOO analysis, design and implementation are different representations of the same problem model. It implies that testing can be done at each stageOO 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 testingInteraction testing, which replaces integration testingSystem (and sub system) testingAcceptance testingDeployment/self testingRegression 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.
17 Summary of Key PointsSoftware 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 enoughSoftware testers should have a very good understanding of the development process, product and the ability to anticipate likely faults and errors.