1 Chapter 22 Developer Testing. 2 introduction Testing is the most popular quality-improvement activity Testing is the most popular quality-improvement.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Test Yaodong Bi.
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Developer Testing and Debugging. Resources Code Complete by Steve McConnell Code Complete by Steve McConnell Safari Books Online Safari Books Online Google.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Creator: ACSession No: 13 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Testing - Techniques CSE300 Advanced Software Engineering.
Informatics 43 – April 30, What is a test case? An input to a system, and the correct output. An “input” may be complex. Example: – What is an input.
1 Testing. 2 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.
CS 425/625 Software Engineering Software Testing
Outline Types of errors Component Testing Testing Strategy
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
ECE 355: Software Engineering
Extreme Programming Software Development Written by Sanjay Kumar.
Categories of Testing.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
TESTING.
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Testing, Bug Fixing and Debugging the Code Yordan Dimitrov Telerik Corporation
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
Testing 1 © Minder Chen, Source: Developing Web Applications with Microsoft Visual Basic.NET and Microsoft Visual C#.NET Testing Test plan objectives.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Software Testing White Box Testing. Agenda What is White Box Testing Correctness Tests and Path Coverage Correctness Tests and Line Coverage McCabe Cyclomatic.
SOFTWARE TESTING. INTRODUCTION Testing forms the first step in determining the errors in a program. It is the major quality control measure used during.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Chapter 9 Testing the System 9.1 Principles of System Testing Focus A: The objective of unit and integration ensure the code implemented the design.
CX Introduction to Web Programming Testing.
Software Testing Kobla Setriakor Nyomi Faculty Intern (Programming II)
Software Testing.
Software Testing.
Rekayasa Perangkat Lunak Part-13
Software Engineering (CSI 321)
WHITEBOX TESTING APPROACH
Lecture 09:Software Testing
Software testing.
CS240: Advanced Programming Concepts
Informatics 43 – April 28, 2016.
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing “If you can’t test it, you can’t design it”
Software Testing.
Java & Testing.
Chapter 11: Integration- and System Testing
Chapter 11: Integration and System Testing
CS410 – Software Engineering Lecture #11: Testing II
Testing, Inspection, Walkthrough
Presentation transcript:

1 Chapter 22 Developer Testing

2 introduction Testing is the most popular quality-improvement activity Testing is the most popular quality-improvement activity Developers are responsible on performing unit tests, component tests, and integration tests. Developers are responsible on performing unit tests, component tests, and integration tests. developer testing should probably take 8 to 25% of the total project time. developer testing should probably take 8 to 25% of the total project time. More advanced testing are performed by specialized test personnel, such as beta tests, customer- acceptance tests, performance tests, configuration tests, platform tests, stress tests, usability tests, and so on. More advanced testing are performed by specialized test personnel, such as beta tests, customer- acceptance tests, performance tests, configuration tests, platform tests, stress tests, usability tests, and so on.

3 Testing Types Unit testing is the execution of a complete class, routine, or small program that has been written by single programmer. Unit testing is the execution of a complete class, routine, or small program that has been written by single programmer. Component testing is the execution of a class, package, small program, or other program element that involves the work of multiple programmers or programming teams. Component testing is the execution of a class, package, small program, or other program element that involves the work of multiple programmers or programming teams.

4 Testing Types.. continue Integration testing is the combined execution of two or more classes, packages, components, subsystems that have been created by multiple programmers or programming teams. Integration testing is the combined execution of two or more classes, packages, components, subsystems that have been created by multiple programmers or programming teams. Regression testing is the repetition of previously executed test cases for the purpose of finding defects in software that previously passed the same set of tests. Regression testing is the repetition of previously executed test cases for the purpose of finding defects in software that previously passed the same set of tests.

5 Testing Types.. continue System testing is the execution of the software in its final configuration, including integration with other software and hardware systems. It tests for security, performance, resource loss, timing problems, and other issues that can’t be tested at lower levels of integration. System testing is the execution of the software in its final configuration, including integration with other software and hardware systems. It tests for security, performance, resource loss, timing problems, and other issues that can’t be tested at lower levels of integration.

6 Testing Category Testing is broken into two broad categories: Testing is broken into two broad categories: black box testing and black box testing and white box (or glass box) testing. white box (or glass box) testing.

7 Black box testing refers to tests in which the tester cannot see the inner workings of the item being tested. refers to tests in which the tester cannot see the inner workings of the item being tested. does not apply when you test code that you have written! does not apply when you test code that you have written!

8 White box testing refers to tests in which the tester is aware of the inner workings of the item being tested. refers to tests in which the tester is aware of the inner workings of the item being tested. This is the kind of testing that developer use to test his own code. This is the kind of testing that developer use to test his own code.

9 Testing and Debugging Testing and Debugging are two different phases Testing and Debugging are two different phases Testing is a means of detecting errors. Testing is a means of detecting errors. Debugging is a means of diagnosing and correcting the root causes of errors that have already been detected. Debugging is a means of diagnosing and correcting the root causes of errors that have already been detected.

10 Testing during construction During construction, programmer who write a routine or class, must check it mentally. then During construction, programmer who write a routine or class, must check it mentally. then Programmer must review it or test it. Programmer must review it or test it. Programmer should test each unit thoroughly before he combine it with any others. Programmer should test each unit thoroughly before he combine it with any others. In case of writing several routines, he should test them one at a time. In case of writing several routines, he should test them one at a time.

11 Structured Basis Testing test each statement in a program at least once. test each statement in a program at least once. The easiest way is to calculate the number of paths through the program and then develop the minimum number of test cases that will exercise every path through the program. The easiest way is to calculate the number of paths through the program and then develop the minimum number of test cases that will exercise every path through the program.

12 Determining the Number of Test Cases Needed for Structured Basis Testing 1. Start with 1 for the straight path through the routine. 2. Add 1 for each of the following keywords, or their equivalents: if, while, repeat, for, and, and or. 3. Add 1 for each case in a case statement. If the case statement doesn’t have a default case, add 1 more.

13 Example 1.. how many test cases programmer must check Statement1;Statement2; if ( x < 10 ) { Statement3; Statement3; }Statement4;  Two Test Cased  Two Test Cased

14 In this example, you’d need to have the following test cases: In this example, you’d need to have the following test cases: Statements controlled by if are executed (x < 10). Statements controlled by if are executed (x < 10). Statements controlled by if aren’t executed (x >= 10). Statements controlled by if aren’t executed (x >= 10).

15 Example 2.. how many test cases programmer must check cin>>x; cin>>y; cin>>z; if (x>0) cout<<“first number is positive\n”; else cout<<“first number is Negative\n”; if (y>0) cout<<“Second number is positive\n”; else cout<<“first number is Negative\n”; if(z>0) cout<< “Third number is zero”; else cout<<“first number is Negative\n”;

16 Example 3.. how many test case programmer must check cin>>y;switch(y){ case 7: cout<<“7”; break; case 8: cout<<“8”; break; }