Lecture 11 Testing and Debugging SFDV2002 - Principles of Information Systems.

Slides:



Advertisements
Similar presentations
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Advertisements

Unit-V testing strategies and tactics.
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.
Test process essentials Riitta Viitamäki,
Lecture 8: Testing, Verification and Validation
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 Software Engineering Lecture 11 Software Testing.
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.
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
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
Software Testing & Strategies
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
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 TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Introduction Telerik Software Academy Software Quality Assurance.
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 Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
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.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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.
Software Reviews & testing Software Reviews & testing An Overview.
Software Testing Testing types Testing strategy Testing principles.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Chapter SIX Implementation, Testing and Pragmatics Making it a reality.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
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 TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
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.
Dynamic Testing.
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.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
Software Testing Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.
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.
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.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Tutorial 7.
Software Testing.
Rekayasa Perangkat Lunak Part-13
Software Testing Techniques
Verification and Testing
Verification and Validation Overview
Chapter 13 & 14 Software Testing Strategies and Techniques
Introduction to Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Lecture 11 Testing and Debugging SFDV Principles of Information Systems

2 Recap of the Implementation phase  Hardware Acquisition  Software Acquisition  Make or buy decision  Build: Database, programming and user interface  User preparation  Documentation  Ongoing training and user support  Deployment  Site preparation  Data preparation  Installation and start-up  Testing and quality assurance  User Acceptance

3

4 Overview  Verification versus Validation  Insuring quality software  Reviewing software  Testing software  Debugging  Tips and Strategies  Techniques

5 Verification versus Validation  Verification:  “Are we building the product right?” Checking that the system meets its specified functional and non-functional requirements.  Validation:  “Are we building the right product?”  checking that the software meets the expectations of the customer.  Techniques  Reviews/Peer reviews  Testing - “The process of executing a program with the intent of finding errors” [Source: Boehm, 1979]

6 Reviews  Reviews:  Peers looking at all elements of the system/project searching for problems  Types of reviews  Managerial  Technical  Purpose of reviews, in particular technical reviews  Types of technical reviews  Walkthrough  Code readings  Inspections Objectives of Technical Reviews (Pressman) To uncover errors in function, logic, or implementation for any representation of the software To verify that the software under review meets it requirements To ensure that the software has been represented according to predefined standards To achieve software that is developed in a uniform manner To make projects more manageable

7 Walkthroughs  “… a static analysis technique in which a designer or programmer leads members of the development team and other interested parties through a software product, the participants ask questions and make comments about possible errors, violation of development standards, and other problems” [Source: Stair and Reynolds, 2003] [Source: IEEE., 1997] Participants Developer Implementer Manager responsible for the product Representative from SQA group

8 Testing vs. Debugging  Software testing  “… is a process that can be systematically planned and specified. Test case design can be conducted, a strategy can be defined, and results can be evaluated against prescribed expectations”  Debugging  “… occurs as a consequence of successful testing. That is, when a test case uncovers an error, debugging is the process that results in the removal of the error” [Pressman, 1997]

9 Testing Definitions  Defect, failures and errors (observe failure caused by defect)  Test cases  Statement (event), input, and output  Test suite  Collection of test cases  Defect testing – expose the defect  Functional testing - focusing on result  Structural testing – focusing on how the result is produced

10 Defect and failure Defect: is the result of an error made in the systems construction Failure: is an instance of an defect observed by the user (“symptom”) Errors: “so we observe failures, which are caused by defects, which result from errors” Test cases Input to the test Expected output from the system Statement of what is being tested Example: Statement (squaring function) input 2 expected output 4 Statement (function: getting the first name from the whole name) input: full name “Lance Elder” expected output: first name “Lance” Use test cases to test the system Test suite Is a collection of test cases (both inputs and outputs) Defect testing The goal of defect testing is to expose the latent defects on a software system before the system is delivered A successful defect test is when the system performs incorrectly and hence exposes a defect Functional testing focusing on the result Structural testing focusing on how the result is produced

11 Structural Testing  Also known as white-box, glass-box or clear-box testing  Test cases can derived for:  Operators, variables, constants, etc.  Statements  Branches  Paths  Functions  Test can device that All independent paths within the module have been exercised at least once (path testing) Exercise all logical decisions on their true and false sides Execute all loops at their boundaries and within their operational bounds Exercise internal data structures to assure their validity

12 Functional Testing  Also known as black-box testing “functional” testing because the tester is only concerned with the functionality and not the implementation of the software Attempts to find the following categories of errors: Incorrect or missing functional Interface errors other external elements.

13 Other Testing Issues  Management issues  Testing prioritisation  Testing cost  Developers  Other forms of testing  Stress (volume) Testing - Test to see if a system performs under load  Regression Testing - Rechecking to uncover bugs introduced in the testing/debugging process  Usability testing - for measuring how well people can actually use something

14 Debugging Techniques  Commenting out suspicious lines of code  Best to minimize to small sections  Uncomment one section before commenting out another  Displaying messages  MessageBox.Show()  MsgBox()  Debugger  When a program crashes – a debugger helps the developer to locate the problem

15 Debugging Techniques Examples Dim x, y As Integer x = 0 x = x + 1 ‘x = y * 10 ‘y = y * (x + 2) Comment MethodMessage Box Method Dim x, y As Integer x = 0 MsgBox(x) x = X + 1 MsgBox(x) x = y * 10 MsgBox(x & space(1) & y) y = y * (x + 2) MsgBox(x & space(1) & y)

16 References  Sommerville, Software Engineering, 7 th Edition, Addison Wesley, 2004  Stazinger, et al., Systems Analysis and Design in a changing world, 4 th Edition, Thomson, 2007  Pressman, Software Engineering: A Practitioner’s Approach, 4 th Edition, 1997  Stair and Reynolds, Principles of Information Systems, 7 th Edition, 2006  Sprague, Microsoft Visual Basic.NET: Introduction to Programming, 2 nd Edition, 2003   Note : End ot Tutorial 4 & Practical Sessions 5