Presentation is loading. Please wait.

Presentation is loading. Please wait.

Instructor: Peter Clarke

Similar presentations


Presentation on theme: "Instructor: Peter Clarke"— Presentation transcript:

1 Instructor: Peter Clarke
CEN 5076 Software Testing Fall 2005 Instructor: Peter Clarke

2 Course Introduction Syllabus Project STRG Questions
CEN 5076 Class /29

3 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 , IEEE Standard Glossary of Software Engineering Terminology) CEN 5076 Class /29

4 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 /29

5 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 /29

6 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 /29

7 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 /29

8 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 /29

9 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 /29

10 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 /29

11 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 /29

12 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 /29

13 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 /29

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

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

16 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 /29

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

18 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 /29

19 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 /29

20 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 /29

21 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 /29

22 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 ) CEN 5076 Class /29

23 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 /29

24 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 /29

25 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 /29

26 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 /29

27 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 /29

28 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 /29


Download ppt "Instructor: Peter Clarke"

Similar presentations


Ads by Google