Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Test process essentials Riitta Viitamäki,
Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Essence and Accident Inherent Difficulties –Complexity –Conformity.
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
Software Testing and Quality Assurance
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
The Basics of Software Testing
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Outline Types of errors Component Testing Testing Strategy
Introduction to Software Testing
Verification and Validation CIS 376 Bruce R. Maxim UM-Dearborn.
1 TCSS 360, Spring 2005 Lecture Notes Testing Relevant Reading: Object-Oriented Software Engineering, Ch. 9 B. Bruegge, A. Dutoit.
Test Design Techniques
Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
System/Software Testing
March 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #15 Tuesday, March 13, 2001.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CS4311 Spring 2011 Verification & Validation Dr. Guoqiang Hu Department of Computer Science UTEP.
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.
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.
Instructor: Peter Clarke
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Introduction to Software Testing
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Introduction to Software Engineering Lecture 1.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Verification and Validation Assuring that a software system meets a user's needs.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11, Testing.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 CSE 403 Testing Reading: Code Complete, Ch. 22 (McConnell) Object-Oriented Software Engineering, Ch. 9 (B. Bruegge, A. Dutoit) These lecture slides are.
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Workshop on Integrating Software Testing into Programming Courses (WISTPC14:2) Friday July 18, 2014 Introduction to Software Testing.
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.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
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.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Testing Tutorial 7.
Chapter 9, Testing.
Verification and Testing
IEEE Std 1074: Standard for Software Lifecycle
Verification and Validation Overview
Verification & Validation
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Software testing strategies 2
Lecture 09:Software Testing
Verification and Validation Unit 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.
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17

CEN 4010 Class /172 Overview of Testing - Terminology Software testing is the process of operating software under specified conditions, observing or recording the results and making an evaluation of some aspect of the software. Software – all artifacts generated during the development process. (IEEE/ANSI std )

CEN 4010 Class /173 Terminology cont Software reliability is the probability that a s/w system will not cause the failure of the system for specified time under specified conditions (IEEE Std ). Failure – is the manifested inability of a system or component to perform a required function within specified limits, i.e., incorrect output or abnormal termination of a program. Fault (defect or bug) – is the mechanical or algorithmic cause of a failure. Error – a human action that produces a software fault. (Binder 2000)

CEN 4010 Class /174 Terminology cont Test case – is a set of inputs and expected results that exercises a component with the purpose of causing failures and detecting faults. Test stub – a partial implementation of a component on which the tested component depends. Test driver – is a partial implementation of a component that depends on the tested component. i.e., a test driver simulates the tested component’s environment.

CEN 4010 Class /175 Software Reliability Techniques There are many techniques for increasing the reliability of a software system: –Fault avoidance –Fault detection –Fault tolerance

CEN 4010 Class /176 Fault Avoidance Techniques Fault avoidance techniques try to detect faults statically i.e., without relying on the execution of system models, in particular source code. Fault Avoidance Techniques: 1.Development methodologies 2.Configuration management 3.Verification techniques

CEN 4010 Class /177 Fault Avoidance Techniques cont 1.Development methodologies –unambiguous representation of requirements, –the use of data abstraction and data encapsulation, –minimizing the couple between subsystems and maximizing cohesion, –the early definition of subsystem interfaces, –capture of rationale for maintenance activities. Traceability of the use case model i.e., the use case driven approach to software development.

CEN 4010 Class /178 Fault Avoidance Techniques cont 2.Configuration management –Avoids faults caused by undisciplined change in the system models. 3.Verification –Attempts to find faults before any execution of the system. – Not in a mature enough state that it can be applied to assure the quality of large complex systems. –Assumes requirements are correct - used to create pre- and post-conditions

CEN 4010 Class /179 Fault Avoidance Techniques cont –Verifies an operation by showing that if the precondition is true before the operation and postcondition is true after the operation then the operation is correct. –Sometimes it is hard to correctly state the pre- and post-conditions.

CEN 4010 Class /1710 Fault Detection Techniques Fault detection techniques e.g., debugging and testing, are used during the development process to identify erroneous states and find the underlying faults before releasing the system. Fault Detection Techniques: 1.Reviews 2.Testing 3.Debugging

CEN 4010 Class /1711 Fault Detection Techniques cont 1.Reviews –Manual inspection of parts of all aspects of the system without actually executing the system. –Walkthrough: developer informally presents the API, the code and associated documentation of the component to the review team. –Inspection is a formal presentation of a walkthrough by a review team, not the developer.

CEN 4010 Class /1712 Fault Detection Techniques cont 2.Testing –A fault detection technique that tries to create failures or errors in a planned way. Note a successful test is one that identifies errors i.e., testing demonstrates the presence of errors not their absence. –The characteristics of a good test model is that it contains test cases that identify errors.

CEN 4010 Class /1713 Fault Detection Techniques cont –Testing Activities: Test Planning allocates resources and schedules the testing activity. Note this activity should occur early in the development phase so that sufficient time and skill is dedicated to the testing activity. Usability testing tries to find faults in the user interface design of the system. Unit testing tries to find faults in participating objects and/or subsystems with respect to (w.r.t.) the use cases from the use case model.

CEN 4010 Class /1714 Fault Detection Techniques cont –Testing Activities: Integration testing tries to find faults when testing the individually tested components e.g.,, testing subsystems. This is driven by the subsystem decomposition in the DD and SRD. System testing tests all the components together, seen as a single system to identify errors w.r.t. the scenarios from the problem statement and the goals in the SRD and DD.

CEN 4010 Class /1715 Fault Detection Techniques cont –Types of System testing: Functional testing test the requirements from the SRD, and if available from the user manual. Performance testing checks nonfunctional requirements and additional goals form the DD. Acceptance testing and installation testing check the requirements against the project agreement (SRD) and is done by the client.

CEN 4010 Class /1716 Fault Tolerance Techniques Fault tolerance techniques assume that a system can be released with faults and that system failures can be dealt with by recovering from them at runtime. Allows a system to recover from failure of a component by passing the erroneous state information back to the calling components, assuming one of them knows how to handle it.

CEN 4010 Class /1717 Fault Tolerance Techniques cont Fault Tolerance Techniques: –Modular redundancy in h/w e.g. 5 onboard computers in shuttle. –N-version programming – same spec. implemented by different teams. –Recovery blocks – each block includes a test code and alternative code.

CEN 4010 Class /1718 Testing Concepts Test Case components: 1.Name – identifies the test case, it is a good idea to derive the name from the requirement being tested. E.g., SSLS01_Test 1 2.Purpose – states the purpose of the test and relates it to the requirement (or scenario). 3.Test set up – describe the h/w and s/w and environment required for a successful test. 4.Input – description of the input data or commands. 5.Expected output (or Oracle) – expected test results against which the output of the test is compared. 6.Actual output (or log) – output produced by the test.

CEN 4010 Class /1719 Testing Concepts cont Note if the expected output and actual output differ then a application failure has been detected. We say that the test has revealed a bug. Debugging is the work required to diagnose and correct a bug. Note debugging is not testing. Debugging typically occurs after a failure has been observed or when a developer identifies a fault by inspection or automatic code analysis.

CEN 4010 Class /1720 Testing Concepts cont Note: if you submit the code for your project that is not bug-free it should be highlighted in the documentation for the test cases. You should explain the discrepancies. Test cases are classified depending on which aspect of the system model is tested: –Blackbox (specification-based or functional) tests focus on the input/output behavior (or functionality) of the component. Tests do not deal with the internal aspects of the component nor with the behavior or the structure of the components.

CEN 4010 Class /1721 Testing Concepts cont –Whitebox (structural or implementation-based) tests focus on the internal structure of the component. That is, test cases are constructed based on the code that implements the software. A correction is a change to a component whose purpose is to repair a fault. Regression testing includes the re-execution of prior tests after a change, this ensures that the functionality that worked before the change has not been affected.

CEN 4010 Class /1722 Homework Write a paragraph describing each of the following unit testing techniques: 1.boundary testing, 2.path testing, 3.state-based testing, 4.data flow testing, 5.branch coverage testing, Provide one example for each using data from your project. For each technique identify if it is a specification- based or implementation-based testing technique.