By Ian Jackman Davit Stepanyan.  User executed untested code.  The order in which statements were meant to be executed are different than the order.

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,
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Mining Specifications Glenn Ammons, Dept. Computer Science University of Wisconsin Rastislav Bodik, Computer Science Division University of California,
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.
Programming Types of Testing.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Software Testing and Quality Assurance
CS CS 5150 Software Engineering Lecture 22 Reliability 2.
1 CSE1301 Computer Programming: Lecture 15 Flowcharts and Debugging.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 CSE1301 Computer Programming: Lecture 15 Flowcharts, Testing and Debugging.
A High-Level Model For Software Development
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 CSc Senior Project Software Testing. 2 Preface “The amount of required study of testing techniques is trivial – a few hours over the course of.
Software Development Unit 6.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Terms: Test (Case) vs. Test Suite
Introduction to High-Level Language Programming
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.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
TESTING.
UNIT 3 TEMPLATE AND EXCEPTION HANDLING. Introduction  Program errors are also referred to as program bugs.  A C program may have one or more of four.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
What is Software Testing? And Why is it So Hard J. Whittaker paper (IEEE Software – Jan/Feb 2000) Summarized by F. Tsui.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
10 The traditional approach to design Hisham Alkhawar.
1 Software Reliability Assurance for Real-time Systems Joel Henry, Ph.D. University of Montana NASA Software Assurance Symposium September 4, 2002.
TM Copyright © 2009 NMQA Ltd. Behaviour Driven Testing with.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Installing Java on a Home machine For Windows Users: Download/Install: Go to downloads html.
Controlling Program Flow with Decision Structures.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
1 CSE1301 Computer Programming: Lecture 16 Flow Diagrams and Debugging.
Microsoft Visual Basic 2012: Reloaded Fifth Edition Chapter One An Introduction to Visual Basic 2012.
MUTACINIS TESTAVIMAS Benediktas Knispelis, IFM-2/2 Mutation testing.
Topic 2: Hardware and Software
Installing Java on a Home machine
Collision Theory and Logic
Development Environment
Regression Testing with its types
Software Testing.
Learning to Program D is for Digital.
Collision Theory and Logic
Types of Testing Visit to more Learning Resources.
Installing Java on a Home machine
ARTIFICIAL INTELLIGENCE IN SOFTWARE TESTING
CSCI1600: Embedded and Real Time Software
Software Engineering Lecture #13.
Coding Concepts (Basics)
BugHint: A Visual Debugger Based on Graph Mining
Whitebox Testing.
CSE 1020:Software Development
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 10: Testing and Quality Assurance
Presentation transcript:

By Ian Jackman Davit Stepanyan

 User executed untested code.  The order in which statements were meant to be executed are different than the order used during testing.  The user applied a combination of untested input values.  The user’s operating environment was never tested.

Software testers must consider the software and the function it computes, the inputs and how they can be combined, in the environment in which the software will operate. However, this is easier said then done. Even the most experienced coder will have problems or the simplest software will have issues.

 Modeling the software’s environment  Selecting test scenarios  Running and evaluating test scenarios  Measuring testing progress

Identify and simulate the interfaces that a software system uses and enumerate the inputs that can cross each interface. The four common interfaces in a software environment.  Human Interfaces  Software Interfaces  File System Interfaces  Communication Interfaces

 User interaction that falls outside the scope of software testing. Considerations:  How do we select values for variable input?  How do we sequence inputs?

Most often used for selecting single values for variables at or around boundaries. Ex: Test minimum, maximum, and zero values. What about choosing values for multiple variables processed simultaneously?? Consider cross product value combinations.

 Treat each physical input and abstract event as symbols in a alphabet.  Create a model of that language. Most common models are regular expressions and grammars. Least common are stochastic processes and genetic algorithms.

Text editor example We can represent legal uses of the file selection dialog in, for example, a text editor with the regular expression: Filemenu.Open filename* (ClickOpen | ClickCancel)

 Typical use scenarios  Tests for each source statement  Tests for each branching structure  Tests for each data structure  Fault seeding  Discrimination criterion/random inputs

 Manual testing is expansive  Automated testing  Simulating environment  Expected output is correct  Formalism  Embedded test code

 Fix only the problem  Fail to fix the problem  Fix the problem OR break something else  Fail to fix the problem AND break something else  Takes time away from testing new code

 Number of inputs  Percentage of tested code  Number of starting the system  Number of terminating the system  Is finding many bugs good news???

 Testability  Low testability = more tests  Low testability = more time  Low testability = more testing money  Reliability  Time before the system fails  Cost of maintenance  Smartest people for testing  Appropriate tools and training  Listen when tester talks

 Test scenarios  Evaluate scenarios  Regression testing  Test measuring  Issues

Thank you for listening