In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani www.sadighim.ir Chapter 15.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Testing Coverage Test case
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 9.
Chapter 10 Software Testing
White Box and Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 05.
1 Software Engineering Lecture 11 Software Testing.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
In the name of God Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani Chapter 2.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 24.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 6.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Program Testing Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Illinois Institute of Technology
Systems Analysis and Design in a Changing World, 6th Edition
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
BPC.1 Basic Programming Concepts
Types and Techniques of Software Testing
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 12.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
System/Software Testing
Extreme Programming Software Development Written by Sanjay Kumar.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
TESTING.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing Course Shmuel Ur
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Test vs. inspection Part 2 Tor Stålhane. Testing and inspection A short data analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 20.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering Saeed Akhtar The University of Lahore.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 17.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Testing and Evaluating Software Solutions Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Software Testing By Souvik Roy. What is Software Testing? Executing software in a simulated or real environment, using inputs selected somehow.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Powerpoint Templates Page 1 Powerpoint Templates Unit Testing Ari Seppi
Software Testing. Purpose: Find errors! not prove that the program does not have them Types of tests: Unit Test Integration Test Function Test Load Test.
Software Testing.
Software Testing.
Software Testing.
Unified Modeling Language (UML)
Chapter 18 Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques
Introduction to Software Testing
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 Testing “If you can’t test it, you can’t design it”
System analysis and design
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 15

Outline Testing; Common issues Testing requirements Taxonomy of methods Walk trough Black box White box

Testing Any effort for fixing errors (identify and remove) Testing for both Managerial issues Technical issues; for all phases

Testing costs Testing needs time, effort and budget To reduce its costs, start sooner!! To make a test more effective, again start sooner.

Error resources مرحلهمنابع خطا خواسته ‌ هابسيار طراحيكمتر كد كردنباز هم كمتر آزمايش بسيار كمتر منابع خطا در مراحل مختلف توليد نرم ‌ افزار ‏‎ [Koskinen, 2003] ‎

Error fixing costs مرحلههزينه كشف و رفع خطا خواسته ‌ ها 1 طراحي 5 كدنويسي 10 آزمايش 30 نسبت هزينه ‌ ي كشف و رفع خطا در مراحل مختلف توليد ‏‎ [Koskinen, 2003] ‎

Maintenance costs سال نسبت هزينه ‌ هاي نگهداري تعريفمرجع % > هزينه ‌ ي اختصاص يافته براي نگهداري و تكامل به كل هزينه ‌ هاي نرم ‌ افزار [Erlikh, 2000] % > نسبت هزينه ‌ هاي نگهداري به بودجه ‌ ي سيستم اطلاعاتي ( در 1000 شركت موفق ) [Eastwood, 1993] % > هزينه ‌ ي اختصاص يافته براي نگهداري و تكامل به كل هزينه ‌ هاي نرم ‌ افزار [Moad, 1990] تا 70% هزينه ‌ ي نگهداري به بودجه هاي عملياتي سيستم ‌ هاي اطلاعات مديريت (MIS) [Huff, 1990] تا 70% هزينه نگهداري به بودجه هاي عملياتي سيستم ‌ هاي اطلاعات مديريت (MIS) [Port, 1988] تا 75% تلاش براي نگهداري نرم ‌ افزار به كل تلاش ‌ هاي مهندسي نرم ‌ افزار [McKee, 1984] % > زماني كه نيروهاي نگهداري صرف كرده ‌ اند به كل زمان ( در 487 سازمان ) [Lientz and Swanson, 1981] % هزينه ‌ هاي نگهداري به كل هزينه ‌ هاي نرم ‌ افزار [Zelkowitz et al., 1979]

Effective test In my opinion a test is effective if: It shows that there is no problem If it shows the problem, the problem could be solved too (before the critical point) Suppose a test correctly shows that a person has cancer; but there is no time for any treatment. This test is not effective, because there is no solution Effectiveness is a fuzzy value

Testing: common issues Fight (with …), to detect errors More erroneous parts, may have other errors! Changes should be tested, regression test There are risky points (when tired, late, have local view and more)

Testing: common issues (Cont.) Gradual change, one change at a time; based on integration strategy Have systematic approach to test, specially for modules which have severe roles More difficult to schedule Testing has basic requirements: Goal Meter Tool Execution Interpretation

Testing requirements

Taxonomy of tests Small scale, module level Large scale, goes toward final system level Scientific

Manual test of module Related documents are the basis Preliminary design of the module Detailed design of the module If in be necessary other higher documents, such as use cases and context diagram should be considered Check readability; perhaps many times, to check different issues Special attention on parameters, their types and calls Initial values, specially on pointers Keep all initializations together (initialization block) Execute the code yourself

Black box test External behavior is tested Correct reaction to inputs is tested Input type Correct input Wrong input Test data Test data generator Test data as an important resource Classification Special cases and need special attention

No complete test To be error free in one test, does not say about other test To have correct reaction to a specific value, does not say that the reaction to another value is correct There are too many cases. Correct and incorrect inputs, both should be considered Classification is our tool to handle number of cases

Classification of possible cases

White box test Internal behavior of the module is tested Possible paths should be covered Complete test is not simple/ possible Again classification is the solution Sample data should cover different paths Block: set of non-branching instructions which are executing together Blocking simplifies the test

Coverage Sequence If Case Loop coverage Counting Conditional Entrance Leave

Clear errors Non executable codes Non matching then/else Bad exception handling Unsuitable termination

Data Structure test Invalid references Invalid pointers Initial value Released related area Special cases in data structures Selected data structure and its duty, does it work?

Performance test Order of the program CPU time Memory Connection time Passing data...

Large scale tests: Testing integrated modules Function test Structure test Performance test Stress test: testing special cases Alpha Beta Acceptance

Function test Similar to black box test Role of integration strategy Integrated parts are considered as a single black box Input/output of the new module

Structure test Similar to white box test Role of integration strategy Integrated parts are considered as a single white box Each module is a block of the integrated module Path coverage is a main goal

Stress test Put the testing part in the worst possible situation, such as: Data load Number of concurrent users Minimum response time The basis is requirement Advertising use for results

Alpha test In developer’s environment By the sponsor(‘s representatives) Sponsor view is important here

Beta test In the environment of the colleagues and testing users By testing users Feedbacks

Acceptance test In the sponsor’s environment Real load Using by real users By the sponsor Most important test to finish the project

Acceptance test: Important considerations Based on the time schedule Minimum time No disturbance for usual activities Good education for users and administration personnel Check its interaction with other systems Note to human relations Sponsor is responsible; but you are involved

For special projects Have special attention on the test process. You may request extra responsibilities or money, test environment and domain knowledge for special tests.