Instructor: Peter Clarke

Slides:



Advertisements
Similar presentations
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 4 Quality Assurance in Context
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 SWE Introduction to Software Engineering Lecture 5.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Software Quality Assurance For Software Engineering && Architecture and Design.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Verification and Validation
CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
Chapter 3 Software Processes.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Quality Assurance SE Software Quality Assurance What is “quality”?
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Testing Terminology Project Group Org. Review Terminology OO Concepts Development Products Team Meeting CEN 5076 Class 2 – 09/12.
1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
CEN nd Lecture CEN 5011 Advanced Software Engineering Instructor: Masoud Sadjadi Software Life Cycle.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
This chapter is extracted from Sommerville’s slides. Textbook chapter
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
An Introduction to Software Engineering
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
COP st Lecture August 29, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Software engineering Software Processes.
Chapter3:Software Processes
An Overview of Requirements Engineering Tools and Methodologies*
Software Processes (a)
Verification & Validation
Software Processes.
Introduction to Software Testing
Chapter 2 – Software Processes
An Overview of Software Processes
An Overview of Software Processes
Baisc Of Software Testing
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CEN 5011 Advanced Software Engineering
Presentation transcript:

Instructor: Peter Clarke CEN 5076 Software Testing Fall 2005 Instructor: Peter Clarke http://www.cs.fiu.edu/~clarkep/courses/Fall2005/cen5076

Course Introduction Syllabus Project STRG Questions CEN 5076 Class 1 - 08/29

Software Engineering Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software.  (5/5 points) (Source: IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology) CEN 5076 Class 1 - 08/29

Software Process S/w Specification – requirements elicitation (func. & non-func.) and analysis. S/w Development – systems design, detailed design (OO design), implementation. S/w Validation – validating system against requirements (testing). S/w Evolution – meet changing customer needs and error correction (maintenance). CEN 5076 Class 1 - 08/29

Software Specification Functionality of the software and constraints (non-functional requirements) on its operation must be defined. Involves: Requirements elicitation the client and developers define the purpose of the system. Output - description of the system in terms of actors and uses cases. Actors include roles such as end users and other computers the system needs. CEN 5076 Class 1 - 08/29

Software Specification cont Uses cases are general sequences of events that describe all possible actions between actor and the system for a given piece of functionality. Analysis Objective: produce a model of the system that is correct, complete, consistent, unambiguous, realistic, and verifiable. Developers transform the use cases into an object model that completely describes the system. Model is checked for ambiguities and inconsistencies. Output: Object model annotated with attributes, operations, and associations. CEN 5076 Class 1 - 08/29

Software Development Software to meet the specification is produced. System Design Goals of the project are defined. System decomposed into smaller subsystems (architectural model). Strategies to build system identified e.g., h/w and s/w platform, data management, control flow, and security. Output: model describing subsystem decomposition and system strategies. CEN 5076 Class 1 - 08/29

Software Development cont Object Design Bridges the gap between analysis model and the strategies identified in the system design. Includes: describing object and subsystem interfaces, selecting off-the-shelf components, Restructure object model to attain design goals e.g., extensibility, understandability, and required performance. Output: detailed object model annotated with constraints and supporting documentation. CEN 5076 Class 1 - 08/29

Software Development cont Implementation Translation of the object model into source code. No general process followed. There are tools to assists the programmer such as CASE tools. CEN 5076 Class 1 - 08/29

Software Validation (or V&V) Ensures the software does what the customer want, i.e., that the software conforms to its specification and meets the expectations of the customer. Validation: ‘Are we building the right product?’ Ensures the software meets the expectations of the customer. Verification: ‘Are we building the product right?’ Ensures the software conforms to the specification. CEN 5076 Class 1 - 08/29

Software Validation (V&V) cont Techniques Software inspections (static): analyze and check system representations e.g., requirements documents, design diagrams, and program source code. Software testing (dynamic): executing an implementation of the software with test data and examining the outputs against expected results. V&V process establishes the existence of defects. Debugging is a process that locates and corrects these defects. CEN 5076 Class 1 - 08/29

Software Evolution Software must evolve to meet the customer needs. Software maintenance is the process of changing a system after it has been delivered. Reasons for maintenance: to repair faults, to adapt the software to a different operating environment, and to add to or modify system’s functionality. CEN 5076 Class 1 - 08/29

Attributes of Good Software Maintainability Ease of changing the software to meets the changing needs of the customer. Dependability Reliability, security and safety. Efficiency Responsiveness, processing time, and memory usage. Usability Appropriate user interface and adequate documentation. CEN 5076 Class 1 - 08/29

Software Process Models Waterfall V-Model Evolutionary Boehm’s Spiral Model Incremental Unified Software Development Process Model (USDP) CEN 5076 Class 1 - 08/29

Waterfall Model (Royse 1970) Requirements Definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance CEN 5076 Class 1 - 08/29

V-Model (Jensen & Tonies 1979) Requirements Specification Acceptance test System design System and integration test Detailed Design Unit Test Implementation Horizontal lines denote The information flow between activities at the same abstraction level. CEN 5076 Class 1 - 08/29

Evolutionary Model Concurrent activities Outline Description Initial Version Specification Outline Description Intermediate Versions Development Final Version Validation CEN 5076 Class 1 - 08/29

Boehm’s Spiral Model (Boehm 1987) Evaluate alternatives, identify & resolve risks Design objectives, alternatives, & constraints Risk analysis Risk analysis Risk analysis Prototype 3 Prototype 2 Prototype 1 Not shown in detail Requirements plan Concept of operation S/w Reqs. Detailed Design Sys. Product Design Development Plan Reqs. Validation Code Integration Plan Design Validation Unit Test Develop & verify next level product Integration & Test Acceptance Test Plan next phase CEN 5076 Class 1 - 08/29

Incremental Development (Mills et al. 1980) Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system Final system System incomplete CEN 5076 Class 1 - 08/29

Unified Software Development Process System Development Analysis model Process is use case driven! specified by realized by Design model Use case model distributed by Deployment model All models are related through traceability dependencies. implemented by Implementation model Requirements captured as a set of use cases. verified by Test model CEN 5076 Class 1 - 08/29

View of UDSP from a Testing Perspective System Development Process is use case driven! Analysis model specified by Verified and/or validate realized by Design model Use case model Test model distributed by Deployment model Requirements captured as a set of use cases. implemented by All models are related through traceability dependencies. Implementation model CEN 5076 Class 1 - 08/29

What is software testing? Software testing is the process of operating software under specified conditions, observing or recording the results and making an evaluation of some aspect of the software. (IEEE/ANSI std 610.12-1990) CEN 5076 Class 1 - 08/29

What is software testing? Software testing is the process of uncovering evidence of defects in software systems. A defect can be introduced during any phase of development or maintenance and results from one or more “bugs” – mistakes, misunderstandings, omissions or even misguided intent on the part of the developers. (McGregor & Sykes 2001) CEN 5076 Class 1 - 08/29

Testing Terminology The following defns are taken from Binder 2000 and McGregor & Sykes 2001. Failure – is the manifested inability of a system or component to perform a required function within specified limits e.g. abnormal termination, or unmet time and space constraints of the software. A fault is missing or incorrect code. An error is a human action that produces a fault. CEN 5076 Class 1 - 08/29

Testing Terminology cont A bug is an error or a fault. Debugging is the process of tracking down the source of failures (errors and/or faults) and making repairs. A test case specifies the pretest state of the component under test (CUT) and its environment, the test inputs and conditions, and the expected results. A test point is a specific value for test case input state variables. CEN 5076 Class 1 - 08/29

Testing Terminology cont A test suite is a collection of test cases, typically related to some testing goal or criterion. A test driver is a class or utility program that applies test cases to a CUT. A stub is a partial, temporary implementation of a component. A test harness is a system of test drivers and other tools to support test execution. CEN 5076 Class 1 - 08/29

Testing Approach (McGregor & Sykes) Analyze a little Design a little Code a little Test what you can Kinds of testing Model testing Class testing, replaces unit testing Interaction testing, replaces integration testing CEN 5076 Class 1 - 08/29

Testing Approach (McGregor & Sykes) Kinds of testing cont. System (and subsystem) testing Acceptance testing Deployment/self testing Motto: Test early, Test often, Test enough CEN 5076 Class 1 - 08/29