Test-Driven Development. SC12 Educator s Session November 13, 2012

Size: px
Start display at page:

Download "Test-Driven Development. SC12 Educator s Session November 13, 2012"

Transcription

1 Test-Driven Development Educator s Session November 13, 2012

2 Outline Software Quality Overview of Testing Automated Testing Tools Test-Driven Development Educator's Session 2

3 SOFTWARE QUALITY Educator's Session 3

4 Multiple Definitions Software Quality Developer s View vs. User s View Developers = Users = Educator's Session 4

5 Definitions Software must do the right things Perform the right functions Often referred to as Software must do things right Perform intended functions without problems Often referred to as Educator's Session 5

6 Failure Quality Definitions: Defects Fault Error Educator's Session 6

7 Quality Definitions: Defects Educator's Session 7

8 Customers/Users Quality Focus Developers Educator's Session 8

9 Defect Prevention QA Activities: Types Defect Reduction Defect Containment Educator's Session 9

10 Pre-release QA Activities: Timing Defect Prevention & Reduction Remove as many defects as possible before release Post-release Repair failures Reduces defects Significantly more expensive than pre-release Bad PR Contain defects Minimize impact Expensive, so limited in application Educator's Session 10

11 Defect Prevention: Introduction Reduce the chance of fault injection Approach depends on source There may be specific tools or technologies that can also help Important to establish the correct root-cause Educator's Session 11

12 Defect Prevention: Education and Training People are most important factor in quality and success Education and Training can improve the quality of the work done by practitioners Elimination of misconceptions will reduce the probability of defect injection Educator's Session 12

13 Defect Prevention: Education and Training Product and Domain Specific Knowledge Software Development Expertise Knowledge about tools, methods, techniques Development Process Knowledge Educator's Session 13

14 Defect Prevention: Formal Methods Help eliminate error sources and verify the absence of faults Formal Methods Formal Specification Formal Verification Educator's Session 14

15 Formal Methods: Axiomatic Approach Code Conditions Describing Program State Before Execution Axiom 1 Axiom 2 Axiom 3 Program Meaning Conditions Describing Program State After Execution Biggest obstacle to use of formal methods: Educator's Session 15

16 Defect Prevention: Other Techniques Use of additional software development methodologies (besides Formal Methods) Prevent extra functionality Reduce complexity Better management Concrete process definition Enforcement of standards Use of specific tools Enforce coding standards Educator's Session 16

17 QA Activities: Defect Prevention Educator's Session 17

18 Defect Reduction: Introduction Unrealistic to expect Defect Prevention step to stop all defects Different approaches Educator's Session 18

19 Defect Reduction: Testing Execution of software and checking results Locates failures Isolate and fix the fault(s) that led to the failure When to test Need some executable Unit tests of components through acceptance test of entire system Can also use prototypes Educator's Session 19

20 Defect Reduction: What to Test Functional (black box) Structural (white box) Educator's Session 20

21 Defect Reduction: When to Stop Testing Can use coverage criteria Assumption: Reliability goals Educator's Session 21

22 Defect Reduction: Observations Many other techniques available In-field measurement and repair not normally considered part of QA Important to determine risky components Educator's Session 22

23 QA Activities: Defect Reduction Educator's Session 23

24 Defect Containment: Introduction Important for systems where the impact of failures is substantial Not all faults can be eliminated (cost, time) Educator's Session 24

25 Defect Containment: Fault Tolerance Different from manufacturing Approaches Does not focus on identifying and removing the faults that cause the failures Educator's Session 25

26 Safety-critical systems: Defect Containment: Safety Assurance Address even low probability failures Safety Assurance techniques Educator's Session 26

27 QA Activities: Defect Containment Educator's Session 27

28 INTRODUCTION TO TESTING Educator's Session 28

29 Types of Testing Educator's Session 29

30 Unit Testing What? Who? What is the focus? What type of testing techniques do we use? Educator's Session 30

31 Component Testing What? Who? What type of testing techniques do we use? COTS and CBSD Educator's Session 31

32 Integration Testing What? Who? What is the focus? What type of testing techniques do we use? Merged with System Testing? Educator's Session 32

33 System Testing What? Who? What is the focus? What type of testing techniques do we use? Embedded systems? Educator's Session 33

34 Acceptance Testing What? Who? What is the focus? What type of testing techniques do we use? Educator's Session 34

35 Functional vs. Structural Educator's Session 35

36 Individual elements Functional vs. Structural Interactions of elements Inputs and outputs functional Educator's Session 36

37 Black Box (Functional) Testing: Overview Educator's Session 37

38 Planning Black Box (Functional) Testing: Process Execution Analysis Educator's Session 38

39 White Box (Structural) Testing: Overview Educator's Session 39

40 Stopping Criteria: Coverage-Based Ensures some item has been covered Assumes that Approaches Educator's Session 40

41 Define the model Coverage Based Testing: Process Check the model elements Define the coverage criteria Derive the test cases Educator's Session 41

42 Test Activities Test Planning Test Execution Analysis and Follow-up Educator's Session 42

43 High level goal: Test Planning Make the following decisions Have to account for personnel Educator's Session 43

44 What is needed? Test Planning: Test Case Creation How are they generated? Educator's Session 44

45 What is a test suite? Test Planning: Test Suite Preparation How are they created? Expensive should be maintained for future use Educator's Session 45

46 Test Planning: Preparation of Procedure Ordering of test cases One test case should leave the system ready to execute the next Assignment of personnel Educator's Session 46

47 Major steps: Test Execution: Overview Prevent failed test cases from halting execution Environment Educator's Session 47

48 Specific Approaches to Testing Control Flow Testing Partition-based Testing Usage-based Testing Data-flow Testing Educator's Session 48

49 Systematic Testing Drawbacks to ad hoc testing One way to structure is to build a checklist Educator's Session 49

50 Control Flow Testing: Overview Model of the software is a graph first A B C D E Use F G last Educator's Session 50

51 Control Flow Testing: Model Construction Educator's Session 51

52 Control Flow Testing: Model Construction Can also be done with black box testing Elements Educator's Session 52

53 Control Flow Testing: Path Selection Educator's Session 53

54 Control Flow Testing: Path Selection Educator's Session 54

55 Control Flow Testing: Model Construction L1: input(a,b,c) L2: d b*b 4*a*c L3: If (d>0) then L4: r 2 L5: else_if (d=0) L6: r 1 L7: else_if (d<0) L8: r 0 L9: output (r) Educator's Session 55

56 Control Flow Testing: Creating Test Cases If each decision is based on an independent variable, then just choose appropriate values Can use the idea of equivalence classes If decisions are not independent, some branches may be eliminated as infeasible Some decisions may be based on processing between decisions nodes may be hard to develop test cases Educator's Session 56

57 Loops Loops complicate the CFT idea. Why? Parts of a loop: Educator's Session 57

58 Loops While (C) do {B} For (I; C; U) do {B} Educator's Session 58

59 Loop Testing: Difficulties When loops are nested, number of paths quickly grows unmanageable Complete path coverage not possible, have to be selective Where do most problems occur? What types of test cases do we need and why? Educator's Session 59

60 Loop Testing: Difficulties Concatenation/Nesting of loops How can we reduce number of test cases? Educator's Session 60

61 Specific Approaches to Testing Control Flow Testing Partition-based Testing Usage-based Testing Data-flow Testing Educator's Session 61

62 Partition Based Testing Benefits Increased coverage Reduced overlap Examples: Solve for root of ax 2 + bx + c = 0 Thermostat Educator's Session 62

63 Partition Testing: Theory A set S contains a list of unique elements Partition of S creates subsets G 1, G 2, G n such that Sets are mutually exclusive Sets are collectively exhaustive G 1..G n are equivalence classes if created based on some definition of equality Properties Symmetric Transitive Reflexive Educator's Session 63

64 AUTOMATED TESTING TOOLS Educator's Session 64

65 Automated Testing Frameworks Enable set of tests to be executed repeatedly Family of tools junit cunit (xunit) Demo Educator's Session 65

66 cunit Framework to create and execute tests Assertions CU_ASSERT CU_ASSERT_TRUE CU_ASSERT_FALSE CU_ASSERT_EQUAL CU_ASSERT_NOT_EQUAL Educator's Session 66

67 cunit: Test Registry Repository of test suites and tests Using the test registry Create Clean up Adding tests Create a test suite Add tests to the test suite Educator's Session 67

68 Can run: All tests Individual suites Individual tests cunit: Running Tests Modes Automated non-automated / XML output Basic non-automated / stdout output Console interactive console under user control Educator's Session 68

69 TEST-DRIVEN DEVELOPMENT Educator's Session 69

70 Test-Driven Development: Introduction & Background Basic idea: Part of the agile software development approach Pair programming Educator's Session 70

71 Test-Driven Development: Overview Focus on unit tests Often require Can be automated or manual Can be performed by developers or testers Educator's Session 71

72 Test-Driven Development: Motivation Programming practice that instructs developers to: Test-Driven Development Educator's Session 72

73 Test-Driven Development: Definition From the Agile Alliance Test-driven development (TDD) is the craft of producing automated tests for production code, and using that process to drive design and programming. For every tiny bit of functionality in the production code, you first develop a test that specifies and validates what the code will do. You then produce exactly as much code as will enable that test to pass. Then you refactor (simplify and clarify) both the production code and the test code. Educator's Session 73

74 Test-Driven Development: Additional Thoughts Refactoring Not a software development methodology Provides automated test Educator's Session 74

75 Test-Driven Development: Process Educator's Session 75

76 Test-Driven Development: Example Story Educator's Session 76

77 Test-Driven Development: Automated Testing TDD assumes the presence of an automated testing framework Test Harnesses xunit Lets users write tests to initialize, execute, and make assertions about code being tested Tests can serve as documentation Educator's Session 77

78 Test-Driven Development: Evaluation Performed in Industry and Academia Industrial studies 4 studies in small companies Measured defect density Results Programmers using TDD produced code that passed 18% - 50% more tests TDD programmers spent less time debugging TDD decreased productivity but they wrote more test cases Educator's Session 78

79 Test-Driven Development: Challenges to Adoption Educator's Session 79

80 Test-Driven Development: Example Design a system to perform financial transactions with money that may be in different currencies For example If the exchange rate from Swiss Francs to US Dollars is 2 to 1, then we can calculate 5 USD + 10 CHF = 10 USD 5 USD + 10 CHF = 20 CHF Educator's Session 80

81 References Slides adapted from materials in: Roger Pressman. Software Engineering: A Practitioner s Approach. 7th edition. Jeff Tian. Software Quality Engineering: Testing, Quality Assurance and Quantifiable Improvement. Jansen, D. and Saiedian, H. Test-Driven Development: Concepts, Taxonomy, and Future Direction. Computer. Sept p Erdogmus, H., Morisio, M., and Torchiano, M. On the Effectiveness of the Test-First Approach to Programming. IEEE Transactions on Software Engineering. 31(5): March Example taken from Kenneth Anderson, Univ. of Colorado, Boulder Educator's Session 81

82 Materials Updated slides and handouts available on the web Educator's Session 82

83 HANDS-ON TIME Educator's Session 83

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

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Iteration Advantages: bringing testing into the development life

More information

Introduction to Computers and Programming. Testing

Introduction to Computers and Programming. Testing Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 13 April 16 2004 Testing Goals of Testing Classification Test Coverage Test Technique Blackbox vs Whitebox Real bugs and software

More information

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

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Software Quality Engineering Slide (Ch.12) 1 Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian, tian@engr.smu.edu www.engr.smu.edu/ tian/sqebook Chapter 12.

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden Learning and Coaching Agile Methods Görel Hedin Computer Science Lund University, Sweden Background Two undergraduate courses at Lund University XP course (mandatory, 2nd year, around 100 students) Coaching

More information

Design of Acceptance Test Process through Comparative Analysis of the Test Automation Technique

Design of Acceptance Test Process through Comparative Analysis of the Test Automation Technique , pp.170-174 http://dx.doi.org/10.14257/astl.2015. Design of Acceptance Test Process through Comparative Analysis of the Test Technique Jung-Ah Shim 1, Hyun-Jung Kwon 2,Hyun-ju Jung 3 and Moon-Sung Hwang

More information

Fail early, fail often, succeed sooner!

Fail early, fail often, succeed sooner! Fail early, fail often, succeed sooner! Contents Beyond testing Testing levels Testing techniques TDD = fail early Automate testing = fail often Tools for testing Acceptance tests Quality Erja Nikunen

More information

Realizing Continuous Performance Management

Realizing Continuous Performance Management Your logo here Realizing Continuous Performance Management Steven Haines Quest Software Java Domain Expert February 14, 2008 Agenda State of the Market Cost of Mistakes Test-Driven Development Continuous

More information

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

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Testing Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To discuss the distinctions between validation testing and defect t testing To describe the

More information

Software Process for QA

Software Process for QA Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called

More information

Testing Introduction. IEEE Definitions

Testing Introduction. IEEE Definitions Testing Introduction IEEE Definitions Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the

More information

An Introduction to. Metrics. used during. Software Development

An Introduction to. Metrics. used during. Software Development An Introduction to Metrics used during Software Development Life Cycle www.softwaretestinggenius.com Page 1 of 10 Define the Metric Objectives You can t control what you can t measure. This is a quote

More information

Advanced Test-Driven Development

Advanced Test-Driven Development Corporate Technology Advanced Test-Driven Development Software Engineering 2007 Hamburg, Germany Peter Zimmerer Principal Engineer Siemens AG, CT SE 1 Corporate Technology Corporate Research and Technologies

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

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

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and

More information

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects TORRY HARRIS BUSINESS SOLUTIONS Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects Ganapathi Nanjappa 4/28/2010 2010 Torry Harris Business Solutions. All rights reserved Page

More information

A Survey of Evidence for Test Driven Development in Academia

A Survey of Evidence for Test Driven Development in Academia A of Evidence for Test Driven Development in Academia Chetan Desai, David Janzen, Kyle Savage Computer Science California Polytechnic State University San Luis Obispo, California USA {cdesai, djanzen}@calpoly.edu

More information

Introduction to extreme Programming (XP)

Introduction to extreme Programming (XP) Introduction to extreme Programming (XP) Extreme Programming (XP) Kent Beck C3 Project Chrysler Comprehensive Compensation system. XP Values: Communication Courage Feedback Simplicity Established the Twelve

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

Introduction to Automated Testing

Introduction to Automated Testing Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases

More information

Web Application Regression Testing: A Session Based Test Case Prioritization Approach

Web Application Regression Testing: A Session Based Test Case Prioritization Approach Web Application Regression Testing: A Session Based Test Case Prioritization Approach Mojtaba Raeisi Nejad Dobuneh 1, Dayang Norhayati Abang Jawawi 2, Mohammad V. Malakooti 3 Faculty and Head of Department

More information

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization Negar Koochakzadeh Vahid Garousi Software Quality Engineering Research Group University of Calgary, Canada Acknowledging funding and

More information

Unit Testing with zunit

Unit Testing with zunit IBM Software Group Rational Developer for System z Unit Testing with zunit Jon Sayles / IBM - jsayles@us.ibm.com IBM Corporation IBM Trademarks and Copyrights Copyright IBM Corporation 2013, 2014. All

More information

Testhouse Training Portfolio

Testhouse Training Portfolio Testhouse Training Portfolio TABLE OF CONTENTS Table of Contents... 1 HP LoadRunner 4 Days... 2 ALM Quality Center 11-2 Days... 7 HP QTP Training Course 2 Days... 10 QTP/ALM Intensive Training Course 4

More information

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

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Product Development Best Practices

Product Development Best Practices Product Development Best Practices An Agile, User-centric Software Development Lifecycle Marc Nadeau, Senior Director, QA, Blackboard Thursday, July 12, 2007 Agenda Introduction to the Blackboard SDLC

More information

Software quality engineering. Quality assurance. Testing

Software quality engineering. Quality assurance. Testing 4 Software Quality Engineering c Jeff Tian, to be published by John Wiley, 2005 Software quality engineering Quality assurance Testing Figure 1.1. engineering Scope and content hierarchy: Testing, quality

More information

Agile Testing Overview

Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 1 Agile Myths, Busted Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feelsgood processes. Quite the contrary. As Mary Poppendieck

More information

Nova Software Quality Assurance Process

Nova Software Quality Assurance Process Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance

More information

Two case studies of Open Source Software Development: Apache and Mozilla

Two case studies of Open Source Software Development: Apache and Mozilla 1 Two case studies of Open Source Software Development: Apache and Mozilla Audris Mockus, Roy Fielding, and James D Herbsleb Presented by Jingyue Li 2 Outline Research questions Research methods Data collection

More information

Agile Testing and Extreme Programming

Agile Testing and Extreme Programming Agile Testing and Extreme Programming bret@pettichord.com www.pettichord.com March 2003 Copyright 2003 Bret Pettichord. All rights reserved. The Agile Alliance Values We have come to value: Individuals

More information

ICAgile Learning Roadmap Agile Testing Track

ICAgile Learning Roadmap Agile Testing Track International Consortium for Agile ICAgile Learning Roadmap Agile Testing Track Learning Objectives Licensing Information The work in this document was facilitated by the International Consortium for Agile

More information

Software Testing Strategies and Techniques

Software Testing Strategies and Techniques Software Testing Strategies and Techniques Sheetal Thakare 1, Savita Chavan 2, Prof. P. M. Chawan 3 1,2 MTech, Computer Engineering VJTI, Mumbai 3 Associate Professor, Computer Technology Department, VJTI,

More information

Comparing Agile Software Processes Based on the Software Development Project Requirements

Comparing Agile Software Processes Based on the Software Development Project Requirements CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical

More information

An Introduction to Agile Engineering Practices

An Introduction to Agile Engineering Practices An Introduction to Agile Engineering Practices Kane Mar Danube Technologies, Inc 1 The New New Product Development Game - Takeuchi and Nonaka 2 photo: http://www.flickr.com/photos/nicmcphee/ 3 4 From:

More information

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

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging

More information

Agile Software Development and Service Science

Agile Software Development and Service Science Agile Software Development and Service Science How to develop IT-enabled Services in an Interdisciplinary Environment Andreas Meier Institute of Applied Information Technology (InIT) Zurich University

More information

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automation Success A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automated Testing Success 2 Secret #1 Practice Exceptional Leadership If you

More information

Testing in Agile methodologies easier or more difficult?

Testing in Agile methodologies easier or more difficult? Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych L.Stapp@mini.pw.edu.pl L.Stapp@sjsi.org Professor in

More information

Agile Software Engineering Practice to Improve Project Success

Agile Software Engineering Practice to Improve Project Success Agile Software Engineering Practice to Improve Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems dietmar.winkler@qse.ifs.tuwien.ac.at

More information

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006 Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison

More information

Test Management and Techniques

Test Management and Techniques These slides are distributed under the Creative Commons License. In brief summary, you may make and distribute copies of these slides so long as you give the original author credit and, if you alter, transform

More information

Real Time Embedded Software Development Using Agile Technology An Experience Report

Real Time Embedded Software Development Using Agile Technology An Experience Report Real Time Embedded Software Development Using Agile Technology An Experience Report Vincent Rivas Joseph N Frisina BAE SYSTEMS Information and Electronic Systems Integration Inc CNIR Agile Development

More information

Improved Software Testing Using McCabe IQ Coverage Analysis

Improved Software Testing Using McCabe IQ Coverage Analysis White Paper Table of Contents Introduction...1 What is Coverage Analysis?...2 The McCabe IQ Approach to Coverage Analysis...3 The Importance of Coverage Analysis...4 Where Coverage Analysis Fits into your

More information

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1 Modern practices 2.3.2015 1 Today s lecture Learn what some modern SW engineering topics are about A peek to some research topic of our department 2 3 4 5 6 How the lectures continue? 02.03 Modern practices

More information

Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou

Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou {bnielsen ask}@cs.auc.dk Unit Testing Code that isn t tested doesn t work Code that isn t regression tested suffers from code rot (breaks

More information

Software Quality Testing Course Material

Software Quality Testing Course Material Prepared by Vipul Jain Software Quality Testing Course Material Course content is designed and will be taught in such a manner in order to make a person job ready in around 10-12 weeks. Classroom sessions

More information

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and software design and development. We will be presenting a

More information

Introduction to Software Engineering. 8. Software Quality

Introduction to Software Engineering. 8. Software Quality Introduction to Software Engineering 8. Software Quality Roadmap > What is quality? > Quality Attributes > Quality Assurance: Planning and Reviewing > Quality System and Standards 2 Sources > Software

More information

TOP 3 STRATEGIES TO REDUCE RISK IN AUTOMOTIVE/IN-VEHICLE SOFTWARE DEVELOPMENT

TOP 3 STRATEGIES TO REDUCE RISK IN AUTOMOTIVE/IN-VEHICLE SOFTWARE DEVELOPMENT TOP 3 STRATEGIES TO REDUCE RISK IN AUTOMOTIVE/IN-VEHICLE SOFTWARE DEVELOPMENT Go beyond error detection to ensure safety and security TABLE OF CONTENTS The Three Biggest Challenges...4 Ensure compliance

More information

Software Architecture Improvement through Test-Driven Development

Software Architecture Improvement through Test-Driven Development Software Architecture Improvement through Test-Driven Development David S. Janzen University of Kansas Electrical Engineering and Computer Science Lawrence, Kansas USA djanzen@ku.edu 1. PROBLEM & MOTIVATION

More information

Agile Software Development and Service Science

Agile Software Development and Service Science DOI V Agile Software Development and Service Science How to develop IT-enabled Services in an Interdisciplinary Environment Andreas Meier, Jenny C. Ivarsson Abstract This paper shows the necessary steps,

More information

Schools of Software Testing

Schools of Software Testing Schools of Software Testing bret@pettichord.com www.pettichord.com March 2007 Copyright 2003-2007 Bret Pettichord. Permission to reproduce granted with attribution. 2 What is a School? Defined by Intellectual

More information

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies Thirumalesh Bhat Center for Software Excellence One Microsoft Way Redmond, WA 98052 thirub@microsoft.com ABSTRACT This paper

More information

Software Testing. Quality & Testing. Software Testing

Software Testing. Quality & Testing. Software Testing Software Testing Software Testing Error: mistake made by the programmer/developer Fault: a incorrect piece of code/document (i.e., bug) Failure: result of a fault Goal of software testing: Cause failures

More information

An Introduction to text-based test automation and the TextTest tool

An Introduction to text-based test automation and the TextTest tool An Introduction to text-based test automation and the TextTest tool Contentions 1. That there are circumstances where xunit-style testing isn t the best choice. 2. That the text-based approach is an obvious

More information

Identification and Analysis of Combined Quality Assurance Approaches

Identification and Analysis of Combined Quality Assurance Approaches Master Thesis Software Engineering Thesis no: MSE-2010:33 November 2010 Identification and Analysis of Combined Quality Assurance Approaches Vi Tran Ngoc Nha School of Computing Blekinge Institute of Technology

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

An Overview of Quality Assurance Practices in Agile Methodologies

An Overview of Quality Assurance Practices in Agile Methodologies T-76.650 SEMINAR IN SOFTWARE ENGINEERING, SPRING 2004 1 An Overview of Quality Assurance Practices in Agile Methodologies Olli P. Timperi Abstract The focus of literature and debates of agile methodologies

More information

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

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization KanwalpreetKaur #, Satwinder Singh * #Research Scholar, Dept of Computer Science and

More information

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries Deep Agile Blending Scrum and Extreme Programming Jeff Sutherland Ron Jeffries Separation of XP and Scrum Methods * Largely Historical * XP chose to write more down * XP programmer focus * Successful Scrum

More information

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies Thirumalesh Bhat Center for Software Excellence One Microsoft Way Redmond, WA 98052 thirub@microsoft.com Nachiappan Nagappan

More information

Test-Driven Development of IEEE 1451 Transducer Services and Application

Test-Driven Development of IEEE 1451 Transducer Services and Application 60 Telfor Journal, Vol. 4, No. 1, 2012. Test-Driven Development of IEEE 1451 Transducer Services and Application Dušan Marković, Uroš Pešović, Željko Jovanović, and Siniša Ranđić 1 Abstract IEEE 1451 standard

More information

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia Software Development Lifecycle Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia About Me Currently manage a team of 10 Program Managers at Microsoft Research Asia Over

More information

An Initial Investigation of Test Driven Development in Industry

An Initial Investigation of Test Driven Development in Industry An Initial Investigation of Test Driven Development in Industry Boby George Department of Computer Science North Carolina State University Raleigh, NC 2795-7534 (+1) 919 01 2922 bobygeorge@ncsu.edu Laurie

More information

An Analysis on Objectives, Importance and Types of Software Testing

An Analysis on Objectives, Importance and Types of Software Testing Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 2, Issue. 9, September 2013,

More information

Software developers are known for adopting new technologies and practices on the

Software developers are known for adopting new technologies and practices on the feature s o f t w ar e m e t r ic s Does Test-Driven Development Really Improve Software Design Quality? David S. Janzen, California Polytechnic State University, San Luis Obispo Hossein Saiedian, University

More information

Metrics in Software Test Planning and Test Design Processes

Metrics in Software Test Planning and Test Design Processes Master Thesis Software Engineering Thesis no: MSE-2007:02 January 2007 Metrics in Software Test Planning and Test Design Processes Wasif Afzal School of Engineering Blekinge Institute of Technology Box

More information

The Changing Role of Software Tester

The Changing Role of Software Tester The Changing Role of Software Tester Anna Royzman ari16a@gmail.com Abstract In 2008 my company reorganized into product units and adopted Agile process methodology. As a result, my QA manager position

More information

Random Testing: The Best Coverage Technique - An Empirical Proof

Random Testing: The Best Coverage Technique - An Empirical Proof , pp. 115-122 http://dx.doi.org/10.14257/ijseia.2015.9.12.10 Random Testing: The Best Coverage Technique - An Empirical Proof K Koteswara Rao 1 and Prof GSVP Raju 2 1 Asst prof, (PhD) @JNTUK, CSE Department,

More information

Agile Software Development compliant to Safety Standards?

Agile Software Development compliant to Safety Standards? DB AG/Christian Bedeschinski www.thalesgroup.com/germany Agile Software Development compliant to Safety Standards? Christian Scholz Thales Transportation Systems 2 / Content Motivation Agile Software Development

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Using Agile with Large, Geographically Dispersed Development Teams

Using Agile with Large, Geographically Dispersed Development Teams Using Agile with Large, Geographically Dispersed Development Teams Ade Miller Development Manager, patterns & practices group (Development Lead, Visual Studio Tools for Office) Microsoft Corporation 2010

More information

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

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Test-Driven Development

Test-Driven Development Test-Driven Development An Introduction Mattias Ståhlberg mattias.stahlberg@enea.com Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.

More information

Latest Research and Development on Software Testing Techniques and Tools

Latest Research and Development on Software Testing Techniques and Tools General Article International Journal of Current Engineering and Technology E-ISSN 2277 4106, P-ISSN 2347-5161 2014 INPRESSCO, All Rights Reserved Available at http://inpressco.com/category/ijcet Rasneet

More information

CS 451 Software Engineering Winter 2009

CS 451 Software Engineering Winter 2009 CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Testing Process Testing Testing only reveals the presence of defects Does not identify

More information

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

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. DEPARTMENT OF COMPUTER SCIENCE, TECHNICAL REPORT SERIES Testing Guidelines for Student Projects Stephen Brown and Rosemary Monahan

More information

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

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

How To Understand Software Engineering

How To Understand Software Engineering PESIT Bangalore South Campus Department of MCA SOFTWARE ENGINEERING 1. GENERAL INFORMATION Academic Year: JULY-NOV 2015 Semester(s):III Title Code Duration (hrs) SOFTWARE ENGINEERING 13MCA33 Lectures 52Hrs

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice Life-Cycle Model Software Life-Cycle Models Xiaojun Qi It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and

More information

Standard for Software Component Testing

Standard for Software Component Testing Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document

More information

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00 CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00 SOFTWARE TESTING 2. (Catalog description) Explores structural (glass box) methods for testing software.

More information

Introduction to Agile Software Development

Introduction to Agile Software Development Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)

More information

Fundamentals of Measurements

Fundamentals of Measurements Objective Software Project Measurements Slide 1 Fundamentals of Measurements Educational Objective: To review the fundamentals of software measurement, to illustrate that measurement plays a central role

More information

Virtual Platforms Addressing challenges in telecom product development

Virtual Platforms Addressing challenges in telecom product development white paper Virtual Platforms Addressing challenges in telecom product development This page is intentionally left blank. EXECUTIVE SUMMARY Telecom Equipment Manufacturers (TEMs) are currently facing numerous

More information

SOFTWARE TESTING TRAINING COURSES CONTENTS

SOFTWARE TESTING TRAINING COURSES CONTENTS SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

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

Scalable Web Programming. CS193S - Jan Jannink - 1/12/10 Scalable Web Programming CS193S - Jan Jannink - 1/12/10 Administrative Stuff Computer Forum Career Fair: Wed. 13, 11AM-4PM (Just in case you hadn t seen the tent go up) Any problems with MySQL setup? Review:

More information

A Lightweight Semi-automated Acceptance Test-Driven Development Approach for Web Applications

A Lightweight Semi-automated Acceptance Test-Driven Development Approach for Web Applications A Lightweight Semi-automated Acceptance Test-Driven Development Approach for s Diego Clerissi, Maurizio Leotta, Gianna Reggio, Filippo Ricca Abstract: Applying Acceptance Test Driven Development (ATDD)

More information

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Comprehensive Static Analysis Using Polyspace Products A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Introduction Verification of embedded software is a difficult task, made

More information

Ten Practices of High Performance Teams

Ten Practices of High Performance Teams Ten Practices of High Performance Teams Noopur Davis Davis Systems Better Software Conference and Expo Las Vegas, NV DAVIS 1 2009 Outline Background Ten practices of high-performance teams 1. Self-directed

More information

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

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong

More information

The Effect of XP Testing on External Quality and Performance

The Effect of XP Testing on External Quality and Performance What Makes Testing Work: Nine Case Studies of Software Development Teams Christopher D Thomson* Business School University of Hull Hull, UK c.thomson@hull.ac.uk Mike Holcombe, Anthony J H Simons Department

More information