15 November 2010. Essay 1  Methodologies Points on the spectrum All can adapt to changes Required vs. permitted  Releases vs. iterations  Spool’s.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

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.
Testing and Quality Assurance
Software Quality Assurance Plan
Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
(ADAPTED FROM DIANE POZEFSKY) Software and System Testing.
ISBN Chapter 3 Describing Syntax and Semantics.
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.
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Describing Syntax and Semantics
Systems Analysis and Design in a Changing World, 6th Edition
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
March 16, Calendar Next week: Thursday meeting instead of Tuesday (May 25) Web update later today.
ECI 2007: Specification and Verification of Object- Oriented Programs Lecture 0.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
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.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
12.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
CompSci 230 Software Design and Construction
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
 CS 5380 Software Engineering Chapter 8 Testing.
March 25, Announcements Friday – recruiting event 12-6 Dean Smith Center Bloomberg LP, New York City full-time positions and summer internships.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
NIST (2002) cost to US $59B annual Why do we care?  Therac-25 (1985) 6 massive radiation overdoses  Multiple space fiascos (1990s) Ariane V exploded.
Software Quality and Testing CPS 109: Program Design and Construction October 28, 2003.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
18 October Why do we care?  Therac-25 (1985) 6 massive radiation overdoses  Multiple space fiascos (1990s) Ariane V exploded after 40 seconds.
The Software Development Process
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Formal Methods.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Testing. Today’s Topics Why Testing? Basic Definitions Kinds of Testing Test-driven Development Code Reviews (not testing) 1.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Quality Assurance and Testing Fazal Rehman Shamil.
29 March Software Quality and Testing. Why do we care? Therac-25 (1985) Multiple space fiascos (1990s) Ariane V exploded after 40 seconds (conversion)
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Introduction to Software Testing Maili Markvardt.
Formal Methods. Objectives To introduce formal methods including multiple logic based approaches for software modelling and reasoning 2.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Software Testing.
This presentation uses a free template provided by FPPT.com PRESENTED BY, R.Mohammed yasik.
Auditing Application Controls
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Welcome to Corporate Training -1
Project Management: Inspections and Reviews Formal Specifications
Chapter 7 Software Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

15 November 2010

Essay 1  Methodologies Points on the spectrum All can adapt to changes Required vs. permitted  Releases vs. iterations  Spool’s points Vision: what are the REAL requirements? Users: prior releases Recognizing errors: manage WITHIN scope

Consider waterfall  How could you improve the user experience component? What can you do beyond what is required?

Why do we care?  Therac-25 (1985) 6 maasive radiation overdoses  Multiple space fiascos (1990s) Ariane V exploded after 40 seconds (conversion) Mars Pathfinder computer kept turning itself off (system timing) Patriot missile misquided (floating point accuracy)  Millenium bug (2000)  Microsoft attacks (ongoing)  NIST: cost to US, $59 billion

Quality and testing  “Errors should be found and fixed as close to their place of origin as possible.” Fagan  “Trying to improve quality by increasing testing is like trying to lose weight by weighing yourself more often.” McConnell

Life Testing  Used regularly in hardware Addresses “normal use”  n specimens put to test  Test until r failures have been observed  Choose n and r to obtain the desired statistical errors  As r and n increase, statistical errors decrease  Expected time in test = mu 0 (r / n) Where mu 0 = mean failure time

Butler and Finelli  “The Infeasibility of Experimental Quantification of Life-Critical Software Reliability”  In order to establish that the probability of failure of software is less than in 10 hours, testing required with one computer is greater than 1 million years

Types of Testing: Purpose  Conformance testing  Usability testing  Performance testing  Acceptance testing  Reliability testing ……

Other classifications  Scope Unit, component, system, regression, …  Access to code Black box vs. white box (Note that black box testing still assumes knowledge of coding and development in general)

How important is unit test?  The Voyager bug (sent the probe into the sun).  90: The AT&T bug that took out 1/3 of US telephones (crash on receipt of crash notice). The DCS bug that took out the other 1/3 a few months later.  93: The Intel Pentium chip bug (it was software, not hardware).  96: The Ariane V bug: auto-destruct (data conversion).

What are you trying to test?  Most common actions?  Most likely problem areas?  Risk-based testing

Risks  Identify criteria of concern: availability, quality, performance, …  Risk of it not being met likelihood consequences  If I’m testing code for a grocery store, what is the impact of the code not being highly available?

How to identify what to test  New features  New technology  Overworked developers  Regression  Dependencies  Complexity  Bug history  Language specific bugs  Environment changes  Late changes  Slipped in “pet” features  Ambiguity  Changing requirements  Bad publicity  Liability  Learning curve  Criticality  Popularity

Four Parts of Testing  Model  Select test cases  Execute test cases  Measure

Basic Software Model capabilities environment User interfaces APIs Operating system Files Input Output Storage Processing

Test Case Selection  Environments What happens if a file changes out from under you? Consider all error cases from system calls ○ (e.g., you can’t get memory) Test on different platforms: software and hardware Test on different versions and with different languages  Capabilities Inputs Outputs States Processing

From the User Interface: Inputs  Error messages  Default values  Character sets and data types  Overflow input buffers  Input interactions  Repeated inputs  How easy is it to find bugs in Word?

Questions to Ask for Each Test  How will this test find a defect?  What kind of defect?  How powerful is this test against that type of defect? Are there more powerful ones?

Other Tools for Improving Quality  Reviews and inspections  Formal specification  Program verification and validation  Self-checking (paranoid) code  Deploy with capabilities to repair

Formal Methods and Specifications  Mathematically-based techniques for describing system properties  Used in inference systems Do not require executing the program Proving something about the specification not already stated Formal proofs Mechanizable Examples: theorem provers and proof checkers

Uses of Specifications  Requirements analysis rigor  System design Decomposition, interfaces  Verification Specific sections  Documentation  System analysis and evaluation Reference point, uncovering bugs

Examples  Abstract data types Algebras, theories, and programs VDM (Praxis: UK Civil aviation display system CDIS), Z (Oxford and IBM: CICS), Larch (MIT)  Concurrent and distributed systems State or event sequences, transitions Hoare’s CSP, Transition axioms, Lamport’s Temporal Logic  Programming languages!

References  Bugs Therac-25: ml ml Patriot missile: Ariane 5:  Testing Whittaker, How to Break Software (presentation)presentation