Chapter 1: Introduction to Software Testing Software Testing

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

(c) Dr. Wolfgang J. Schneider GENERAL TESTING PRINCIPLES Dr. Wolfgang J. Schneider 2003 – 2006.
Lecture 8: Testing, Verification and Validation
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Business Driven Technology Unit 5 Transforming Organizations Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution.
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
BUSINESS DRIVEN TECHNOLOGY
Transforming Organizations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CHAPTER 17 Building Software to Support an Agile Organization
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Software Testing Prasad G.
CHAPTER 19 Building Software.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Introduction to Computer Technology
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Development Life Cycle (SDLC)
Extreme Programming Software Development Written by Sanjay Kumar.
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Appendix D McGraw-Hill/Irwin Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Software Testing.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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 Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
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.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
Introduction to Software Testing Maili Markvardt.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
SELF INTRODUCTION 1. SOFTWARE TESTING By Navin and Bidyut 2.
Testing Integral part of the software development process.
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Transforming Organizations
Quality Management Perfectqaservices.
Verification & Validation
Software engineering – 1
SDLC The systems development life cycle is the foundation for many systems development methodologies such as RAD and agile Systems development life cycle.
Lecture 09:Software Testing
Software testing.
Gathering Systems Requirements
Baisc Of 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 Verification and Validation
Software Verification and Validation
Gathering Systems Requirements
Software Verification and Validation
© Oxford University Press All rights reserved.
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Chapter 1: Introduction to Software Testing 322235 Software Testing By Dr. Wararat Songpan (Rungworawut) Faculty of Computer Science, Department of Science, Khon Kaen University, Thailand

Software tester job??

Software tester job??

Software tester job??

Where is software tester in software development team? Project Manager Tester Team System Analyst Programmer

Career path

Why is Software testing important to a business? Loss of money Loss of time Damage to business reputation Injury or death

Why is Software Testing Important to a business? Developer Independent tester Understands the system but, will test "gently" and, is driven by “delivery” Must learn about the system, but, will attempt to break it and, is driven by “quality”

“Testing”

Don’t care testing

The cost of software development phases Cost Spent Requirements Analysis 3% Specification Design 5% Coding 7% Testing 15% (should be > 50%) Operational and Maintenance 67%**

7 Principles of testing 1) Testing shows presence of defects/Bugs 2) Exhaustive testing is impossible 3) Early testing 4) Defect clustering 5) Pesticide paradox 6) Testing is context depending 7) Absence – of – errors fallacy Source: http://istqbexamcertification.com/what-are-the-principles-of-testing/

Principle 1: Testing shows presence of defects/Bugs Testing can show the defects/Bugs are present, but cannot prove that there are no defects. After testing the application or product thoroughly we cannot say that the product is 100% defect free. Testing always reduces the number of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.

Principle 2: Exhaustive testing is impossible Testing everything including all combinations of inputs and preconditions is not possible. For example: In an application in one screen there are 15 input fields, each having 5 possible values, then to test all the valid combinations you would need 30  517  578  125  (515) tests. This is very unlikely that the project timescales would allow for this number of tests.

What is your test case?

Principle 3: Early testing In the software development life cycle (SDLC) testing activities should start as early as possible and should be focused on defined objectives.

Principle 4: Accumulation of errors There is no equal distribution of errors within one test object. The place where one error occurs, it’s likely to find some more. The testing process must be flexible and respond to this behavior.

Principle 5: Fading effectiveness The effectiveness of tests fades over time. If test-cases are only repeated, they do not expose new errors. Errors, remaining within untested functions may not be discovered. In order to prevent this effect, test-cases must be altered and reworked time by time.

Principle 6: Testing is context depending Testing is basically context dependent. Different kinds of sites are tested differently. For example, safety – critical software is tested differently from an e-commerce site.

Principle 7: False conclusion: no errors equals usable system Error detection and error fixing does not guarantee a usable system matching the users expectations. Early integration of users and rapid prototyping prevents unhappy clients and discussions.

Software testing concepts Software Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not. This activity results in the actual, expected and difference between their results. Software Testing is executing a system in order to identify any gaps, errors or missing requirements in contrary to the actual desire or requirements.

Keywords of testing Error is an fault in the program. There are different types of error are Syntax errors Logical errors Runtime errors Etc.

Keywords of testing Fault is the result of an error that is representation of error such as narrative text, dataflow diagrams, hierarchy charts, source code. Failure occurs when fault executes. Incident – when a failure occurs, it may or may not be readily apparent to the user(cutormer/tester). An incident is the symptom associated with a failure that alerts the user to the occurrence of a failure.

Bug(Programmer) = Defect(Tester) Keywords of testing Bug is found in the development environment before the product is shipped to the respective customer. Defect is found in the product itself after it is shipped to the respective customer. Bug(Programmer) = Defect(Tester)

Keywords of testing ** Test Case - test case has an identity and is associated with a program behavior. A test case also has a set of input and a list of expected outputs. Expected output System Input Actual output

Expected output = Actual output Keywords of testing For example: A Test Case 5,000 Withdraw 5,000 Baht Expected output = Actual output 5,000

Keywords of testing Verification: Are we building the system right? The process of evaluating work-products (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase. Validation: Are we building the right system? The process of evaluating software during or at the end of the development process to determine whether it satisfies specified business requirements from users.

Structural and Functional View S - Specified Behaviors P - Programmed Behaviors P Fault of commission S P S S Fault of omission Specification (expected) Program (observed) P

Structure and Functional View (Cont.) 2,5 Spec. but do not be tested 1,4 Spec. and Test 3,7 Test does not meet Spec. 2,6 Program is not tested 1,3 Program is under test 4,7 Test case do not have program. Specification (expected) Program (observed) S P 2 6 5 1 4 3 7 8 T Test cases (verified)

Software testing methods Black Box Testing (Functional Testing) The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester is oblivious to the system architecture and does not have access to the source code. Typically, when performing a black box test, a tester will interact with the system's user interface by providing inputs and examining outputs without knowing how and where the inputs are worked upon.

Comparing Functional Test Case Identification Methods Test cases (Method A) Test cases (Method B) Black box Black box

Software testing methods White box testing (Structural Testing) White box testing is the detailed investigation of internal logic and structure of the code. White box testing is also called glass testing or open box testing. In order to perform white box testing on an application, the tester needs to possess knowledge of the internal working of the code. The tester needs to have a look inside the source code and find out which unit/chunk of the code is behaving inappropriately.

Comparing Structural Test Case Identification Methods Test cases (Method A) Test cases (Method B) White box White box

Level of Testing (Waterfall model) User Acceptance Testing Software Development Life Cycle Requirements & Specification Design test scripts/test cases System Testing Execute Preliminary Design Design Integration Testing Execute Detailed Coding Design Unit Testing Execute test scripts/test cases Coding

Requirements Phase Testing Activities A preliminary analysis, propose alternative solutions, describe costs and benefits and submit a preliminary plan with recommendations. Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. We can design overall System testing wait for actual system.

Design Phase Testing Activities Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo-code and other documentation. Plan to test in Unit testing and Integration testing

Coding Phase Testing Activities The real code is written here then checks for error or bugs for each functions which are called Unit testing.

Maintenance Phase Testing The final stage of software development, where the software is put into production and runs actual business. Brings all the pieces together into a actual environment and user, verify and validation for errors, bugs and interoperability. This testing phase is called User Acceptance Testing (UAT).

What the customer really needed: Must be tested 322 235 การทดสอบซอฟต์แวร์