130 likes | 139 Views
Discover the significance of software testing in ensuring quality and identifying bugs, the definition of a bug, the costs associated with different stages of the software life cycle, and the challenges in achieving high-quality software.
E N D
Testing More In CS430
About Testing • The reason the program is in testing is that it probably doesn’t work! • We test to find bugs before our users and hope that the developers will fix them • A test that reveals a problem is a successful one Testing
Define “Bug” • A bug, or defect, in software is something that cause the software to behave in a manner that is inconsistent with the requirements or the needs of customers Testing
Software Life Cycle Costs • Requirement Analysis 3% • Specification 3% • Design 5% • Coding 7% • Testing 15% • Operation & Maintenance 67% Testing
Cost of Finding & Fixing Software Errors The sooner a bug is found & fixed, the cheaper Cost Requirements Coded Released Testing
High Quality Software • One measure of the quality of software is delivered defect density -- the number of defects per unit size in the delivered software. Testing
Quality Control V.S. Quality Assurance • Quality control focuses on finding (through testing and reviewing) and removing defects. • Quality Assurance is to verify that applicable procedures and standards are followed so the software’s quality is somewhat controlled Testing
When Defects Are Introduced • Defect can be introduced during • Requirement specification • Design both high level and detailed • Coding • Bug fixing • Why? • Software development is a highly people oriented activity and hence error-prone Testing
Activities for Defect Removal • Are: • Requirement reviews • Code reviews (walk through) • Unit testing • Integration testing • system testing • alpha test -- within the team • beta -- out side the team • Acceptance test Testing
You Can NOT find all the bugs • No matter how careful and thorough a job you do, you will never find the last bug in a program • Or if you do, you won’t know it Testing
Some Wrong Concepts • We can fully test a program • With testing, we can ensure the correctness of a program • The tester’s mission is to assure program correctness by doing a complete testing. Testing
You cannot test a program completely • Reason: • The domain of possible input is too large to test • There are too many possible paths through the program to test • The user interface issue are too complex to completely test Testing
You cannot test a program completely • Myers, 1976, described a 100-line program that had 1018 unique paths. • Note that the universe is only 4x1017 seconds old! Testing