Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.

Slides:



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

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Illinois Institute of Technology
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Outline Types of errors Component Testing Testing Strategy
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Types and Techniques of Software Testing
Terms: Test (Case) vs. Test Suite
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Testing Chapter 11. Dealing with Errors Verification: –Makes assumptions –Doesn’t always deal with real environment Testing (this lecture) –Testing is.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
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.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Testing Sudipto Ghosh CS 406 Fall 99(Also used later) November 2, 1999.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
What is Software Testing? And Why is it So Hard J. Whittaker paper (IEEE Software – Jan/Feb 2000) Summarized by F. Tsui.
Part III: Execution – Based Verification and Validation
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
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.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
Neil Ghani Software testing. 2 Introduction In a perfect world all programs fully verified testing thus redundant Back in the real.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
(1) A beginners guide to testing Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Rekayasa Perangkat Lunak Sesi 14 Software Testing.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Introduction to Software Testing Maili Markvardt.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Testing Integral part of the software development process.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Software Engineering (CSI 321)
CSC 480 Software Engineering
Software Testing.
Chapter 9, Testing.
Verification and Testing
Software engineering – 1
Introduction to Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Software testing.
CS240: Advanced Programming Concepts
CS410 – Software Engineering Lecture #11: Testing II
Presentation transcript:

Software Testing

Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing

Definition of Software Testing Software testing is the process of executing a software system to determine whether it matches its specification and executes in its intended environment.

“Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence” [Dijkstra, 1972]

Why Test? Q: If all software is released to customers with faults, why should we spend so much time, effort, and money on testing?

Cost of Delaying the Release of a Software Product Timing is another important factor to consider. New products: The first to the market often sells better than superior products that are released later.

Beta Testing Customers test for free! Seems to give you test cases representative of customer use. Helps to determine what is most important to the customers. Can do more configuration (environment) testing than in your testing lab.

Problems with Beta Testing Most beta testers are “techies” who have a higher tolerance of bugs. They do not represent the average customer. Beta testers usually won’t report: usability problems, bugs they don’t understand and bugs that seem obvious. Takes much more time and effort to handle a user reported bug.

Cutting Testing Costs can Increase other Costs Customer support can be very expensive. Less bugs = less calls. Customers will look for more reliable solutions. Software organizations must perform cost benefit analysis’ to determine how much to spend on testing.

Problems with Testing Since it is impossible to find every fault in a software system, bugs will be found by customers after the product is released.

Another Problem Testing done almost entirely by untrained co- ops. Testers were responsible for creating black- box test plans without being given formal specifications. Testers were not provided with tools to automate test plans. In many software companies, testers are ill- equipped to test software. For example: My last co-op firm (which will remain unnamed).

Reasons that Bugs Escape Testing User executed untested code. User executed statements in a different order than was tested. User entered an untested combination of inputs. User’s operating environment was not tested.

Why Can’t Every Bug be Found? Too many possible paths. Too many possible inputs. Too many possible user environments.

Too Many Possible Paths

Too Many Possible Inputs Programs take input in a variety of ways: mouse, keyboard, and other devices. Must test Valid and Invalid inputs. Most importantly, there are an infinite amount of sequences of inputs to be tested.

Too Many Possible User Environments Difficult to replicate the user’s combination of hardware, peripherals, OS, and applications. Impossible to replicate a thousand-node network to test networking software.

How is Testing Done

Phases of the Software Process

Why No Testing Phase? Testing must be done at every phase. Testing of a phase must be build upon and checked against the results of the previous phase. Non-execution based testing is done in early phases (before executable code is produced). Execution and non-execution based testing can be done in later phases.

Nonexecution-Based Testing Walkthroughs Inspections Walkthroughs are shorter and more informal than inspections. Goal of both is to record faults, not to correct them.

Execution-Based Testing Utility Reliability Robustness Performance Correctness

Black-Box / White-Box Testing Black-box tests are driven by the program’s specification White-box tests are driven by the program’s implementation Specification Program Black- box tests White-box tests

Test Automation If a manual test costs $X to run the first time, it will cost $X to run every time thereafter. An automated test can cost 3 to 30 times $X the first time, but will cost about $0 after that.

Any Questions?

Too Many Possible Paths There are 5 paths from A to X without passing through the loop. There are 5 20 paths from A to X after passing through the loop 20 times. There are … = 100 trillion possible paths in this program. If you could test a path per second it would take more than 3 million years!

Black Box Testing Checks that the product conforms to specifications Cannot determine how much code has been tested Program Omissions detected by black-box tests

White Box Testing Allows tester to be sure every statement has been tested. Difficult to discover missing functionality. Commissions detected by White-box tests Program