T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Configuration Management
Test process essentials Riitta Viitamäki,
Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Test Inventory A “successful” test effort may include: –Finding “bugs” –Ensuring the bugs are removed –Show that the system or parts of the system works.
Informatics 43 – April 30, What is a test case? An input to a system, and the correct output. An “input” may be complex. Example: – What is an input.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
Illinois Institute of Technology
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Testing Test Plans and Regression Testing. Programs need testing! Writing a program involves more than knowing the syntax and semantics of a language.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Terms: Test (Case) vs. Test Suite
System/Software Testing
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
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.
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
Evaluation of Safety Critical Software -- David L. Parnas, -- A. John van Schouwen, -- Shu Po Kwan -- June 1990 Presented By Zhuojing Li.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
TESTING.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Chapter 8: Systems analysis and design
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Validation Metrics. Metrics are Needed to Answer the Following Questions How much time is required to find bugs, fix them, and verify that they are fixed?
CMSC 345 Fall 2000 Unit Testing. The testing process.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
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 Workflow In the Unified Process and Agile/Scrum processes.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Testing Process By: M. Muzaffar Hameed.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
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.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
SENG521 (Fall SENG 521 Software Reliability & Testing Preparing for Test (Part 6a) Department of Electrical & Computer Engineering,
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
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.
REGRESSION TESTING Audrius Čėsna IFM-0/2. Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing.
 At the end of the class students should:  distinguish between data and information.  explain the characteristics and forms of Information Processing.
Testing More In CS430.
Software Testing.
Software engineering – 1
Chapter 13 & 14 Software Testing Strategies and Techniques
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Lecture 09:Software Testing
Informatics 43 – April 28, 2016.
CSE 1020:Software Development
System analysis and design
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL

T. E. Potok - University of Tennessee Testing

3 Software Engineering CS 594T. E. Potok - University of Tennessee Testing Objectives  To ensure that the final product works according to the requirements  and that the product works correctly in a wide variety of situations

4 Software Engineering CS 594T. E. Potok - University of Tennessee Validation  Ensuring that the product meets the initial requirements or contract  Demonstration may be required to validate that the software performs as expected – Performance requirements – Functional requirements – Usability requirements

5 Software Engineering CS 594T. E. Potok - University of Tennessee Methods  Black box  White box  Random  User centered  Regression

6 Software Engineering CS 594T. E. Potok - University of Tennessee Black Box  Treat the items to be tested as a black box  Concerned only about inputs and outputs  Easy test to perform – Provide an input set, compare the results against the know correct answers  May not exercise key branches of the code

7 Software Engineering CS 594T. E. Potok - University of Tennessee White Box  Test all of the possible paths within a section of code  Requires strong knowledge of the code, and great care in generating test input  The number of possible paths through a complex section of code can be very large  Very thorough test, may be impractical

8 Software Engineering CS 594T. E. Potok - University of Tennessee Random Testing  Randomly generate input, then validate that the output is correct  Easy test to perform  May not fully exercise the code

9 Software Engineering CS 594T. E. Potok - University of Tennessee User Centered  Determine what features and functions that most users will use  Test the software based on expected usage patterns  Will find most bugs a users will encounter  Will miss bugs found by more sophisticated users

10 Software Engineering CS 594T. E. Potok - University of Tennessee Regression Testing  Store up test cases from previous releases  Run these test for every new release, – New changes will not “break” older functions – The tests are well understood, and provide a good test of the over all system

11 Software Engineering CS 594T. E. Potok - University of Tennessee How much testing is required  Theoretically, there are a fixed number of errors in a section of software  Further, this number can be estimated given the size and complexity of the code  Testing this code can then be based on finding some percentage of the latent bugs in the system

12 Software Engineering CS 594T. E. Potok - University of Tennessee Error Classification  It is even possible to be able to classify the type of errors that will be found  If this is known, then the type of testing that is needed can be determined as well  For example, if performance errors are expected, then performance testing can be applied

13 Software Engineering CS 594T. E. Potok - University of Tennessee Testing Types  Many different types of testing – Unit – Functional – System – Usability – Performance

14 Software Engineering CS 594T. E. Potok - University of Tennessee Unit Testing  Verifying that a single module works correctly.  White box testing can be very effective, particularly for small modules  Testing is generally informal, often performed by the author of the code

15 Software Engineering CS 594T. E. Potok - University of Tennessee Function Testing  This involves testing several modules that make of part of the functionality of the system  White box testing can be used, but is often impractical  Black box, or random testing is often used  The testing is normally not done by the authors of the code

16 Software Engineering CS 594T. E. Potok - University of Tennessee System Testing  This involves testing the entire system  White box is usually impractical  Black box and random testing can be used  User centered testing can be quite effective  Automated testing procedures can be used as well

17 Software Engineering CS 594T. E. Potok - University of Tennessee Usability Tests  Difficult test to perform  Find collection of typical users  Video tape the user performing typical features of a product  Fix and adjust the system, then retest

18 Software Engineering CS 594T. E. Potok - University of Tennessee Performance Test  Record various performance characteristics of the system – Response time – CPU, Memory, and disk utilization  Based on various operations performed  Under a variety of expected computer and software loads

19 Software Engineering CS 594T. E. Potok - University of Tennessee Quality  What defines quality? – Error free? – Easy to use? – Wide functionality?  Can quality be too high?  When do you stop using a software package because of quality

20 Software Engineering CS 594T. E. Potok - University of Tennessee Testing Goals  Provide the minimum amount of testing that ensures maximum quality for the user  Testing little used features, or over testing other features is a waste of time  Removing every bug in a system will take a great deal of time, and money, even though a user may never experience these errors

21 Software Engineering CS 594T. E. Potok - University of Tennessee Mean Time to Failure  A typical measurement of quality if MTTF  A light bulb has a MTTF of many hours, and a known failure rate  Software may have a similar failure rate, but it is much harder to determine  In some cases these values are critical – Telecommunications, military, or space travel