Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

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.
Test process essentials Riitta Viitamäki,
System Development Life Cycle (SDLC)
CompSci 230 Software Design and Construction Software Quality 2014S2 Black box testing.
1 Software Engineering Lecture 11 Software Testing.
Alternate Software Development Methodologies
Requirements and Design
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Ch 4 The Process page 1CS 368 Building Software is Difficult often delivered late often over budget always with errors must be a custom solution complexity.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Outline Types of errors Component Testing Testing Strategy
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Chapter 13 & 14 Software Testing Strategies and Techniques
Data Structures and Programming.  John Edgar2.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
System/Software Testing
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For 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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
System Test Methods TESTTEME The Test Challenge Bottom Up Testing Strategy Integration Test System Test Types of Testing Unit Test = Code-based Testing.
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
COMP 121 Week 1: Testing and Debugging. Testing Program testing can be used to show the presence of bugs, but never to show their absence! ~ Edsger Dijkstra.
INF 111 / CSE 121: Software Tools and Methods Lecture Notes for Fall Quarter, 2007 Michele Rousseau Set 12 (Some slides adapted from Sommerville 2000 &
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
1 SOFTWARE TESTING Presented By Abhilash.S  What is Software Testing?  Fundamentals of software Testing Error/Mistake? Defect/Bug/Fault? Failure? 2.
Testing software Team Software Development Project.
The Software Development Process
Systems Development Life Cycle
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
LECTURE 20 26/11/15. Summary - Testing ◦ Testing affects all stages of software engineering cycle ◦ One strategy is a bottom-up approach – class, integration,
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
GCSE ICT 3 rd Edition The system life cycle 18 The system life cycle is a series of stages that are worked through during the development of a new information.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
MANAGEMENT INFORMATION SYSTEM
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Embedded Systems Software Engineering
Rekayasa Perangkat Lunak Part-13
C++ Plus Data Structures
Input Space Partition Testing CS 4501 / 6501 Software Testing
Verification and Testing
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 1 Software Engineering.
Software life cycle models
Chapter 1 Introduction(1.1)
Chapter 10 – Software Testing
Baisc Of Software Testing
CSE 1020:Software Development
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches Waterfall model (1970s) identify tasks Object Oriented (1990s) identify entities Extreme Programming (1999) designed for speed and quality

copyright by Scott GrissomCh 1 Software Development Slide 2 Software Life Cycle Problem Specification (20%) identify system requirements Design (20%) identify objects and their responsibilities Implementation (20%) coding and debugging Testing (30%) Documentation (10%) user support technical documentation Maintenance A well designed solution is easier to maintain.

copyright by Scott GrissomCh 1 Software Development Slide 3 Program Specification Not enough to solve a problem correctly, you must solve the correct problem! Work closely with the client Provide sufficient details to create a solution that satisfies the client Criteria performance features budget delivery date

copyright by Scott GrissomCh 1 Software Development Slide 4 Problem Statements Describe behavior of every possible input, not just the expected ones. For example see page 7 what is ambiguous? Group Activity question #2

copyright by Scott GrissomCh 1 Software Development Slide 5 Extreme Programming (XP) This process is currently popular in industry and pieces together several best practices Paired Programming Coding standards Continuous Testing Refactoring 40 hour week Simplicity

copyright by Scott GrissomCh 1 Software Development Slide 6 XP Benefits Programmers report higher satisfaction with their job Errors are reduced Production time improves More learning takes place with students using pair programming

copyright by Scott GrissomCh 1 Software Development Slide 7 Empirical Testing (1.2) Goal: to find errors Does it perform exactly as described? Exercise the software A good test plan will uncover most problems It is not feasible to exhaust every possible case

copyright by Scott GrissomCh 1 Software Development Slide 8 Testing Techniques Code walkthrough often done with two or more people Unit testing individual classes / methods easy to do with BlueJ Integration testing of related objects create stubs for unfinished methods create temporary drivers to invoke the methods Regression Testing accumulate and apply tests against a set of past failures Acceptance testing final approval are specs fulfilled?

copyright by Scott GrissomCh 1 Software Development Slide 9 Unit Testing write a test harness that feeds parameters to every method under a variety of conditions create files of test data that can be used repeatedly compare results against solutions known to be correct (an oracle)

copyright by Scott GrissomCh 1 Software Development Slide 10 Black-Box Testing What is it supposed to do? Disregard the internal structure Mapping a set of inputs to a set of expected outputs Provide data values at each end of the valid input range

copyright by Scott GrissomCh 1 Software Development Slide 11 Clear-Box Testing Focuses on the implementation Condition coverage guarantees that all paths through a method are executed What set of input will insure that all code has been executed

copyright by Scott GrissomCh 1 Software Development Slide 12 Additional Test Criteria Is it user friendly? Is it robust? Is it reliable? Does it have acceptable performance? Note: testing sophisticated GUI applications is difficult

copyright by Scott GrissomCh 1 Software Development Slide 13 Test Plan A written document Reasonably complete Includes a sufficient number of test cases Developed before design Performed by an impartial third party Refer to the sample on the Web

copyright by Scott GrissomCh 1 Software Development Slide 14 Test Case Required pieces test number rationale for the test a specific input or user action expected result Example test #1 negative numbers input: -3 expected result: “provide a positive number” test #2 sort the numbers action: click on ‘sort’ button expected result: numbers will be sorted Creating good tests positive tests confirm that the software does what it is supposed to negative tests confirm possible errors are handled gracefully boundary cases include data on the ends of valid data

copyright by Scott GrissomCh 1 Software Development Slide 15 Design Test Cases for... Triangle test given three integers that represent the length of a triangle equilateral, isosceles, scalene, right, not a triangle Next Day given three integers that represent a day, month, and yr what is the next day? Leap Year given an integer, return true not on a century unless divisible by 400

copyright by Scott GrissomCh 1 Software Development Slide 16 What can go wrong? Therac-25 delivers radiation treatment to cancer patients (1985) delivered overdoses killing at least six people investigators discovered the software was written by a single programmer no documentation, no test plan, poor design