TESTING FOR THE RELIABILITY OF A SOFTWARE SARAT CHANDRA YADAVALLI CSC 532 TERM PAPER.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

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,
SENG521 (Fall SENG 521 Software Reliability & Testing Operational Profiles (Part 5b) Department of Electrical & Computer Engineering,
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Quality Assurance Plan
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
CmpE 104 SOFTWARE STATISTICAL TOOLS & METHODS MEASURING & ESTIMATING SOFTWARE SIZE AND RESOURCE & SCHEDULE ESTIMATING.
Software Reliability Engineering
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
Overview Lesson 10,11 - Software Quality Assurance
Reliability and Software metrics Done by: Tayeb El Alaoui Software Engineering II Course.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
Software Testing and Quality Assurance
SE 450 Software Processes & Product Metrics Reliability Engineering.
1 Software Testing and Quality Assurance Lecture 37 – Software Quality Assurance.
Computers: Tools for an Information Age
The Future of Testing Chapter 21. Random testing Simply put, if testing is targeted at a particular area, it is because that area is either critical,
CSE 322: Software Reliability Engineering Topics covered: Course outline and schedule Introduction, Motivation and Basic Concepts.
Agent-Based Acceptability-Oriented Computing International Symposium on Software Reliability Engineering Fast Abstract by Shana Hyvat.
Testing Metrics Software Reliability
1 Case Study: Starting the Student Registration System Chapter 3.
1 paper I design and implementation of the aegis single-chip secure processor using physical random functions, isca’05 nuno alves 28/sep/06.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Software Testing and QA Theory and Practice (Chapter 15: Software Reliability) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Statistical Natural Language Processing. What is NLP?  Natural Language Processing (NLP), or Computational Linguistics, is concerned with theoretical.
Software Integration and Documenting
Software Project Management
Chapter 22. Software Reliability Engineering (SRE)
SENG521 (Fall SENG 521 Software Reliability & Testing Software Reliability Tools (Part 8a) Department of Electrical & Computer.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Software Design Processes and Management.
Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.
Commercial Database Applications Testing. Test Plan Testing Strategy Testing Planning Testing Design (covered in other modules) Unit Testing (covered.
1 Software Quality Engineering CS410 Class 5 Seven Basic Quality Tools.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
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.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Development of An ERROR ESTIMATE P M V Subbarao Professor Mechanical Engineering Department A Tolerance to Error Generates New Information….
Evaluation of Safety-Critical Software David L. Parnas, A.John van Schouwen, and Shu Po Kwan 1990 June CACM Wei Huang and Zhenxiao Yang.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Probability and Statistics Required!. 2 Review Outline  Connection to simulation.  Concepts to review.  Assess your understanding.  Addressing knowledge.
20 October 2006Workflow Optimization in Distributed Environments Dynamic Workflow Management Using Performance Data David W. Walker, Yan Huang, Omer F.
Software Measurement & Metrics
Ch. 1.  High-profile failures ◦ Therac 25 ◦ Denver Intl Airport ◦ Also, Patriot Missle.
Software Testing and Quality Assurance Software Quality Assurance 1.
LANGUAGE MODELS FOR RELEVANCE FEEDBACK Lee Won Hee.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
6.1 Inference for a Single Proportion  Statistical confidence  Confidence intervals  How confidence intervals behave.
O PTIMAL SERVICE TASK PARTITION AND DISTRIBUTION IN GRID SYSTEM WITH STAR TOPOLOGY G REGORY L EVITIN, Y UAN -S HUN D AI Adviser: Frank, Yeong-Sung Lin.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SENG521 (Fall SENG 521 Software Reliability & Testing Overview of Software Reliability Engineering Department of Electrical.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.
Software Engineering Lecture 8: Quality Assurance.
On Implementing CSPA Specifications for Editing and Imputation Services Donato Summa, Monica Scannapieco, Diego Zardetto, Istat, Italy Istituto Nazionale.
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.
18 May 2006CCGrid2006 Dynamic Workflow Management Using Performance Data Lican Huang, David W. Walker, Yan Huang, and Omer F. Rana Cardiff School of Computer.
Slide (Ch.22) 1 Tian: Software Quality Engineering Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian Chapter.
Hardware & Software Reliability
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
IEEE Std 1074: Standard for Software Lifecycle
Introduction to Testing Design Strategies – The Smarter Tester
Software Reliability Models.
Software Reliability Engineering
© Oxford University Press All rights reserved.
Presentation transcript:

TESTING FOR THE RELIABILITY OF A SOFTWARE SARAT CHANDRA YADAVALLI CSC 532 TERM PAPER

Software Reliability Engineering - Introduction Reliability for software is the probability of failure free operation of a computer programme in a specified environment for some specified interval of natural units or time. Reliability for software is the probability of failure free operation of a computer programme in a specified environment for some specified interval of natural units or time. Software reliability engineering is the standard that empowers the testers and developers to simultaneously - Software reliability engineering is the standard that empowers the testers and developers to simultaneously -  Ensure that product reliability meets user needs  Speed the product to market faster  Reduce product cost

Software Reliability Engineering Process Diagram 1.List Associated Systems 2. Develop Operational Profiles 3.Engineer “Just Right” Reliability 4. Prepare for Test 5.Execute Test 6.Guide Test Requirements and Architecture Design and Implementation Test

Developing Operation Profiles Developing operational profiles will give the information about how users will employ the product being built Developing operational profiles will give the information about how users will employ the product being built With the information given, both development and test can be made more realistic With the information given, both development and test can be made more realistic

Terminology Operation is a major system logical task, of short duration which returns control to the system when complete Operation is a major system logical task, of short duration which returns control to the system when complete Operational Profile (OP) is simply the set of operations and their probabilities of occurrence. Operational Profile (OP) is simply the set of operations and their probabilities of occurrence. OP can be represented in 2 ways: OP can be represented in 2 ways:  Tabular representation  Graphical representation

 Tabular Representation

 Graphical Representation

Methodology Identify the initiators of operations Identify the initiators of operations Choose between tabular or graphical representation Choose between tabular or graphical representation Create an operations list for each initiator and consolidate the results Create an operations list for each initiator and consolidate the results Determine the occurrence rates of the individual operations Determine the occurrence rates of the individual operations Determine the occurrence probabilities Determine the occurrence probabilities

Preparing for Test The operational profile information is applied to planning for efficient test. The operational profile information is applied to planning for efficient test. Testing is the process of executing a program with the intention of finding design errors in a given environment. Testing is the process of executing a program with the intention of finding design errors in a given environment. Testing can only prove the incorrectness of the software but not its correctness. Testing can only prove the incorrectness of the software but not its correctness.

Concepts Run is a specified instance of an operation. Run is a specified instance of an operation. A run is characterized by the operation and its input state A run is characterized by the operation and its input state Input variable can be either direct or indirect Input variable can be either direct or indirect A test case is the partial specification of a run through the naming of its direct input variables and their values. A test case is the partial specification of a run through the naming of its direct input variables and their values. A run involves the execution of a test case. A run involves the execution of a test case. Test procedure is a controller that sets up environmental conditions and that invokes randomly selected test cases at random times. Test procedure is a controller that sets up environmental conditions and that invokes randomly selected test cases at random times.

Direct and Indirect Input Variables for Process Fax Call Operation of Fone Follower

Procedure Preparing test cases – It can be done by simply recording in the field all the input variables needed to initiate the runs that make up the field execution of the software Preparing test cases – It can be done by simply recording in the field all the input variables needed to initiate the runs that make up the field execution of the software Preparing test procedures Preparing test procedures

Preparing test cases Estimating the number of new test cases needed for the current release Estimating the number of new test cases needed for the current release Allocating the number of new test cases among the systems to be tested Allocating the number of new test cases among the systems to be tested Allocating the number of new test cases for each system among its new operations Allocating the number of new test cases for each system among its new operations Specify the new test cases Specify the new test cases Adding the new test cases to the test cases from previous releases. Adding the new test cases to the test cases from previous releases.

Estimating the number of new test cases needed for the current release Two factors must be taken into account: Two factors must be taken into account:  Time  Cost Compute the number of test cases you have time to prepare Compute the number of test cases you have time to prepare Compute the number of test cases you can afford to prepare Compute the number of test cases you can afford to prepare Take the minimum of these as the number of test cases you will plan to prepare Take the minimum of these as the number of test cases you will plan to prepare

Allocating the number of new test cases for each system among its new operations Convert the graphical representation into tabular Convert the graphical representation into tabular Identify the rarely occurring critical new operations and determine how many test cases to preassign to each Identify the rarely occurring critical new operations and determine how many test cases to preassign to each Determine the allocation probabilities for the other new operations Determine the allocation probabilities for the other new operations Preassign one test case to each infrequent other new operations Preassign one test case to each infrequent other new operations Assign the remaining test cases to the remaining other new operations in accordance with the allocation probabilities Assign the remaining test cases to the remaining other new operations in accordance with the allocation probabilities

Allocating the number of new test cases among the systems to be tested Bulk of the test cases should be allocated to the product itself Bulk of the test cases should be allocated to the product itself Majority of test cases are allocated to the number of operations of the variation that occur and do not occur for the product Majority of test cases are allocated to the number of operations of the variation that occur and do not occur for the product Give particular weight to the differing operations that have high occurrence probabilities Give particular weight to the differing operations that have high occurrence probabilities

Allocation of Test cases to Operations of Fone Follower

Test cases Specification Select test cases within operations with equal probability Select test cases within operations with equal probability Prepare test scripts for the selected test cases Prepare test scripts for the selected test cases When invoked, the test cases must convey the operation they belong to and their direct input variables to the system under test When invoked, the test cases must convey the operation they belong to and their direct input variables to the system under test

Conclusion “A laudable standard for software reliability is Five 9’s - software which works % of the time” We have discussed - The procedure to identify the operational profiles used in defining the test cases. The procedure to identify the operational profiles used in defining the test cases. Procedure to prepare for test Procedure to prepare for test

References Text Book : Software Reliability Engineering – John D. Musa Text Book : Software Reliability Engineering – John D. Musa Lyu, M. (Editor) Handbook of Software Reliability Engineering, ISBN , McGraw-Hill, New York. Lyu, M. (Editor) Handbook of Software Reliability Engineering, ISBN , McGraw-Hill, New York. Tierney, J SRE at Microsoft. Keynote speech at 8th International Symposium On Software Reliability Engineering, November 1977, Albuquerque, NM. Tierney, J SRE at Microsoft. Keynote speech at 8th International Symposium On Software Reliability Engineering, November 1977, Albuquerque, NM. Challenges in Software Reliability and Testing - Philip J. Boland, Department of Statistics, National University of Ireland – Dublin. Challenges in Software Reliability and Testing - Philip J. Boland, Department of Statistics, National University of Ireland – Dublin. Y. K. Malaiya and J. Denton “ Module Size Distribution and Defect Density,” Proc. IEEE International Symposium on Software Reliability Engineering, Oct. 2000, pp Y. K. Malaiya and J. Denton “ Module Size Distribution and Defect Density,” Proc. IEEE International Symposium on Software Reliability Engineering, Oct. 2000, pp Module Size Distribution and Defect Density Module Size Distribution and Defect Density Operational Profile Specification, Test Case Generation, and Reliability Estimation for Modules - D.M. Woit, Queen’s University, February Operational Profile Specification, Test Case Generation, and Reliability Estimation for Modules - D.M. Woit, Queen’s University, February N. Li and Y.K. Malaiya “ROBUST: A Next Generation Software Reliability Engineering Tool” Proc. IEEE Int. Symp. on Software Reliability Engineering, pp , Oct N. Li and Y.K. Malaiya “ROBUST: A Next Generation Software Reliability Engineering Tool” Proc. IEEE Int. Symp. on Software Reliability Engineering, pp , Oct Predicting Software Reliability from Testing Taking into Account Other Knowledge about a Program - Antonia Bertolino (IStituto di Elaborazione della Informazione del CNR, Pisa,Italy), Lorenzo Strigini (Centre for Software Reliability, City University, London). Predicting Software Reliability from Testing Taking into Account Other Knowledge about a Program - Antonia Bertolino (IStituto di Elaborazione della Informazione del CNR, Pisa,Italy), Lorenzo Strigini (Centre for Software Reliability, City University, London).