SOFTWARE TESTING DR. VIVEK NALLUR

Similar documents
Testing Introduction. IEEE Definitions

Software testing. Objectives

Software Testing Interview Questions

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

IEEE ComputerSociety 1 Software and Systems Engineering Vocabulary

Testing Overview and Black-Box Testing Techniques

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Introduction to Computers and Programming. Testing

Software Testing. Quality & Testing. Software Testing

Basic Testing Concepts and Terminology

1 White-Box Testing by Stubs and Drivers

An Analysis on Objectives, Importance and Types of Software Testing

Presentation: 1.1 Introduction to Software Testing

Acceptance Criteria. Software Engineering Group 6. 0/3/2012: Acceptance Criteria, v2.0 March Second Deliverable

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects

Software Testing Strategies and Techniques

White Papers: Unit Testing. Unit Testing

Advanced Testing Techniques

Standard for Software Component Testing

Test case design techniques II: Blackbox testing CISS

CS 451 Software Engineering Winter 2009

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

Performance Based Evaluation of New Software Testing Using Artificial Neural Network

The Theory of Software Testing

Test Case Design Techniques

Chapter 8 Software Testing

D6.1 GEEWHEZ Test plan

Software Test Plan (STP) Template

Different Approaches to White Box Testing Technique for Finding Errors

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement

Comparing the Effectiveness of Penetration Testing and Static Code Analysis

APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION


Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

FSW QA Testing Levels Definitions

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Best Practices for Improving the Quality and Speed of Your Agile Testing

CS314: Course Summary

International Software Test Institute

CSTE Mock Test - Part I - Questions Along with Answers

CSTE Mock Test - Part III Questions Along with Answers

MOBILE APPLICATION TESTING ENGINEER

Improved Software Testing Using McCabe IQ Coverage Analysis

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

Test case design techniques I: Whitebox testing CISS

Introduction to Automated Testing

Fail early, fail often, succeed sooner!

ICAPRG529A Apply testing techniques for software development

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization

Standard Glossary of Terms Used in Software Testing. Version 3.01

Testing A Tutorial. Alexander Klaus. Fraunhofer IESE. Dept. Information Systems Quality Assurance

Verification and Validation of Software Components and Component Based Software Systems

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

UML-based Test Generation and Execution

Evolutionary Approach to Coverage Testing of IEC Function Block Applications

Requirements Based Functional Testing

Identification and Analysis of Combined Quality Assurance Approaches

Latest Research and Development on Software Testing Techniques and Tools

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Sample Exam Syllabus

Introduction to Software Engineering. 8. Software Quality

Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing

Random Testing: The Best Coverage Technique - An Empirical Proof

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

Software Testing. Motivation. People are not perfect We make errors in design and code

Name of chapter & details

Software Implementation Technology report

Unit Testing & JUnit

Test Design: Functional Testing

SOFTWARE TESTING - QUICK GUIDE SOFTWARE TESTING - OVERVIEW

Chapter 11, Testing, Part 2: Integration and System Testing

SECTION 4 TESTING & QUALITY CONTROL

Automated Module Testing of Embedded Software Systems

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Testing. Jeffrey Carver University of Alabama. April 7, 2016

CPSC 330 Software Engineering

Test Management and Techniques

Internal Quality Management System Audit Checklist (ISO9001:2015) Q# ISO 9001:2015 Clause Audit Question Audit Evidence 4 Context of the Organization

Testing of safety-critical software some principles

How To Write Software

Agile Software Development Methodologies and Its Quality Assurance

Ingegneria del Software II academic year: Course Web-site: [

Standard Glossary of Terms Used in Software Testing. Version 3.01

Model-based Testing: Next Generation Functional Software Testing

Design of automatic testing tool for railway signalling systems software safety assessment

Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System

Scalable Web Programming. CS193S - Jan Jannink - 1/12/10

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

Lecture 17: Testing Strategies" Developer Testing"

Standard Glossary of Terms Used in Software Testing. Version 3.01

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

Smarter Balanced Assessment Consortium. Recommendation

TESSY Automated dynamic module/unit and. CTE Classification Tree Editor. integration testing of embedded applications. for test case specifications

Do You Have the Right Stuff to be a Good Tester?

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Levels of Software Testing. Functional Testing

Transcription:

SOFTWARE TESTING DR. VIVEK NALLUR VIVEK.NALLUR@SCSS.TCD.IE

OUTLINE OF THIS TALK So ware Testing

SOFTWARE TESTING Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end-user

WHAT CAN TESTING SHOW? Errors Conformance with requirements Performance An indication of quality

V & V Verification refers to the set of tasks that ensure that a so ware correctly implements a specific function Validation refers to a different set of tasks that ensure that a so ware that has been built is traceable to the customer's requirements

WHO TESTS SOFTWARE? Developer Understands the system Tests 'gently' Driven by delivery Independent Tester Must learn about the system Tests 'forcefully' Driven by quality

TESTING VOCABULARY Term Mistake Fault (or defect) Failure Error Meaning A human action that produces an incorrect result An incorrect step, process or data in a program Inability of a system/component to perform its required function Difference between a computed/observed/measured value or condition and true/specified/correct value or condition

OPACITY OF TESTING Depending on how much visibility into the code is available to the tester: Whitebox Testing: The tester can see all the code, and tries to test all possible paths through program logic Blackbox Testing: The tester only knows what the expected outputs are, to a particular set of inputs

SCALE OF TESTING We begin by testing-in-the-small and move towards testingin-the-large Opacity: Whitebox Unit Test (Class) Data structures Boundary conditions Independent paths Error-handling paths

HOW MANY TESTS PER CLASS? Coverage Criteria: Measure what percentage of the code has been exercised by the test suite. Main types are: Function / Method coverage: Has every function / method in the class been called? Statement coverage: Has every statement been executed? Branch coverage: Has every branch of every controlconstruct (if else or while) been executed? Condition coverage: Has each boolean expression been evaluated to both true and false?

int foo (int x, int y) { int z = 0; if ((x>0) && (y>0)) { z = x; } return z; } SAMPLE CODE

WHAT'S THE COVERAGE? If foo is called at least once, function-coverage is satisfied If a test calls foo(1,1), then statement-coverage is satisfied If a test calls foo(0,1) and foo(1,0) then conditioncoverage is satisfied Is branch-coverage satisfied with the previous test?

BOUNDARY-VALUE ANALYSIS Testing at the boundaries between partitions of valid and invalid input Consider a photocopier, which can take valid values from 1-99 for number of copies. Number of boundary value tests: At 1 At 99 Below 1, i.e., 0 Above 99, i.e., 100

EQUIVALENCE PARTITIONING All possible input is sometimes infinite. Hence, divide inputspace into equivalent classes Consider a decision-table that converts marks (out of 100) to grades Marks < 40 D 40-59 C 60-79 B > 80 A Grade 6 partitions for the above table!

TESTING-IN-THE-LARGE Integration Testing System Testing Acceptance Testing

INTEGRATION TESTING Opacity: Blackbox and whitebox Top-down Integration

INTEGRATION TESTING - II Bottom-up Integration

SYSTEM TESTING Testing the behaviour of a system/so ware as per the user requirements. Test the system along with other external peripherals/ so ware/systems to check if user requirements are met Opacity: Blackbox

SYSTEM TESTING - II Kinds of tests to be run include: Functional Testing Installation Testing Usability Testing Security Testing Scalability Testing Performance Testing Inter-operability Testing

ACCEPTANCE TEST Run in the customer's environment, these are carried out by the customer All aspects of the so ware can be tested, and evalauted against the so ware requirements specification Right to refuse delivery if tests fail! Opacity: Blackbox

OTHER TESTING Regression Testing: Selective re-testing of a system/component to verify modifications have not caused unintended effects Beta Testing: Ad-hoc testing by potential users in a production environment. Not very systematic, but can reveal unexpected errors

Test early in the process SYSTEMATIC TEST PLANNING Automate test execution as much as possible (e.g., junit, Jenkins, go, etc.) Create a list of tests and expected output before executing tests

LECTURE ANNOUNCEMENT Lecture on 7th December cancelled! (SFI review)

THAT'S ALL, FOLKS! Questions? Comments?