MTAT : Software Testing

Similar documents
R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

MTAT Software Engineering

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Software Engineering

T Software Testing and Quality Assurance Test Planning

MTAT Software Engineering Management

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Lecture 1: Introduction to Software Quality Assurance. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Bugs are costly... Kinds of Quality Assurance

ISTQB Certified Tester. Foundation Level. Sample Exam 1

BASICS OF SOFTWARE TESTING AND QUALITY ASSURANCE. Yvonne Enselman, CTAL

Black Box Software Testing

Exam questions- examples

Testing throughout the software life cycle. Software Testing: INF3121 / INF4121

Testing. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

Introduction to software testing and quality process

Introduction to Software Testing Chapter 1 Introduction Paul Ammann & Jeff Offutt

Integration and Testing

Test Workflow. Michael Fourman Cs2 Software Engineering

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

MTAT Software Engineering Management

ISTQB CTFL BH QuestionsAnswers with Explanation

Better Defect Analysis and Defect Prevention for Software Process Quality Improvement

Testing Close to and Post-Release: System, Acceptance, and Regression Testing

A Review Paper on Software Testing

ISTQB CTFL BH0-010 Exam Practice Question Paper

Test s in i g n I Week 14

On successful completion of this course, students will able to

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING IT6004 SOFTWARE ESTING UNIT I : INTRODUCTION

Software Quality Engineering Courses Offered by The Westfall Team

Course Syllabus. Topic Lecture / Seminar Hour Lab Chapter 1 : Managerial Accounting and the Business Environment

Participation of Testing to Attain a Degree of Quality of Software

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

Software Quality Engineering Courses Offered by The Westfall Team

Human Resource Management with SAP

Importance of Software Testing with Study of Various Testing Techniques & Automation Tools

GENERAL PRINCIPLES OF SOFTWARE VALIDATION

SE420 Software Quality Assurance

Software Testing(TYIT) Software Testing. Who does Testing?

SOFTWARE TESTING REVEALED

Chapter 6. Software Quality Management & Estimation

Introduction. Fundamental concepts in testing

Requirements Gathering using Object- Oriented Models

Book Outline. Software Testing and Analysis: Process, Principles, and Techniques

Quality Management with CMMI for Development v.1.3 (2013)

Appendix C: MS Project Software Development Plan and Excel Budget.

ISTQB Sample Question Paper Dump #11

Test Management: Part I. Software Testing: INF3121 / INF4121

Software processes, quality, and standards VTV, fast methods, automation

ISTQB-Level1 ASTQB. American Software Testing Qualifications Board Level 1

Measuring and Assessing Software Quality

9. Verification, Validation, Testing

Chapter 24 - Quality Management. Chapter 24 Quality management

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Software in Medical Devices

Thoughts about modelbased test management. Matti Vuori

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Test Management: Part II. Software Testing: INF3121 / INF4121

Test Management is Risk management. Risk Based Testing

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

Software Quality Management

Software Quality Management

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

Chapter 4 Document Driven Approach for Agile Methodology


ITIL V3 Managing Across the Lifecycle

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

IT6004/ Software Testing Unit-I

1. Why is Testing Necessary? 2. What is Testing? 3. Seven Testing Principles

IT6004/ Software Testing

Introduction to Software Testing

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

ExamsLabs. Latest Study Materials, Valid Dumps - ExamsLabs

Also we will try to recap what we studied in the last class. (Refer Slide Time: 00:35)

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

Functional Safety Implications for Development Infrastructures

What IS a Good Test Case?

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

Evaluating Software Development Environments

INF 3121 Software Testing - Lecture 05. Test Management

Agile Quality Management

Course Prerequisites M&IS Principles of Management (students that do not have the proper prerequisites risk being deregistered from the class).

INTRODUCTION. It is the process used to identify the correctness, completeness and quality of developed computer software.

What is SQA? Software Quality Assurance. Quality Concepts. Quality Concept (cont.)

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER APPLICATIONS COURSE PLAN

Project Management. Agenda - What will you learn today? Theory Lecture Plan. A Software Life-cycle Model Which part will we talk about today?

Software Engineering

Software verification and validation. Introduction

MTAT Business Process Management (BPM) (for Masters of IT) Lecture 1: Introduction

HP ALM: Less Test Cases, More Coverage September 17, 2014

SE420 Software Quality Assurance

KERN COMMUNITY COLLEGE DISTRICT - BAKERSFIELD COLLEGE PSYC B100 COURSE OUTLINE OF RECORD

Intermediate Certificate in Software Testing Syllabus. Version 1.4

Critical Skills for Writing Better Requirements (Virtual Classroom Edition)

Introduction to Software Engineering

Chapter 26. Quality Management

Exam questions- examples

Quality Assurance Activities to Support Product Improvement

Transcription:

MTAT.03.159: Software Testing Lecture 01: Introduction to Software Testing (Textbook Ch. 1-3) Spring 2016 Dietmar Pfahl email: dietmar.pfahl@ut.ee

Structure of Lecture 1 Introduction and Motivation Course Information Definitions and Principles Lab 1

Test?

What is Software Testing? The process of evaluating a program or a system Confirm quality (pass-test) vs. Find defects (fail-test) (Testing paradox)

What is Software Testing? The process of evaluating a program or a system Verifying that the product is right? Validating that the right product is developed

What is Software Testing? The process of evaluating a program or a system 1-Verifying that the product is right? 2-Validating that the right product is developed V...... that the right product has been developed Answer choices: 1 or 2

Verification versus Validation? Correct 1. Verifying that the right product has been developed 2. Validating that the right product has been developed Which statement is correct? 1 or 2? Verifying that the right product has been developed Validating that the right product has been developed

What is Software Testing? The process of evaluating a program or a system Verifying that the product has been developed right Validating that the right product has been developed

Testing Takes Time System development: 1/3 planning 1/6 coding 1/4 component (=unit) test 1/4 system test [Brooks75]

Testing in the process Acceptance test Requ. Spec. System test Design Integration test Code Unit test See Fig 1.6 Textbook

Quality Activities and Software Actual Needs and Constraints User Acceptance (alpha, beta test) Delivered Package Review System Specifications Analysis / Review System Test System Integration Subsystem Design/Specs Unit/ Component Specs Integration Test Analysis / Review Module Test Subsystem Unit/ Components User review of external behavior as it is determined or becomes visible (c) 2008 Mauro Pezzè & Michal Young

Agile methods increase testing [http://www.extremeprogramming.org]

Product Lines Increase Testing [2011]

Product Lines Increase Testing Domain Appc 1 Appc Appc 1 App 1 [Pohl05]

Quality Attributes ISO 9126 (new: 25010)

Test Complexity Quiz Example: 30 variables, 2 levels Test all combinations How long does it take to test, if 5 tests/sec can be executed automatically? Answer choices: 1. Less than 10 sec 2. Less than 1 min 3. Less than 1 hour 4. Less than 1 day 5. Less than 1 year 6. More than 1 year

Test Complexity Quiz Correct

Test Complexity Example: 30 variables, 2 levels -> 2 30 10 9 combinations to test 5 tests/second -> 214748364.8 sec or 6.8 years of test!

Structure of Lecture 1 Introduction and Motivation Course Information Definitions and Principles Lab 1

Course Information/Overview Level: Course at bachelor's level (in English), 2 nd year Credits: 3 ECTS Prerequisite: Compulsory: MTAT.03.094 Software Engineering (6 ECTS, 4 CP) Recommended: MTAT.03.130 Object-oriented Programming (6 ECTS, 4 CP) Work load: Lectures (incl. practical work): 32 hours incl. labs and exam Independent work: 46 hours Assessment: 6 Lab Assignment (work in pairs) 60% of grade (~8 h per lab) Exam (written) 40% of grade (~30 h) Grade scale: A (90%+), B(80%+), C(70%+), D(60%+), E(50%+), F

Letter Grades ECTS recommended distribution: A: 10% B: 25% C: 30% D: 25% E: 10% ECTS = European Credit Transfer and Accumulation System A - An excellent performance, clearly outstanding. The candidate demonstrates excellent judgement and a high degree of independent thinking. B - A very good performance. The candidate demonstrates sound judgement and a very good degree of independent thinking. C - A good performance in most areas. The candidate demonstrates a reasonable degree of judgement and independent thinking in the most important areas. D - A satisfactory performance, but with significant shortcomings. The candidate demonstrates a limited degree of judgement and independent thinking. E - A performance that meets the minimum criteria, but no more. The candidate demonstrates a very limited degree of judgement and independent thinking. F - A performance that does not meet the minimum academic criteria. The candidate demonstrates an absence of both judgement and independent thinking.

Course Objectives The course addresses the essential concepts of software quality control and testing and introduces various testing strategies and types of testing. It will also give an overview of different software defects, software defect management, and organizational aspects of software testing.

Learning Outcomes On successful completion of this course, students will be able to demonstrate knowledge of: The role of testing in the software development process Test planning and documentation Different types of testing techniques Static testing and defect estimation Elective course in autumn (Oliver Vilson)

Goals: Knowledge & Understanding For a passing grade the student must be able to define basic concepts and principles within software testing give an account of the most common techniques for software testing be able to describe the relation between the software testing process and other processes in the product lifecycle

Goals: Skills and Abilities For a passing grade the student must be able to apply a systematic approach for software testing be able to plan the testing (incl. design of test cases) of a small software system be able to test a software system based on a chosen test strategy

Goals: Judgement and Approach For a passing grade the student must understand the complexity of the task to test a software system and be aware of the costs and the impact of different testing activities during the development of a software product.

Lectures (J. Liivi 2-111) Theory + discussions Cover the basic parts of software testing Lecture 1 (11.02) - Introduction to Software Testing Lecture 2 (25.02) - Black-Box Testing Techniques Lecture 3 (10.03) - White-Box Testing Techniques Lecture 4 (24.03) - Static Testing Techniques Lecture 5 (07.04) - Lifecycle, Documentation, Organisation, Tools Lecture 6 (21.04) - Metrics and Test Process Improvement (Test Maturity Model) Lecture 7 (05.05) - Industry Guest Lecture Overview Technical Technical / Managerial Managerial E c o n o m i c s

Lab Sessions (J. Liivi 2-202/207/224/402/512) Preparation, Execution, Report Work in Pairs 1. Issue reporting (10%) 2. Black-box testing (10%) 3. White-box testing (10%) 4. Document inspection and defect estimation (10%) - Bonus: Ad-hoc testing lifecycle (4%) 5. Static code analysis (10%) 7 lab groups 6. Automated Web App Testing (Regression Testing) (10%) Send reports via submission button on course wiki before your next lab starts. Only PDF files will be accepted.

GO TO LABS!!!! (if you don t, you will lose marks) MTAT.03.159 / Lecture 01 / Dietmar Pfahl 2014

Final Exam Written exam (40%) Based on textbook, lectures and lab sessions Open book Dates: Exam 1: 19-May-2015 10:15-12:15 (Liivi 2-405; limit: 75 stud.) Exam 2: 26-May-2015 10:15-12:15 (Liivi 2-405; limit: 75 stud.)

Literature Textbook: Ilene Burnstein: Practical Software Testing Additional reading materials posted on course web

https://courses.cs.ut.ee/2016/swt2016/spring/main/homepage Further Information

SIGN UP TO MESSAGE BOARD (if you don t, you will miss up to date info)

Structure of Lecture 1 Introduction and Motivation Course Information Definitions and Principles Lab 1

Types of Testing system integration (module) unit portability maintainability white box efficiency usability reliability functionality Level (of detail) Characteristics (of product) black box Accessibility (of code)

Definition 1: Error Fault Failure (according to IEEE Standard & textbook) Failure is an event caused by a fault, and a fault is an anomaly of the software caused by an error Error mistake made by human (e.g., programmer) Fault wrong/missing statement in the software (code) Failure inability to perform the program s required functions (correctly) Defect? Bug? Debugging / Fault localization localizing, repairing, re-testing.

Origins and Impact of Faults Fault sources Lack of skills/training Oversight Poor communication Lost in translation Immature process Fig 3.1 Fault context Impact on / of software program Errors Faults Failures User s point of view Poor quality software User dissatisfaction

Definition 2: Error Fault Failure (as it is often used in IDEs/tools) Failure is an event caused by an error, error is a state of the program caused by a fault in the code Fault wrong/missing statement in code (resulting in error) Error incorrect program state (may result in a failure) Failure inability to perform its required functions (correctly) Defect? Bug? Debugging / Fault localization localizing, repairing, re-testing.

Definition 2: Error Fault Failure Example: Inputs: Correct (Expected) result? Actual result? Fault? Error? Failure? Program state: x, i, count, PC

Definition 2: Error Fault Failure Example: Correct/expected result: count = 1

Types of Defects (Faults) Requirements defects Design defects Coding defects Testing defects Orthogonal Defect Classification (ODC) Fig 3.2

Definition: Test Case Test Case Specifications (and record) A Test Case consists of: A set of inputs + expected outputs Execution conditions Example of execution condition : When pressing the save button of a word processer, what happens depends on what you did previously (i.e., what you wrote) Test Suite = set of Test Cases

Definition: Test Oracle Test Oracle = a mechanism used for determining whether a test has passed or failed It provides the expected result for a test, e.g. from Specification document, mathematical formula, program model, other program, historical data, belief of tester, Test Verdict = the actual judgment after a test case terminates pass/fail/warning/don t know Sometimes it is difficult/impossible to find an oracle Non-functional quality aspects / Scientific computing

Why do faults occur in software? (Ch 3) Software is written by humans Who know something, but not everything Who have skills, but aren t perfect Who don t usually use rigorous methods Who do make mistakes (errors) Under increasing pressure to deliver to strict deadlines No time to check, assumptions may be wrong Systems may be incomplete Software is complex, abstract and invisible Hard to understand Hard to see if it is complete or working correctly No one person can fully understand large systems Numerous external interfaces and dependencies

Principle 1 Purpose of testing Testing is the process of exercising a software component using a selected set of test cases, with the intent of Revealing defects Evaluating quality The testing paradox Testing can t show that defects don t exist -- The more you test software, the more immune it becomes to your tests

Principles (cont.) 2: A good test case When the test objective is to detect defects, then a good test case is one that has high probability of revealing a yet undetected defect(s) 3: Test result The results should be inspected meticulously 4: Expected output A test case must contain the expected output

Principles (cont.) 5: Input Test cases should be developed for both valid and invalid input conditions 6: Fault content estimation The probability of the existence of additional defects in a software component is proportional to the number of defects already detected in that component 7: Test organization Testing should be carried out by a group that is independent of the development group

Principles (cont.) 8: Repeatable Tests must be repeatable and reusable 9: Planned Testing should be planned 10: Life cycle Testing activities should be integrated into the software life cycle 11: Creative Testing is a creative and challenging task

Recommended Textbook Exercises Chapter 1 2, 3 Chapter 2 1, 3, 5 Chapter 3 1, 2, 3, 6

Structure of Lecture 1 Introduction and Motivation Course Information Definitions and Principles Lab 1

Lab 1 Issue (Defect) Reporting Issues / Defects are a valuable asset if reported right Analysis of defect reports facilitates: Decision support: Assignment, time/effort allocation, prioritization, etc. Prediction: Severity, Resolution time/effort, etc. Defect prevention: Defect classification typical / recurring defects

Lab 1 Issue (Defect) Reporting Example Report Admin Data Short Description Reproduction Steps Expected vs Actual Result Additional Informaton (screen shots, stack traces, etc.) Comments / Discussion JIRA

Lab 1 Issue (Defect) Reporting Workflow Regression Test ATM V1 V2

Next 2 Weeks Lab 1: Issue Reporting Next Week! Lecture 2: Black-Box Testing Techniques In addition to do: Read textbook chapters 1-3 (available via OIS)