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.

Slides:



Advertisements
Similar presentations
Testing and Quality Assurance
Advertisements

CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Illinois Institute of Technology
Testing Team exercise Have each team member contribute answers: –Do you test your code? If no, why not? If yes: When? How? How often? –What is your team’s.
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.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Testing Prasad G.
Equivalence Partitioning Identify the inputs, behaviors, or other factors that you want to test based on the functionality and specifications Group these.
Introduction to Software Testing
Software Testing & Strategies
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Pfleeger and Atlee, Software Engineering: Theory and Practice CS499 Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee 4 th Edition.
Chapter 13 & 14 Software Testing Strategies and Techniques
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
Test Design Techniques
©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.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
System/Software Testing
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
CompSci 230 Software Design and Construction
Chapter 9 Testing the System. Chapter 9  Function testing  Performance testing  Acceptance testing  Installation testing  Test documentation  Testing.
Object-Oriented Software Engineering, Ch. 9
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Unit 7 Chapter 8 Testing the Programs. Unit 7 Requirements Read Chapters 8 and 9 Respond to the Unit 7 Discussion Board (25 points) Attend seminar/Take.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 SOFTWARE TESTING Presented By Abhilash.S  What is Software Testing?  Fundamentals of software Testing Error/Mistake? Defect/Bug/Fault? Failure? 2.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
LECTURE 19 23/11/15 Software Quality and Testing.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
TESTING (S,S,AND A,B) By KARTHIKEYAN KANDASAMY. TESTING Scenario testing – 1.System & 2. Usecase Defect bash System o Functional and non functional testing.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
System Testing 12/09. Hierarchy of Testing Testing Program Testing Top Down Bottom Up Integration TestingUnit Testing System Testing Big Bang Sandwich.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
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.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
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.
Testing throughout Lifecycle Ljudmilla Karu. Verification and validation (V&V) Verification is defined as the process of evaluating a system or component.
Software Testing Strategies for building test group
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing the System.
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak Part-13
SOFTWARE TESTING OVERVIEW
Chapter 9, Testing.
Chapter 13 & 14 Software Testing Strategies and Techniques
Applied Software Implementation & Testing
Introduction to Software Testing
Lecture 09:Software Testing
Chapter 10 – Software Testing
Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

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 domain, against the expected behavior

Testing Fundamentals  Testing is the one step in software engineering process that could be viewed as destructive rather than constructive. A successful test is one that breaks the software.  A successful test is one that uncovers an as yet undiscovered defect.  Testing can not show the absence of defects, it can only show that software defects are present.  For most software exhaustive testing is not possible.

Testing  Unit testing White-box Code walkthroughs and inspections  Integration testing Bottom-up Top-down Sandwich Big Bang  Functional testing (black-box)  Performance testing  Acceptance testing  Installation testing

System testing  Functional testing  Performance testing  Acceptance testing  Installation testing

System Testing Process  Functional testing: does the integrated system perform as promised by the requirements specification?  Performance testing: are the non- functional requirements met?

Functional Testing  Test cases derived from requirements specification document Black box testing Independent testers Test both valid and invalid input and the success of the test is determined by the produced output  Equivalence partitioning Boundary values

Equivalence partitioning  Reduces the number of test cases to a necessary minimum and select the right test cases to cover all possible scenarios  Example: method accepts an int value for month (1..12) as a parameter

Performance Testing  Stress tests  Volume tests  Recovery tests  Security tests  Timing tests  Environmental tests  Quality tests  Maintenance tests  Documentation tests  Human factors (usability) tests

Acceptance Tests  Enable the customers and users to determine if the built system meets their needs and expectations  Written, conducted, and evaluated by the customers

Types of Acceptance Tests  Pilot test: install on experimental basis  Alpha test: in-house test  Beta test: customer pilot  Parallel testing: new system operates in parallel with old system

Installation test  Does the system run at the customer site(s)?

System Testing

Pop quiz  How does system testing differ from unit and integration testing?  How does unit testing differ from integration testing?

In a method, a variable did not get initialized properly. Which type of testing would most likely expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing

A gas pump system is supposed to allow the user to choose whether or not a receipt is printed, but the print function has not been implemented. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing

A configuration file used by the reporting subsystem is not placed in the correct directory in the customer's environment. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Function testing D. Performance testing E. Acceptance testing F. Installation testing

The customer is unhappy with the number of screens that must be traversed before getting to the parts list screen, a screen accessed frequently when using the system. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Function testing D. Performance testing E. Acceptance testing F. Installation testing

Short answer question  What is the difference between verification and validation testing?

Test Documentation  Test plan: describes system and plan for testing all functions and characteristics  Test case specification: details each test and defines criteria for evaluating each feature  Test incident report: results of each test  Test report summary: lists all failures from the tests that need to be investigated

Test Plan (part of 480 QA plan)  Define the subsystems to be tested (and not tested)  Describe the process to follow for unit, integration, system, and acceptance testing  List the test cases  Plan the test schedule

Test Documentation

Defect Tracking Form

Regression Testing  Identifies new faults that may have been introduced as current ones are being corrected  Verifies that a new version or release still performs the same functions in the same manner as an older version or release

Quality Assurance concerns  Software reliability: operating without failure under given condition for a given time interval  Software availability: operating successfully according to specification at a given point in time  Software maintainability: for a given condition of use, a maintenance activity can be carried out within stated time interval, procedures and resources

Testing Safety-Critical Systems  Recognize that testing cannot remove all faults or risks  Assume that every mistake users can make will be made Do not assume that low-probability, high- impact events will not happen  Emphasize requirements definition, testing, code and specification reviews, and configuration control Cleanroom testing

Different Levels of Failure Severity  Catastrophic: causes death or system loss  Critical: causes severe injury or major system damage  Marginal: causes minor injury or minor system damage  Minor: causes no injury or system damage

One-minute quiz  What is meant by regression testing?  Is regression testing used for verification or validation?