CS223: Software Engineering Lecture 25: Software Testing.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Lecture 8: Testing, Verification and Validation
Ossi Taipale, Lappeenranta University of Technology
Chapter 4 Quality Assurance in Context
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Illinois Institute of Technology
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
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
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 1 Basic Concepts and Preliminaries
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Extreme Programming Software Development Written by Sanjay Kumar.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CPIS 357 Software Quality & Testing
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Quality Control Project Management Unit Credit Value : 4 Essential
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
This chapter is extracted from Sommerville’s slides. Text book chapter
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Chapter 3- BASIC CONCEPTS OF TESTING Why software can never be perfect The terms commonly used by software testers.
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.
Week # 4 Quality Assurance Software Quality Engineering 1.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
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.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
ISQB Software Testing Section Meeting 10 Dec 2012.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Software Testing Concepts João Pascoal Faria
Testing Tutorial 7.
CS223: Software Engineering
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Software Quality Engineering
Software Testing An Introduction.
Verification and Testing
Verification and Validation Overview
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Testing and Test-Driven Development CSC 4700 Software Engineering
BASIC DEFINITIONS Errors : An error is a mistake, misconception, or misunderstanding on the part of a software developer. In the category of developer.
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 Verification and Validation
Software Verification and Validation
CS310 Software Engineering Dr.Doaa Sami Khafaga
Software Verification and Validation
Chapter 7 Software Testing.
Presentation transcript:

CS223: Software Engineering Lecture 25: Software Testing

Recap UI Design rules and best practices

Objective After completing this lecture students will be able to o Write test cases of their software o Write unit test report of their software

Definition Software testing consists of the o dynamic verification that a program o provides expected behaviours on o a finite set of test cases, o suitably selected from the usually infinite execution domain

Explanation: Dynamic Testing always implies executing the program on selected inputs The input value alone is not always sufficient to specify a test Depending on the system state

Explanation: Expected It must be possible (although not always easy), to o Decide whether the observed outcomes of program testing are acceptable or not  the testing effort is useless. o The observed behavior may be checked against  User needs (commonly referred to as testing for validation),  Against a specification (testing for verification), or,  Against the anticipated behavior from implicit requirements or expectations

Explanation: Finite A complete test for all possible values may take a lot of time o A complete set of tests can generally be considered infinite Testing is conducted on a subset of all possible tests o Determined by risk and prioritization criteria. A trade-off between o Limited resources and schedules o Inherently unlimited test requirements

Explanation: Selected Proposed test techniques differ essentially in how the test set is selected Different selection criteria may yield vastly different degrees of effectiveness. How to identify the most suitable selection criterion under given conditions Risk analysis techniques and software engineering expertise are applied.

Software Testing Fundamentals Terminology Issues Relationships Test Levels Target Objective Test Techniques Experience Domain Code-based Fault-based Model-based Measure Program Test Process Practical Activities Tools

Role of Testing It plays an important role in achieving and assessing the quality of a software product Improve the quality of the products as we repeat a test–find defects–fix cycle during development Assess how good our system is when we perform system-level tests before releasing a product Two types of activities o Static analysis o Dynamic analysis

Failure, error, fault, defect Failure o A failure is said to occur whenever the external behavior of a system does not conform to that prescribed in the system specification. Error o An error is a state of the system. In the absence of any corrective action by the system, an error state could lead to a failure which would not be attributed to any event subsequent to the error. Fault o A fault is the adjudged cause of an error. o Defect

Objectives It does work o Programmer It does not work o Test engineers Reduce the risk of failure o Test engineers o Reduce failure rates Reduce the cost of testing o Test engineers o Judicial selection of fewer, effective test cases

Test case A test case is a simple pair of In stateless systems, test case design is easy In state-oriented systems

Expected outcome Outcome of program execution is a complex entity o Values produced by the program  Outputs for local observation  Outputs (messages) o State change  Program  Database o A sequence or set of values which must be interpreted together for the outcome to be valid

I’ve exhaustively tested the program !! There are no undiscovered faults at the end of the test phase Complete testing is near impossible o The domain of possible inputs of a program is too large o The design issues may be too complex to completely test o It may not be possible to create all possible execution environments

Central issue in testing Select a subset of the input domain to test a program Selection of the subset of the input domain must be done in a systematic and careful manner o Deduction is as accurate and complete as possible

Testing activities Pass, Fail, Inconclusive

Test levels

Regression Testing Performed throughout the life cycle of a system Performed whenever a component of the system is modified

Sources of information for test case selection Requirements and functional specifications o Intended behavior of the system Source code o Actual behavior of the system Input and output domains o Special care for input domain Operational profile o From the observed test results, infer the future reliability Fault model o Previously encountered faults

Fault model Error guessing o Assess the situation and guess where and what kinds of faults might exist o Design tests to specifically expose those kinds of faults Fault seeding o Known faults are injected into a program o Use of test suites Mutation Analysis o Similar to fault seeding o Fault simulation o Modify an incorrect program and turn it into a correct program

White-box and Black-box testing Based on the sources of information for test design White-box testing  structural testing o Primarily examines source code o Focus on control flow and data flow Black-box testing  Functional testing o Does not have access to the internal details o Test the part that is accessible outside the program o Concerned only with the functionality and the features found in the program’s specification

Test planning and design To get ready and organized for test execution Provides a framework, scope, details of resource needed, effort required, schedule of activities, and a budget During test plan o The system requirements are critically studied, o System features to be tested are thoroughly identified, o The objectives of test cases and the detailed behavior of test cases are defined

Thank you Next Lecture: Control Flow Testing