CS351 © 2003 Ray S. Babcock Software Testing What is it?

Slides:



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

Acceptance Testing.
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Testing and Quality Assurance
Chapter 4 Quality Assurance in Context
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 6: Design of Expert Systems
Illinois Institute of Technology
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.
Validating and Improving Test-Case Effectiveness Author: Yuri Chernak Presenter: Lam, Man Tat.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
Testing Test Plans and Regression Testing. Programs need testing! Writing a program involves more than knowing the syntax and semantics of a language.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Data Structures and Programming.  John Edgar2.
Terms: Test (Case) vs. Test Suite
Software Development Life Cycle (SDLC)
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
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.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.

Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 CS 5380 Software Engineering Chapter 8 Testing.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Martin Cryer Software Development. ‹#› Development Processes Traditional e.g. Waterfall Method Agile –Design Build (Quick to Market) –Combines Engineering,
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
ISO 9001 – an overview Tor Stålhane IDI / NTNU. ISO 9001 and software development ISO 9001 is a general standard – equally applicable to software development.
 System Development Life Cycle System Development Life Cycle  SDLC Phases SDLC Phases Phase 1: Preliminary Investigation Phase 2: Feasibility Study.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Evaluating Requirements
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
SOFTWARE TESTING Sampath Kumar Vuyyuru. INTRODUCTION Software Testing is a way of executing the software in a controlled manner to check whether the software.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
Testing throughout Lifecycle Ljudmilla Karu. Verification and validation (V&V) Verification is defined as the process of evaluating a system or component.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Testing More In CS430.
Software Verification and Validation
SOFTWARE TESTING OVERVIEW
Chapter 18 Maintaining Information Systems
Verification and Testing
Chapter 6: Design of Expert Systems
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction to Software Testing
Lecture 09:Software Testing
Baisc Of Software Testing
Software Verification, Validation, and Acceptance Testing
Test Cases, Test Suites and Test Case management systems
The Web Development Life Cycle
Presentation transcript:

CS351 © 2003 Ray S. Babcock Software Testing What is it?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing? How do you do testing?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing? How do you do testing? Why do you do testing?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing? How do you do testing? Why do you do testing? What is the results of doing testing ?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing? How do you do testing? Why do you do testing? What is the results of doing testing ? Deliverables?

CS351 © 2003 Ray S. Babcock Software Testing What is it? What is a good test? Pass? Fail? When do you do testing? Who should do testing? How do you do testing? Why do you do testing? What is the results of doing testing ? Deliverables? When do you stop testing?

CS351 © 2003 Ray S. Babcock What is testing? “Testing is a process of executing a program with the intent of finding an error.”

CS351 © 2003 Ray S. Babcock What is testing? “Testing is a process of executing a program with the intent of finding an error.” “A good test case is one that has a high probability of finding an as-yet- undiscovered error.”

CS351 © 2003 Ray S. Babcock What is testing? “Testing is a process of executing a program with the intent of finding an error.” “A good test case is one that has a high probability of finding an as-yet- undiscovered error.” “A successful test is one that uncovers an as-yet-undiscovered error.”

CS351 © 2003 Ray S. Babcock What is a good test? What we need here is an attitude adjustment! When we find errors, we often say “oh no!” When we find errors, we should say “oh yes!, we found it earlier rather than later.” There will always be one more bug.

CS351 © 2003 Ray S. Babcock About that term bug The term came from the old machine days when real bugs crawled into machines. Admiral Grace Hopper used the term when referring to a moth that crawled into the Eniac and fouled a relay. When using this term to refer to an error in a program, it implies that it somehow “CRAWLED IN FROM OUTSIDE”

CS351 © 2003 Ray S. Babcock Reality Check! YOU PLACED EVERY SINGLE BUG INTO YOUR CODE YOURSELF!

CS351 © 2003 Ray S. Babcock Reality Check! YOU PLACED EVERY SINGLE BUG INTO YOUR CODE YOURSELF! You designed it. You implemented it. And now you're surprised that you have to find it???

CS351 © 2003 Ray S. Babcock When do you do testing? In many life cycle models, there is a “testing phase”. This implies you don't do anything before this phase and that you are all done when the phase is over. Acutally we now think of testing across the entire life cycle. You are always thinking about testing.

CS351 © 2003 Ray S. Babcock When do you do testing? You can consider testing in every step of the project. ● Test an idea. ● As you analyze, consider testing. ● Consider how you will test each and every requirement. ● Test your design. ● Test your implementation (unit, integration, system, performance, stress) ● Test your documentation. ● Test your usability.

CS351 © 2003 Ray S. Babcock Who should do testing? There are two sides to doing your own testing? ● You know your code best so you can design test data quickly. ● You know your code best and often assume you have done it right. This often causes you to overlook the obvious errors.

CS351 © 2003 Ray S. Babcock Who should do testing? Some suggestions: ● Project Manager ● Software Engineer ● Testing Specialists

CS351 © 2003 Ray S. Babcock How do you do testing? Idea : pass it by others? Analysis : Have you looked at everything? Requirements : How will you verify that this requirement has been met by the software? Design : Design/Requirement matrix. Implementation : This is where we tend to concentrate most. Unit, Integration, System, Performance, Stress, Fail-Safe. Documentation : Review by normal users.

CS351 © 2003 Ray S. Babcock Test Plan A written document detailing how the testing for a product will be done. A dynamic document, constantly updated throughout the project. Used to keep track of adaptive and perfective maintenance after the project is delivered.

CS351 © 2003 Ray S. Babcock Why do you do testing? It is a myth to say “Testing assures that there are no errors in your code.” Testing CANNOT prove a program is error- free. I like the following way to describe it: “Testing raises your confidence that the program is performing correctly.”

CS351 © 2003 Ray S. Babcock Performing Correctly? This normally means MEETS REQUIREMENTS Verification : “Are we building the product right?” Validation : “Are we building the right product?”

CS351 © 2003 Ray S. Babcock What is the results of doing testing? You have more confidence that the program is working correctly. You have documentated all tests. You have developed test data sets and saved all test suites for future regressive testing. You have satisfied your customer by delivering what they wanted.

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct?

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO!

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO! When you run out of time?

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO! When you run out of time? NO!

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO! When you run out of time? NO! When you run out of money?

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO! When you run out of time? NO! When you run out of money? NO!

CS351 © 2003 Ray S. Babcock When do you stop testing? When you are satisfied that it is now completely correct? NO! When you run out of time? NO! When you run out of money? NO! An author suggests the following as an answer: “When the product is retired!”

CS351 © 2003 Ray S. Babcock Footnote 1 (to this testing introduction) You've heard me state Babcock's first rule: “NEVER DEMONSTRATE ANYTHING” I also have a rule related to software testing: “IF IT LOOKS LIKE IT'S WORKING, MAYBE IT IS” The “fire over there, looking over here” story.

CS351 © 2003 Ray S. Babcock Footnote 2 (to this testing introduction) Regression testing is the verification that the rest of the package still works when you change a small part of it. The “MIDAS data base” story.