Informatics 43 – April 26, 2016. Announcements Apply to be an AppJam+ Summer Mentor! AppJam+ Partners with local universities and Colleges to recruit.

Slides:



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

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
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.
Chapter 4 Quality Assurance in Context
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
Informatics 43 – April 28, Fun with Models Fashion Student Model = Ideal.
Paper Prototyping.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Administrivia Lifecycle Architecture (LCA) group assignment will go out later today. Informal feedback meetings with LCO groups EasyShare: Mon, 2:45pm-3:15pm,
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
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.
©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.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Chapter 1: Introduction to Software Testing Software Testing
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Testing Sudipto Ghosh CS 406 Fall 99(Also used later) November 2, 1999.
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
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.
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.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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.
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)
Prototyping. Outline Risk Management Prototyping Kinds of Prototypes Example Activity 1.
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,
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)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Week # 4 Quality Assurance Software Quality Engineering 1.
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.
Pragmatics 4 Hours.
Lecture 3 Prescriptive Process Models
School of Business Administration
Verification and Testing
Verification & Validation
Software Engineering Lecture 09 & 10.
Methodologies For Systems Analysis.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Computer Science Life Cycle Models.
Software testing.
Software Process Models
Baisc Of Software Testing
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
COSC 4506/ITEC 3506 Software Engineering
Chapter 7 Software Testing.
Presentation transcript:

Informatics 43 – April 26, 2016

Announcements Apply to be an AppJam+ Summer Mentor! AppJam+ Partners with local universities and Colleges to recruit mentors for the program. Mentors are a very critical part of the program and help empower middle school students and aid in exposing them to opportunities in STEM through the program. AppJam+ looks great on a resume and mentors receive a stipend. Apply at: appjamplus.com/mentors Application deadline is April 29th at midnight. For more information please visit our site appjamplus.com or us

Announcements MAISS Mentor Recruitment – Management Information Student Society Applications Due: Week 7 (Friday, May 13) Interviews: Week 8 (May 16-20) Decisions: Week 8 (May 21)​ If you are interested in making a positive impact on another student’s college experience as well as the UCI business and technology community, the MAISS mentorship program is for you! The mentorship program fosters lasting relationships between mentees and their respective mentors. If you are interested in becoming a mentor, apply at For more information about MAISS, visit

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?)

What are the best 5 test cases for a multiplier? (Give you the most confidence that the multiplier is working correctly?) Best set of test cases WEAKSTRONG 3 x 4 = 12 4 x 3 = 12 5 x 7 = 35 6 x 3 = x 10 = 100

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)