Informatics 43 – April 28, 2015. Fun with Models Fashion Student Model = Ideal.

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

Testing and Quality Assurance
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
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.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
Course Retrospective Richard Anderson CSE 403 Lecture 27.
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.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Ethical and Social...J.M.Kizza 1 Module 8: Software Issues: Risks and Liabilities Definitions Causes of Software Failures Risks Consumer Protection Improving.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
SPEAKER : KAI-JIA CHANG ADVISER : QUINCY WU DATA : Spiral Model.
Software Testing Sudipto Ghosh CS 406 Fall 99(Also used later) November 2, 1999.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Prescriptive Process Models
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Chapter 3 Project Management Details Tracking Project Progress Project Estimation Project Risk Analysis Project Organization RUP Project Management Workflow.
Software Process Models
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
An Introduction to Software Engineering
Verification and Validation Assuring that a software system meets a user's needs.
Testing software Team Software Development Project.
Project & Risk Management For next class -- Pressman: 3, , 5.8, , 6.6 Introductions Software Development Processes Software Maturity Models.
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.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Testing. Today’s Topics Why Testing? Basic Definitions Kinds of Testing Test-driven Development Code Reviews (not testing) 1.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Testing CSE 160 University of Washington 1. Testing Programming to analyze data is powerful It’s useless (or worse!) if the results are not correct Correctness.
TESTING FUNDAMENTALS BY K.KARTHIKEYAN.
PLANNING AND MANAGING THE PROJECT CODY STANISH. 3.1 TRACKING PROGRESS Do you understand the customer’s needs? Can you design a system to solve customer’s.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction Requirements and the Software Lifecycle (3)
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
Week # 4 Quality Assurance Software Quality Engineering 1.
Informatics 43 – April 26, Announcements Apply to be an AppJam+ Summer Mentor! AppJam+ Partners with local universities and Colleges to recruit.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Lecture 3 Prescriptive Process Models
Software Verification and Validation
Verification and Testing
Testing UW CSE 160 Winter 2017.
Verification and Validation Overview
Verification & Validation
Software Engineering Lecture 09 & 10.
Testing UW CSE 160 Spring 2018.
Formulation of Abstract Machine for SPM Based on Finite State Machine
Testing UW CSE 160 Winter 2016.
Software Process Models
Baisc Of Software Testing
COSC 4506/ITEC 3506 Software Engineering
Presentation transcript:

Informatics 43 – April 28, 2015

Fun with Models Fashion Student Model = Ideal

Fun with Models Fashion Student Model = Ideal

Fun with Models Software Process Model Waterfall Prototype Spiral Architecture Model Layered Client Server Model View Controller Model = Simplified Representation

Fun with Models public class Elephant { int weight; // in kg String name; Species species; public void forage() {.... } Model = Simplified Representation

How to choose a Software Process Model? A Software Process Model can be thought of “prescriptively” – providing rules to follow in the future or “descriptively” – serving to describe or characterize what has happened in the past

The Waterfall Software Process Model

The Prototyping Software Process Model

Incremental Software Process Model

Spiral Model

Risk-driven, focus on considering alternatives Each loop through the cycle: Identify a high-risk sub-problem or aspect Resolve the risk (as far as possible) A software project goes through the loop many times Every person on the development team does not have to be at the same stage of the loop

Software Risks Some of Boehm’s Top 10 1.Personnel shortfalls 2.Unrealistic schedules and budgets 3.Developing the wrong software functions 4.Continuing stream of software changes 5.Shortfalls in externally furnished components 6.Shortfalls in externally performed tasks

Agile Software Development We will come back to this topic later in the quarter…

Quality Assurance What software qualities do we want to assure? Correctness

Quality Assurance What software qualities do we want to assure? Correctness How? Testing Inspection and review the source code Proofs, formal methods Static analysis (a program inspects the source code)

Testing Challenges Edsger Dijkstra: “Testing can show the presence of bugs, but not their absence.” True? Why?

Testing Challenges Edsger Dijkstra: “Testing can show the presence of bugs, but not their absence.” True! Because… Software systems are discrete, not continuous. Too many input-output pairs (test-cases) to exhaustively verify, so we must take a small sample. Example: multiplier, inputs two integers, outputs one integer

Testing Challenges Let’s be practical. Testing can only select a very small set of inputs. Our goal should be to choose the best ones. What are the best 5 test cases for a multiplier? (In other words: what 5 test cases, if they don’t reveal any bugs, will give you the most confidence that the multiplier is working correctly?)

Result of running test cases Confidence in module being tested Number of test cases with correct outputs % Sweet spot?

The landscape of “bugs” Error (in programmer’s mind) Fault or defect (in code) Failure (in execution or output)

The landscape of “bugs” Error (in programmer’s mind) Fault or defect (in code) Failure (in execution or output)