DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.

Slides:



Advertisements
Similar presentations
2017/3/25 Test Case Upgrade from “Test Case-Training Material v1.4.ppt” of Testing basics Authors: NganVK Version: 1.4 Last Update: Dec-2005.
Advertisements

Software Testing Techniques
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.
Defect testing Objectives
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Testing and Quality Assurance
Systems V & V, Quality and Standards
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
Illinois Institute of Technology
Testing an individual module
The Software Development Standards Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Chapter 6: The Traditional Approach to Requirements
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 6 The Traditional Approach to Requirements
Software Quality Assurance and Testing prof. A. C. (Alex) Telea Course description.
Systems Analysis and Design in a Changing World, Fifth Edition
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing.
CS4311 Spring 2011 Unit Testing Dr. Guoqiang Hu Department of Computer Science UTEP.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Software Testing Testing types Testing strategy Testing principles.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Agenda Introduction Overview of White-box testing Basis path testing
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Theory and Practice of Software Testing
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Dynamic Testing.
DETAILED DESIGN, IMPLEMENTATION AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Chapter 17 Software Testing Techniques
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Tutorial 7.
How Systems are Developed
Software Testing.
Rekayasa Perangkat Lunak Part-13
Software Engineering (CSI 321)
IEEE Std 1074: Standard for Software Lifecycle
Quality Management Perfectqaservices.
Chapter 13 & 14 Software Testing Strategies and Techniques
Unit Test: Functions, Procedures, Classes, and Methods as Units
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Lecture 09:Software Testing
Verification and Validation Unit Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Software Testing “If you can’t test it, you can’t design it”
Chapter 10: Testing and Quality Assurance
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

OUTLINE n Detailed design, Implementation, and testing phase in the software development standards n Software Testing – Black Box Testing – White Box Testing

Detailed design, Implementation, and Testing n In the European Space Agency standard, the major activities in this phase include - decomposition and the specification of the low-level software modules. the low-level components specified at the architectural design are decomposed into software modules. - This is followed by software production and documentation: implementing the modules specifications into code, integrating the software components, and the testing activities

Detailed design, Implementation, and Testing Decomposition of low-level components - Using stepwise refinement, the low-level components specified at the architectural design are decomposed into software modules, and Library modules (language dependent Application Programming Interfaces APIs, e.g., Microsoft Foundation Classes, Java API packages for Graphical User Interfaces or GUIs, network programming, etc.)

Decomposition of low-level components Example: Process Pilot Request subsystem n Specify the detailed design of subordinate modules of Process_Pilot_Request n Specify how buffers are structured (the data structures of the buffers used for inputs and outputs)

Detailed design, Implementation, and Testing Software production Software production consists of n Implementing the modules specifications into code (structured Programming or object-oriented programming), n Integrating the software components and the testing activities in testing procedures of unit testing, integration testing, and system testing

Detailed design, Implementation, and Testing The activities required in the MIL-STD-498 standard for the Software Implementation and Unit Testing (SWIUT) are described as follows: - Develop and document software corresponding to each software unit (CSU) of each software component (CSC) in the CSCI design - Establish test cases (in terms of inputs, expected results, and evaluation criteria), test procedures, and test data for testing the software corresponding to each software unit

Detailed design, Implementation, and Testing n The test cases shall cover all aspects of the unit's detailed design. The developer shall record this information in the appropriate software development files (SDFs) n Test the software corresponding to each software unit. The testing shall be in accordance with the unit test cases and procedures

Detailed design, Implementation, and Testing n Make all necessary revisions to the software, perform all necessary retesting, and update the software development files (SDFs) and other software products as needed, based on the results of unit testing n Analyze the results of unit testing and record the test and analysis results in appropriate software development files (SDFs)

Software Testing What is Software Testing? n Is the process of executing a program with an established set of test cases n Test cases are generated according to a well defined procedures or techniques n Testing is a bottom-up process, starts with unit testing, components testing, CSCI testing

n Levels of Real Time System Testing – Unit Testing – Software Integration Testing – Software Validation and Verification Testing – Software / Hardware Integration Testin – System Testing

Software Testing (Unit Testing) Set of test cases Test Driver Module under test Stub Data Module

Software Testing n The test driver is developed based on a set of test cases n The driver invokes the module under test for each test case and establishes the test case data/control requirements n Stubs are sub-ordinate dummy modules that represent the modules (including global data structures) invoked (or accessed) by the module under test n They contain print and return statements

Software Testing n Testing techniques consist of - Black Box testing, where we focus on testing the software functional requirements, and testing the input/output interfaces Inputs Outputs Module under test Is treated as a Black Box Only inputs and outputs of functions are considered How outputs are generated based on a set of inputs is ignored Run a suite of test cases -Exhaustive combination of all inputs -Corner cases (min, max, avg) -Pathological cases (inputs likely to result in error)

Software Testing – White Box Testing, where we focus on developing test cases to cover the logical paths through the code (e.g., conditional statements, loops, etc.) n Based on developing a control flow graph of the code under test to identify the set of independent paths, and produce a set of test cases to cover these paths n Exercises all paths in a module Driven by logic n Static Example: Code Inspections, group walkthrough of software logic, inspect code line-by-line (Static Analysis tools) n Dynamic Example: Test all the links and buttons on a web page n For real-time systems dynamic testing is important to test time constraints, and reactive logical pathes

Software Testing n Black Box Testing Techniques 1. Equivalence Partitioning Partition the input space into equivalence classes and develop a test case for each class of inputs 2. Boundary value analysis develop test cases at the boundaries of the possible input ranges (minimum and maximum values) n The above techniques are important for data processing intensive applications

Black Box Testing

Software Testing n Black Box Testing Techniques (cont.) 3. Cause-effect graphing - Used for control intensive applications, - Develops test cases to represent input events (or causes) and the corresponding actions (or effects) n This technique is used intensively in real-time systems

Software Testing n Cause-effect graphing consists of the following 4 steps 1. List and label causes (input-events) and effects (output actions) for a module 2. Draw a cause-effect graph describing the logical combinations of causes, intermediate causes and resulting effects, 3. Develop a decision table (causes vs effects) from the graph 4. Convert each row into a test case, or a set of rows into a testing scenario

Software Testing Symbols used in the cause-effect graphs ci = ith cause, ei = ith effect cieiciei Ci causes ei Ci does Not cause ei ciei cj OR ciei cj AND

Software Testing n Example: Control motion module in our project (assume the module inputs are a state variable and a control input) 1. List and label all Causes and all effects CausesEffects C1: Start_traine100: Release all Brakes C2: Idle e200: Engage_Engine C3: speed = Max_speed e300:Disengage_Engine C4:Acceleratinge400: Apply Ph. 1 Brakes C5: Speed > Max_speede500: Release Ph. 1 brakes C6: Coastinge600: Apply Ph. 2 brakes C7: Speed <= Min_speede700: Apply Safety brakes

Software Testing Accelerating CoastingDecelerating Idle stopping Start / RL all Br Engage Engine Speed = Max_speed / Disengage_Engine Speed > Max_speed / Apply Ph. 1 brakes This List is obtained form the following C-spec STD Stop / Applying ph II Speed <= Min_speed/ Engage Engine

Software Testing c1 e10 c2 e100 e200 c3e20 c4 e300 c5e30 c6 e400 e40 c7 Develop a Cause effect graph

Software Testing n Develop a Decision Table C1 C2 C3 C4 C5 C6 C7 e100 e200 e300 e n Convert each row to a test case

Software Testing n Scenario testing: A testing scenario combines a set of test cases for testing the system behavior over a period of time n For example the following sample run can be used for scenario testing Start,idle ; speed = max_speed, Accelerating; Speed Max_speed, Coasting;