Software Testing Background Reading: –Ron Patton, Software Testing, 2nd ed., 2006. Chapter 1 –Daniel Michaels and Andy Pasztor, “Incidents Prompt New Scrutiny.

Slides:



Advertisements
Similar presentations
SCRATCH Lesson Two – Interactive Concepts Using Sensing, Operators, and Variables.
Advertisements

Driving in Urban Traffic
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Learning from failure Mahabubul Alam CS/SE 6361, Fall 2014  Term Paper Presentation – I  The University of Texas at Dallas Asiana Airlines #214.
A+ Guide to Managing & Maintaining Your PC, 8th Edition
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Gimli Glider Incident Investigation By Lee Xuan Hong.
1 Basic Definitions: Testing What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults.
PRJ270: Essentials of Rational Unified Process
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 8: Post-Project Analysis.
1 SWE Introduction to Software Engineering Lecture 28 – Introduction to Software Testing.
University of Illinois at Urbana-Champaign 1 Complexity and Stability in Modern Avionics Lui Sha, October 3, 2006.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
SM3121 Software Technology Mark Green School of Creative Media.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Best Practices of Software Engineering.
Flight 370 Missing By: Ashlee LeCheminant Government Per. 1.
Safety By Design Flight Certification AE 6362 Airbus Derivative Team Project Dr. Daniel P. Schrage Course Instructor.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
USS Yorktown (1998) A crew member of the guided-missile cruiser USS Yorktown mistakenly entered a zero for a data value, which resulted in a division by.
第 0 讲 前言 参考:无 自我介绍 姓名: 王顶 手机: : Blog :
Software Testing: Introduction From Software Testing, by Ron Patton Akram Shokri.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
Crew Resource Management LT Andre Towner U.S. Coast Guard.
Faye Business Systems Group presents: The Top 10 Reasons Why CRM Implementations Fail.
AVAT11001: Course Outline Aircraft and Terminology
Software Development Best Practices
By Anthony W. Hill & Course Technology1 Common End User Problems.
The Basic Input/Output System Unit objectives: Access the BIOS setup utility, change hardware configuration values, and research BIOS updates Explain the.
Lecture 13: Broader Engineering Perspectives EEN 112: Introduction to Electrical and Computer Engineering Professor Eric Rozier, 4/8/13.
Chapter 7 The Ethnic Theory of Plane Crashes Patrick Farrell, Nick Miller Raegan Kobbe, Xavier Munoz.
Introduction to Software Testing
MCS 270 Spring 2014 Object-Oriented Software Development.
Design Process 중앙대학교 전자전기공학부. Design for Electrical and Computer Engineers 2. Design Process  Engineering : Problem solving through specialized scientific.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Unit 2 (task 28) In this PowerPoint I will tell you about 7 important IT job roles and if a candidate might want one what he would have to do to get one.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
Software Process Or how to make strength productive Tools Requirements Management Visual Modeling Test coverage and metrics Change Management Requirements.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
22-January-2003cse FunctionalSpecs © 2003 University of Washington1 Functional Specs CSE 403, Winter 2003 Software Engineering
Software Testing and Quality Assurance Motivation and Review of Software Verification & Validation 1.
Software Design. A well-known phenomenon You will learn…. –Thinking "object oriented“ –Define requirements and analyze the problem domain. –Design of.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Principles of Software Engineering: Why Study Software Engineering? COSI 120b, Spring 2005.
Crew Resources Management Lecture 7: Workload Management.
It is the fuel of modern life Business are run Government rule Scientists Industries Education However, building and maintaining software is hard and getting.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
Reporting Bugs Why all bugs aren't always fixed What you can do to make it more likely that the bugs you find are fixed What techniques you can use to.
By the end of this lesson you will be able to explain: 1. Identify the support categories for reported computer problems 2. Use Remote Assistance to connect.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
1 Chapter 1- Introduction How Bugs affect our lives What is a Bug? What software testers do?
Quantifying Lift. Consider… 767 refused take-off: PEfO1Oo&hl=en PEfO1Oo&hl=en F16
Writing Test Cases Why writing and tracking test cases is important? What is a test design specification? What is a test case specification? How test procedures.
Speed up your computer or device
The Software Development Cycle
Ik-Soon Kim December 18, 2010 Embedded Software Platform Team
CSE 403 Software Engineering
The System Boards (Motherboards)
How To Solve Software Failure Issues By I FIX PC
Several definitions: “Testing is the process of establishing confidence that a program or system does what it is supposed to.” by Hetzel 1973 “Testing.
Improving the Design “Can the design be better?”
Lesson 5 Computer-Related Issues
Welcome to Corporate Training -1
Intel Division Bug Scroll back to Autumn 1994 … The beginning…
Reliability and Safety
The Software Development Cycle
Presentation transcript:

Software Testing Background Reading: –Ron Patton, Software Testing, 2nd ed., Chapter 1 –Daniel Michaels and Andy Pasztor, “Incidents Prompt New Scrutiny Of Airplane Software Glitches”, Wall Street Journal, Vol. 247, no. 125, May 30, –Safety Critical OverviewSafety Critical Overview

Outline Why Software Testing? What is a Bug? Why do Bugs Occur, Projects Fail? What is the Cost of Bugs? Software Testers –What they do? –Who are the Good Ones?

Why Software Testing? –The Lion King Animated Storybook, Fall 1994 Disney’s first multimedia CD-ROM game for children. Sales were huge. The game to buy for children that holiday season. On December 26, Disney's customer support phones began to ring, and ring, and ring….from angry parents with crying children who couldn't get the software to work. Numerous stories appeared in newspapers and on TV news. The software development team have tried their software on specific PC platforms. It failed on many very popular PC platforms! Motivation (1)

Why Software Testing? –Intel Pentium Floating-Point Division Bug, 1994 Enter the following equation into your PC's calculator: ( / ) * If the answer is zero, your computer is just fine. If you get anything else, you have an old Intel Pentium CPU with a floating-point division bug, a software bug burned into a computer chip and reproduced over and over in the manufacturing process. On October 30, 1994, Dr. Thomas R. Nicely of Lynchburg (Virginia) College traced an unexpected result from one of his experiments to an incorrect answer by a division problem solved on his Pentium PC. He posted his finding on the Internet and soon afterward a firestorm erupted as numerous other people duplicated his problem and found additional situations that resulted in wrong answers. –Fortunately, these cases were rare and resulted in wrong answers only for extremely math-intensive, scientific, and engineering calculations. Motivation (2)

Motivation (3) Why Software Testing? –NASA Mars Polar Lander, 1999 On December 3, 1999, NASA's Mars Polar Lander disappeared during its landing attempt on the Martian surface. A Failure Review Board investigated the failure and determined that the most likely reason for the malfunction was the unexpected setting of a single data bit. Most alarming was why the problem wasn't caught by internal tests.

Motivation (3) Why Software Testing? –Malaysia Airlines jetliner, August 2005 As a Malaysia Airlines jetliner cruised from Perth, Australia, to Kuala Lumpur, Malaysia, it suddenly took on a mind of its own and zoomed 3,000 feet upward. The captain disconnected the autopilot and pointed the Boeing 777’s nose down to avoid stalling, but was jerked into a steep dive. He throttled back sharply on both engines, trying to slow the plane. Instead, the jet raced into another climb. The crew eventually regained control and manually flew their 177 passengers safely back to Australia. Investigators quickly discovered the reason for the plane’s roller- coaster ride 38,000 feet above the Indian Ocean. A defective software program had provided incorrect data about the aircraft’s speed and acceleration, confusing flight computers. The computers had also failed, at first, to respond to the pilot’s commands.

Motivation (4) Why Software Testing? – automatic reboot processA passenger airplane is circling in a prearranged location off the coast of Florida. The landing is delayed because of bad weather conditions. As the plane is banking into a turn, a sudden updraft causes the plane to roll much faster than the software control system expects. The software "assumes" a glitch, and the computers are set into an automatic reboot process. The pilot looks on with horror as all of the navigation displays turn blue with a white line through them. At a most crucial moment, when the pilot needs information to stabilize the aircraft, the computers are performing memory checks and restarting the display software.

What is a Bug? Informally, it is “what happens when software fails”, whether the failure was –Inconvenient –Catastrophic Terms for software failure * Fault* Anomaly* Problem* Inconsistency * Failure* Incident* Error* Feature * Defect* Variance* Bug

What is a Bug? Product Specification: “an agreement among the software development team. It defines the product they are creating, detailing what it will be, how it will act, what it will do, and what it won't do” Formally, we say that a s/w bug occurs when one or more of the following five rules is true: when the software –doesn't do something that the product specification says it should do. –does something that the product specification says it shouldn't do. –does something that the product specification doesn't mention. –doesn't do something that the product specification doesn't mention but should. –is difficult to understand, hard to use, slow, or in the software tester's eyes will be viewed by the end user as just plain not right.

Why do Bugs Occur?

Symptoms and Root Causes of Bugs Inaccurate understanding of end user needs Inability to deal with changing requirements Modules that don’t fit together Software that is hard to maintain or extend Late discovery of serious project flows Poor software quality Unacceptable software performance Team members in each other’s way, making it impossible to reconstruct who changed what, when, were and why An untrustworthy build-and-release process

Root Causes of Project Failures Ad hoc requirement management Ambiguous and imprecise communication Brittle architectures Overwhelming complexity Undetected inconsistencies in requirement, design, and implementation Insufficient testing Subjective assessment of project status Failure to attack risk Uncontrolled change propagation Insufficient automation

The Cost of Bugs Remember Disney’s Lion King CD!

What does a Software Tester Do? The goal of a software tester is to –find bugs –find bugs and find them as early as possible –find bugs, find them as early as possible, and make sure they get fixed

What Makes a Good Software Tester? They are explorers. They are troubleshooters. They love puzzles. They are relentless. Software testers keep trying. They are creative. They are (mellowed) perfectionists. They exercise good judgment. They are tactful and diplomatic. They are persuasive. Software Testing is Fun