CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software.

Slides:



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

System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
Software Testing 3 Damian Gordon.
Software Architecture Prof.Dr.ir. F. Gielen
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Illinois Institute of Technology
Testing Team exercise Have each team member contribute answers: –Do you test your code? If no, why not? If yes: When? How? How often? –What is your team’s.
1 Testing. 2 About Testing  The reason the program is in testing is that it probably doesn’t work!  We test to find bugs before our users and hope that.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
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.
Software Testing & Strategies
Software Engineering Lecture 13 Software Testing Strategies 1.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
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
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
System/Software Testing
Web Development Process Description
12.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
TESTING.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Prof. Mohamed Batouche Software Testing.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Understand Application Lifecycle Management
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Software Testing Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
Test and Integration Robyn Allsman LSST Corp DC3 Applications Design Workshop IPAC August , 2008.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
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.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
LECTURE 19 23/11/15 Software Quality and Testing.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Integration testing After different modules of a system have been coded and unit tested: –modules are integrated in steps according to an integration plan.
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.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Software Testing Strategies for building test group
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Different Types of Testing
Chapter 18 Software Testing Strategies
“Would I have to do this all by myself …….?”
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software Testing & Quality Management
Software Testing Strategies
Presentation transcript:

CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software Testing

Design Class Diagrams CS 325 February 16, 2016 Designing a Design Class Diagram Page 95 The class diagrams developed for domain modeling are somewhat informal. Once sequence diagrams have been developed during object interaction modeling, a clearer understanding of the upcoming implementation, testing, and integration of the software system is possible.

DCD: Restaurant Example CS 325 February 16, 2016 Designing a Design Class Diagram Page 96 Consider this sequence diagram for eating at a restaurant.

DCD: Restaurant Example CS 325 February 16, 2016 Designing a Design Class Diagram Page 97 Identify classes from objects that send or receive messages, that are passed as parameters, or that serve as return types. Identify operations from the sequence diagram messages. Identify attributes from operations that retrieve objects, from get and set operations, from scalar calculation operations, and from constructor parameters. Identify associations that create (from constructor calls) and that use (from parameters and return types).

DCD: ATM Example CS 325 February 16, 2016 Designing a Design Class Diagram Page 98 Consider this sequence diagram for ATM money withdrawal.

DCD: ATM Example CS 325 February 16, 2016 Designing a Design Class Diagram Page 99 Identifying classes. Identifying operations. Identifying attributes. Identifying associations.

Software Testing CS 325 February 16, 2016 Designing a Design Class Diagram Page 100 Testing is a technical investigation process intended to reveal quality-related information about software The standard progression of software testing: UnitTesting Programmers test the minimal software components (i.e., classes and modules) UnitTesting Integration Testing Expose the defects in the interfaces between integrated modules Integration Testing Expose the defects in the interfaces between integrated modules Validation Testing Ensure that the implemented software meets customer requirements Validation Testing Ensure that the implemented software meets customer requirements System Testing Determine whether the software will work as desired when installed System Testing Determine whether the software will work as desired when installed Acceptance Testing The client tests the delivered software to decide whether it is in an acceptable form Acceptance Testing The client tests the delivered software to decide whether it is in an acceptable form

Unit Testing CS 325 February 16, 2016 Designing a Design Class Diagram Page 101 To facilitate the diagnosis of problems within a module, it is usually necessary to isolate that module Place the module or class being tested in an artificial environment that allows you to focus upon its performance. Stub programs are used to replace modules that are called by the module being tested. A dummy driver program merely accepts test case data and passes it to the module being tested. The module being tested.

Integration Testing CS 325 February 16, 2016 Designing a Design Class Diagram Page 102 While individual modules might pass their unit tests, they might not work correctly when integrated together Integration Alternatives: Big Bang: Test all modules simultaneously ({A, B, C, D, E, F, G, H}) Fine for small, well-structured systems, but locating bugs may be tough Top-Down: Incrementally test from the driver down ({A} with stubs for {B,C,D}, then {A, B, C, D} with stubs for {E, F, G, H}, then {A, B, C, D, E, F, G, H}) Helps localize bugs, but deep nodes are tested last, hurting performance Bottom-Up: Incrementally test starting at primitive modules ({E}, {F}, {G}, {H}, each with a dummy driver for {C}, then {B}, {C, E, F, G, H}, {D}, each with a dummy driver for {A}, then {A, B, C, D, E, F, G, H}) Early validation of performance-critical modules, but overall validation is delayed

Validation Testing Rather than testing the internal code, at some point the overall functionality of the software needs to be tested White-box testing is performed by programmers who utilize their skills to examine all of the paths through the software to diagnose internal problems. Black-box testing, on the other hand, takes an external perspective, with the test designer selecting valid and invalid input and examining the corresponding output for accuracy. CS 325 February 16, 2016 Designing a Design Class Diagram Page 103

System Testing CS 325 February 16, 2016 Designing a Design Class Diagram Page 104 After the software has been fully integrated, its compliance with its specified requirements must be tested Recovery testing is used to determine how well software can recover from crashes, hardware failures, etc. Security testing is used to determine how well software is protected from outside penetration Stress testing is used to determine how well software deals with extreme demands on its resources (e.g., memory, processing) Performance testing is used to determine the speed with which software deals with various workloads

Acceptance Testing CS 325 February 16, 2016 Designing a Design Class Diagram Page 105 In preparation for the software’s actual release, early versions may be provided to clients for testing Alpha testing is performed by clients on iterations of the software to which new features are still being added Beta testing is performed at a stage when all primary features have been added, but active debugging is still taking place