8. Quality Assurance

Size: px
Start display at page:

Download "8. Quality Assurance"

Transcription

1 8. Quality Assurance Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution- ShareAlike 3.0 Unported License. Based on a work at dirkriehle.com.

2 Focus of Quality Assurance Chapter 1 / 2 Good Enough? 2012 Dirk Riehle - All Rights Reserved 2

3 Focus of Quality Assurance Chapter 2 / 2 Scope Time Quality Cost 2012 Dirk Riehle - All Rights Reserved 3

4 Content of Quality Assurance Chapter 1. Quality Assurance Quality and quality assurance Types of tests and testing Traditional vs. agile QA 2. Principles General principles Coding guidelines Collective code ownership 3. Programming Refactoring Test-first programming Test-driven Development 4. Team Collaboration Configuration management Build management Continuous integration Pair programming 2012 Dirk Riehle - All Rights Reserved 4

5 Quality (Definition) Definition (Relative) The quality of a software system is the degree to which it conforms to its stakeholders' (sponsors, users, developers) expectations. Conformance Verified against specification Problematic if there is none Allows for good enough As established in feedback loop Definition (Absolute) The quality of a software system is the preferential ordering defined by its stakeholders when compared with alternative options. Preference Better user experience More complete functionality Less bugs, more robust Better maintainable 2012 Dirk Riehle - All Rights Reserved 5

6 Quality Assurance (Definition) Definition Quality assurance is the process of ensuring that a software system has a defined degree of quality. Assurance Process Overall quality is typically realized by assuring the quality of the individual practices and Process Practices A.k.a. constructive, internal Conformance with definition External validation (CMMI) Constituent Parts A.k.a. external assurance Mostly, artifact testing constituent parts that are used to create and make up the system Dirk Riehle - All Rights Reserved 6

7 Software Testing Component Tests A component test tests an isolated component, verifying it against specified component behavior. Acceptance Tests An acceptance test tests a system as a whole, verifying it against specified functional requirements. Black-box Tests A black-box test derives its test functions and values from the specification of the system. White-box Tests A white-box test derives its test functions and values from an analysis of the systems internals. And many other types of tests 2012 Dirk Riehle - All Rights Reserved 7

8 Traditional vs. Agile Quality Assurance Traditional QA SD and QA are separate groups, separate people SD and QA follow different schedules SD and QA are frequently at odds with each other Agile Methods QA SD and QA are one group of people SD and QA work is integrated with each other Same person does SD and QA for one feature 2012 Dirk Riehle - All Rights Reserved 8

9 Traditional to Scrum Role Mapping Traditional Scrum Product Manager Product Owner Engineering Manager Software Developer QA Engineer Team Member Scrum Master 2012 Dirk Riehle - All Rights Reserved 9

10 Agile Peer Review 1. General Principles 2. Coding Guidelines 3. Collective Code Ownership 4. Pair Programming 2012 Dirk Riehle - All Rights Reserved 10

11 Dilbert on Pair Programming 2012 Dirk Riehle - All Rights Reserved 11

12 Pair Programming (Practice) Definition Pair programming is programming carried out by pairs of programmers, where one programmer implements, and the other programmer reviews. Properties Similar situations Programmer and reviewer Driver and co-driver Pilot and navigator Effectiveness The effectiveness is debated. One study shows that one pair is more effective than two individual programmers [L1] Dirk Riehle - All Rights Reserved 12

13 Pair Programming (Continued) Find comfortable partner Switch roles often Communicate regularly Don't force it for small stuff Don't overheat, take a break Switch partners at times 2012 Dirk Riehle - All Rights Reserved 13

14 Agile vs. Open Source Review Process Agile Methods Coding Guidelines Code more often read than written Make it easy to get acquainted Open Source Coding Guidelines Code more often read than written Showing respect for project Collective Code Ownership Development is feature by feature Typically co-located development Everyone has write access Individual Code Ownership Development is module by module Typically distributed development Strictly regulated write access Pair Programming Changes are reviewed directly Everyone's a peer Patch Review Changes are submitted for review Two-class reviewing hierarchy 2012 Dirk Riehle - All Rights Reserved 14

15 Test-Driven Development 1. Refactoring 2. Test-First Programming 3. Test-Driven Development 2012 Dirk Riehle - All Rights Reserved 15

16 Test-First (Practice) [B1] Definition Test-first is a programming practice in which developers iterate over an 1. add new or enhance test 2. make test work loop, where programming application functionality is a byproduct of making the tests work. Properties Clarifies code functionality and interfaces Improves code quality through second use scenario Builds up test suite for continuous integration (later) 2012 Dirk Riehle - All Rights Reserved 16

17 Test-First (Example) public class TagsTest extends TestCase { public void testastag() { assertequals(tags.astag("flo wer"), "flower"); 1 public class Tags { public static String astag(string n) { return "flower"; public class TagsTest extends TestCase { public void testastag() { assertequals(tags.astag("flo wer"), "flower"); assertequals(tags.astag(" 35j lnm#&in>b << f2"), "35jlnminbf2"); assertequals(tags.astag(",,,,,,"), ""); 2 public class Tags { public static String astag(string n) { StringBuffer result = new StringBuffer(n.length()); for (int i = 0; i < n.length(); i++) { char c = n.charat(i); return result.tostring(); 2012 Dirk Riehle - All Rights Reserved 17

18 Test-First Rules 1 / 2 Only write new code when a test fails Then, eliminate waste 2012 Dirk Riehle - All Rights Reserved 18

19 Test-First Rules 2 / 2 1. Red 2. Green 3. Refactor 2012 Dirk Riehle - All Rights Reserved 19

20 Tool Support Demo for Test-First with JUnit 2012 Dirk Riehle - All Rights Reserved 20

21 Tool Support for Test-First Programming JUnit Is a unit testing framework Supports tests and test suites Supports test setup/fixtures Is small and easy to learn Is not just for unit tests Alternatives TestNG (Java Unit Testing) xunit (other languages) JUnitMax (commercial) (Selenium) JUnit popularized unit testing: Never in the field of software development have so many owed so much to so few lines of code. [M1] 2012 Dirk Riehle - All Rights Reserved 21

22 JUnit Key Concepts Test Case Is a test method Uses assertions etc. Test Suite Is a grouping mechanism Builds a tree of test cases Test Failure Test failure indicates failing test Test error indicates bug Setup Methods Create simple test setup Are before and after method Test Setup Create complex test setup Are realized as Decorator Test Result Collects test failures Is a Collecting Parameter 2012 Dirk Riehle - All Rights Reserved 22

23 JUnit Runtime Instantiation A test suite groups a set of further test suites or test cases The unit test hierarchy typically mirrors the package structure Tests can be run starting with any node in the hierarchy :TS :TS :TS :TS :TS :TC :TC :TC :TC :TC 2012 Dirk Riehle - All Rights Reserved 23

24 TagsTest (TestCase Class, JUnit 3.8) public class TagsTest extends TestCase { public static void main(string[] args) { junit.textui.testrunner.run(tagstest.class); public TagsTest(String name) { super(name); public void setup() { // no setup public void testastag() { assertequals(tags.astag("flo wer"), "flower"); assertequals(tags.astag(" 35j lnm#&in>b << f2"), "35jlnminbf2"); assertequals(tags.astag(",,,,,,"), ""); public void testasstring() { Tags tags1 = new Tags("tag1, tag2"); assertsame(tags1.getsize(), 2); assertequals(tags1.asstring(), "tag1, tag2"); assertequals(tags1.asstring(true, '+'), "tag1 + tag2"); 2012 Dirk Riehle - All Rights Reserved 24

25 Test Hierarchy (TestSuite Class, JUnit 3.8) public class TestRunner { static public void run(class testclass) { run(new TestSuite(testClass)); public class TestSuite implements Test { private Vector ftests= new Vector(10); public TestSuite(final Class theclass) { Class superclass= theclass; Vector names= new Vector(); while (Test.class.isAssignableFrom(superClass)) { Method[] methods= superclass.getdeclaredmethods(); for (int i= 0; i < methods.length; i++) { addtestmethod(methods[i], names, theclass); superclass= superclass.getsuperclass(); if (ftests.size() == 0) { addtest(warning("no tests found in "+theclass.getname())); 2012 Dirk Riehle - All Rights Reserved 25

26 JUnit 3.8 Design [R2] 2012 Dirk Riehle - All Rights Reserved 26

27 How to Write a Test? 1 / 2 A rrange setup A ct on functions A ssert values 2012 Dirk Riehle - All Rights Reserved 27

28 How to Write a Test? 2 / 2 Unit Testing Test all functions Think from features Cover all edge cases Acceptance Testing Think from user interface Test all relevant parameters Cover all edge cases 2012 Dirk Riehle - All Rights Reserved 28

29 Tell a Friend (Acceptance Test Example) public class TellFriendTest extends TestCase { protected UserSession session; protected WebFormHandler handler; public void setup() { ModelMain.configureWebPartTemplateServer(); Wahlzeit.configurePartHandlers(); session = new UserSession("testContext"); session.setconfiguration(languageconfigs.get(language.english)); ContextManager.setThreadLocalContext(session); public void testtellfriendpost() { Address from = Address.getFromString("info@wahlzeit.org"); Address to = Address.getFromString("fan@yahoo.com"); Server.setInstance(new Mock Server(from, to, bcc, subject, body)); Map<String, String> args = new HashMap<String, String>(); args.put(tellfriendformhandler. _from, from.asstring()); args.put(tellfriendformhandler. _to, to.asstring()); handler.handlepost(session, args); 2012 Dirk Riehle - All Rights Reserved 29

30 Tell a Friend (Acceptance Test Example) public class TellFriendTest extends TestCase { protected UserSession session; protected WebFormHandler handler; public void setup() { ModelMain.configureWebPartTemplateServer(); Wahlzeit.configurePartHandlers(); session = new UserSession("testContext"); session.setconfiguration(languageconfigs.get(language.english)); ContextManager.setThreadLocalContext(session); public void testtellfriendpost() { Address from = Address.getFromString("info@wahlzeit.org"); Address to = Address.getFromString("fan@yahoo.com"); Server.setInstance(new Mock Server(from, to, bcc, subject, body)); Map<String, String> args = new HashMap<String, String>(); args.put(tellfriendformhandler. _from, from.asstring()); args.put(tellfriendformhandler. _to, to.asstring()); handler.handlepost(session, args); RATHER PAINFUL 2012 Dirk Riehle - All Rights Reserved 30

31 Refactoring and Test-First Programming A code smells code doesn't smell anymore R Test Suite tests fail Implementation A R tests succeed A R 2012 Dirk Riehle - All Rights Reserved 31

32 Roman Numerals Example CMLXXIV 100 less than 1000 plus 50 plus 10 plus 10 plus 1 less than 5 = Dirk Riehle - All Rights Reserved 32

33 Roman Numerals Explained Base Values 'I' = 1 'V' = 5 'X' = 10 'L' = 50 'C' = 100 'D' = 500 'M' = 1000 Parsing Rules Smaller base cases to the right are added to value Smaller base cases to the left are subtracted Rule 2 takes precedence over rule Dirk Riehle - All Rights Reserved 33

34 Video on Test-Driven Development Roman Numerals (Johannes Link on Test-Driven Development) 2012 Dirk Riehle - All Rights Reserved 34

35 Video Lessons Observations 1 / 2 Implements tests first, functions second Provides trivial implementations first Incrementally provides full implementations Programs with no slack at all, only progress Observations 2 / 2 Uses many IDE refactoring functions Views test code and function code in parallel windows Uses JUnitMax for unobtrusive feedback Deletes code after finishing coding kata 2012 Dirk Riehle - All Rights Reserved 35

36 Advanced Test-First Practices 1 / 2 Test Execution Define context With test setups Create test databases Use test data builders Reset data to clean state With test doubles Test Psychology Cope with run-time Create different setups Create different test suites Use null objects Use stub objects Use mock objects 2012 Dirk Riehle - All Rights Reserved 36

37 Advanced Test-First Practices 2 / 2 Testing Concurrency Derive invariants Don't overspecify / constrain Testing Legacy Code Define component boundary Instantiate with test doubles Use modern tools Use locks, conditions, etc. Avoid signal(), wait() Still, this is hard to do right! Use proactive mechanisms Test against expected behavior May not need to understand code If you have to refactor code Write unit tests first Refactor in small steps 2012 Dirk Riehle - All Rights Reserved 37

38 Test-Driven Development (TDD) Definition Test-driven development is a development process that follows the test-first practice to implement a product requirements document like Scrum's product backlog. Please note: Test-first is the original test-driven development. The additional focus on working off a PRD is mine (DR). Properties TDD grows the product incrementally and steadily TDD teams can release after every feature implementation TDD creates code of pristine (and lean) quality 2012 Dirk Riehle - All Rights Reserved 38

39 Test-Driven Development Illustrated feature n+2 feature n+1 on to next feature enhance test suite feature n test suite n implementation n feature n-1 feature n-2 test suite n-1 test suite n-2 implementation n-1 implementation n Dirk Riehle - All Rights Reserved 39

40 Test-Driven Development Core Process 1. Translate partial or full feature description into test suite 2. Implement feature to fulfill ( green-bar ) test suite 3. Revise test suite from new insights 4. Refactor test suite to keep design and code clean 5. Refactor implementation to keep design and code clean 6. Move on when test suite is complete and all tests succeed 3 6 feature 1 2 test suite implementation Dirk Riehle - All Rights Reserved 40

41 Quiz: Test-First Programming 1. You are programming a unit test for the Money.divideBy() method. Should you also test for any possible ArithmethicException? Never Always Depends 2. Your unit tests for the Money class all need a few example values to work with. Where should you create them? In each test case method In the test class' setup method In a separate test setup class 2012 Dirk Riehle - All Rights Reserved 41

42 Agile Team Collaboration 1. Configuration Management 2. Build Management 3. Continuous Integration 2012 Dirk Riehle - All Rights Reserved 42

43 Continuous Integration (Practice) Definition Continuous integration is a defined code integration process, where 1. Developers push regularly 2. Every push triggers a build 3. An executable is created 4. All tests / tools are run 5. Feedback is provided to all developers and any development manager. The goal is to receive immediate feedback if anything is wrong and to be able to pinpoint it right away. Properties Is a staged process From repository to build server From build to integration server From integration to test server Is a wholly automated process With no intervention needed Where feedback is made visible 2012 Dirk Riehle - All Rights Reserved 43

44 Tool Support for Continuous Integration Specialized tools Build tools: make, ant, Metrics tools: jdepend, Sonar, Integration tools Utilize specialized tools For example, Hudson or Jenkins Visualization tools Historical: lava lamps Today: dashboards 2012 Dirk Riehle - All Rights Reserved 44

45 Jenkins FSA! Build # Dirk Riehle - All Rights Reserved 45

46 Jenkins FSA! Changes # Dirk Riehle - All Rights Reserved 46

47 Jenkins FSA! Test Results # Dirk Riehle - All Rights Reserved 47

48 Continuous Delivery Definition Continuous delivery is a defined product delivery process, where every commit or push by a developer leads to the deployment of a new product version, if the version passes all tests. Properties Is next logical step after continuous integration Requires effective system monitoring and DevOps Is typically used in highly agile environments (websites) Continuous delivery and DevOps is a fast moving target and a possible research topic; will have to define terms like immune system Dirk Riehle - All Rights Reserved 48

49 Thank you! Questions? DR 2012 Dirk Riehle - All Rights Reserved 49

50 Contributions and Credits None yet Dirk Riehle - All Rights Reserved 50

7. Software Development

7. Software Development 7. Software Development Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of 22.03.2012 Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution-

More information

5. Product Management

5. Product Management 5. Product Management Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of 22.03.2012 Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution-

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

Tuesday, November 15. Testing

Tuesday, November 15. Testing Tuesday, November 15 1 Testing Testing Waterfall model show testing as an activity or box In practice, testing is performed constantly There has never been a project where there was too much testing. Products

More information

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015 xtreme Programming (summary of Kent Beck s XP book) 1 Contents The software development problem The XP solution The JUnit testing framework 2 The Software Development Problem 3 Risk Examples delivery schedule

More information

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Continuous Integration / Continuous Testing

Continuous Integration / Continuous Testing Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Continuous Integration / Continuous Testing IIC What s SW Integration? Integration

More information

Test Driven Development. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Tobias Pulls and Eivind Nordby

Test Driven Development. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Tobias Pulls and Eivind Nordby Test Driven Development Faculty of Economic Sciences, Communication and IT 2010-09-03 Tobias Pulls and Principle Use Executable Specifications Test Driven Development (TDD) xunit Behaviour Driven Development

More information

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Introduction System tests, often called slow tests, play a crucial role in nearly every Java development

More information

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region Azure DevOps Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region What is DevOps? People. Process. Products. Build & Test Deploy DevOps is the union of people, process, and products to

More information

Test Driven Development TDD

Test Driven Development TDD Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,

More information

l e a n Lean Software Development software development Faster Better Cheaper

l e a n Lean Software Development software development Faster Better Cheaper software development Lean Software Development Faster Better Cheaper mary@poppendieck.com Mary Poppendieck www.poppendieck.com Characteristics of Lean Companies: 1. They don t call themselves Lean The

More information

Software Continuous Integration & Delivery INCREASING SOFTWARE DEVELOPMENT AGILITY TO SPEED TIME TO MARKET

Software Continuous Integration & Delivery INCREASING SOFTWARE DEVELOPMENT AGILITY TO SPEED TIME TO MARKET DAITAN WHITE PAPER Software Continuous Integration & Delivery INCREASING SOFTWARE DEVELOPMENT AGILITY TO SPEED TIME TO MARKET White Paper Contents Making software development more Agile Moving to a more

More information

Unit Testing and JUnit

Unit Testing and JUnit Unit Testing and JUnit Moinul Hossain CS 791Z 03/02/2015 Outline What is Software Testing? What and Why Unit Testing? JUnit JUnit features and Examples Test Driven Development (TDD) What is Software Testing?

More information

How Can Testing Teams Play a Key Role in DevOps Adoption?

How Can Testing Teams Play a Key Role in DevOps Adoption? June 3, 2016 How Can Testing Teams Play a Key Role in DevOps Adoption? Sujay Honnamane QA Director @sujayh Rameshkumar Bar Sr. Automation Architect @rameshbar 2016 Cognizant Session take away DevOps Overview

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions Test Automation Strategies in Continuous Delivery Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions The world of application is going through a monumental shift.. Evolving

More information

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo Vendor: The Open Group Exam Code: OG0-091 Exam Name: TOGAF 9 Part 1 Version: Demo QUESTION 1 According to TOGAF, Which of the following are the architecture domains that are commonly accepted subsets of

More information

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

Manual Testing.  Software Development Life Cycle. Verification. Mobile Testing 10 Weeks (Weekday Batches) or 12 Weekends (Weekend batches) To become a Professional Software Tester To enable the students to become Employable Manual Testing Fundamental of Testing What is software testing?

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Was gibt es Neues Better Team Work with Cloud

Was gibt es Neues Better Team Work with Cloud Was gibt es Neues Better Team Work with Cloud Dana Singleterry Produktmanager Oracle Mobility & Dev Tools, Oracle dana.singleterry@oracle.com +++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx

More information

Continuous the research Software Engineering. Cycle through Test-Driven Search the teaching

Continuous the research Software Engineering. Cycle through Test-Driven Search the teaching Overview 1 1. Find out why software engineering is important see some software engineering failures 2. Integrating Get acquainted with Reuse into the Rapid, the Chair of Software Engineering Continuous

More information

Inverting the Pyramid

Inverting the Pyramid Inverting the Pyramid Naresh Jain naresh@agilefaqs.com @nashjain http://nareshjain.com Time/Money/Opportunity Cost Plan Back in the Stone-age Happiness/Excitement Design Distribute Work in Isolation Integrate

More information

Test-driven development

Test-driven development Test-driven development And how we do it at WIX Mantas Indrašius Software Engineer WIX.COM Agenda Tests overview Test-driven development (TDD) The Bowling Game demo Kickstarting a project using TDD How

More information

Unit Testing with JUnit and CppUnit

Unit Testing with JUnit and CppUnit Unit Testing with JUnit and CppUnit Software Testing Fundamentals (1) What is software testing? The process of operating a system or component under specified conditions, observing or recording the results,

More information

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017 Collaboration at Scale: Prioritizing a Backlog 13-Dec-2017 Collaboration at Scale Designed for Scrum-centric organizations with more than 10 Scrum teams, the Collaboration at Scale webinar series provides

More information

Completely

Completely Completely Test-Driven ian.truslove@nsidc.org @iantruslove UCAR Software Engineering Assembly, Feb 21, 2012 What s In It For Me? So, that TDD sounds great and all, but what about ? See some techniques

More information

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing Final Paper/Best Practice/Tutorial Advantages OF BDD Testing Preeti Khandokar Test Manager Datamatics Global Solutions Ltd Table of Contents Table of Contents... 2 Abstract... 3 Introduction... 3 Solution:...

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Automated testing in Agile SW development

Automated testing in Agile SW development T-76.5613 Software Testing and Quality Assurance Automated testing in Agile SW development Seppo Sahi SoberIT seppo.sahi@soberit.hut.fi 2.10.2006 Introduction Agile methods have strong emphasis on practices

More information

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. 1 Copyright 2011, Oracle and/or its affiliates. All rights The forthcoming is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

TEST DRIVEN DEVELOPMENT

TEST DRIVEN DEVELOPMENT PERSONAL SOFTWARE ENGINEERING PROJECT: TEST DRIVEN DEVELOPMENT Kirsi Männistö kirsi.mannisto@welho.com 60114V PSEA_Test_driven_development.rtf Page 1 of 1 RoadRunners Change history Version Description

More information

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK Who am I? John York Agile Software Development JOHN YORK Director of Engineering at ProQuest Dialog Chief Technologist SpellBound AR A Computer Engineer from the University of Michigan! An agile development

More information

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK Agile Software Development JOHN YORK EECS 441 WINTER 2018 John York Director of Engineering at ProQuest Dialog Chief Technologist SpellBound AR A Computer Engineer from the University of Michigan! An agile

More information

Optimize tomorrow today.

Optimize tomorrow today. Applying Agile Practices to Improve Software Quality Name: Arlene Minkiewicz Chief Scientist 17000 Commerce Parkway Mt. Laurel, NJ 08054 arlene.minkiewicz@pricesystems.com Phone: 856 608-7222 Agenda Introduction

More information

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis Software Quality in a Modern Development Team Presented by Timothy Bauguess and Marty Lewis High-Quality Software Who benefits? End users Development Stakeholders Components of Software Quality Structural

More information

ICAgile Learning Roadmap Agile Testing Track

ICAgile Learning Roadmap Agile Testing Track ICAgile Learning Roadmap Agile Testing Track The work in this document was facilitated by the International Consortium for Agile (ICAgile) and done by the contribution of various Agile Experts and Practitioners.

More information

FROM VSTS TO AZURE DEVOPS

FROM VSTS TO AZURE DEVOPS #DOH18 FROM VSTS TO AZURE DEVOPS People. Process. Products. Gaetano Paternò @tanopaterno info@gaetanopaterno.it 2 VSTS #DOH18 3 Azure DevOps Azure Boards (ex Work) Deliver value to your users faster using

More information

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time! Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time! Today s Topics How the Tester s Role Changes in Agile Testing in

More information

Achieving Continuous Delivery - Micro Services. - Vikram Gadang

Achieving Continuous Delivery - Micro Services. - Vikram Gadang Achieving Continuous Delivery - Micro Services - Vikram Gadang Agenda Starting point Observations and lessons learned Architecting for CD Build pipeline strategy Testing strategy Deployment strategy State

More information

Automated Testing of Tableau Dashboards

Automated Testing of Tableau Dashboards Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence

More information

Continuous Testing at Scale

Continuous Testing at Scale Continuous Testing at Scale TAPOST Conference October 12th 2016, Riga dmitry@buzdin.lv @buzdin Dmitry Buzdin Introduction to Continuous Testing Continuous Delivery Get changes to production in fast and

More information

Test Driven Development

Test Driven Development Test Driven Development driving the development of quality software through tests presented by Introduction and Agenda Andy Painter, Davisbase Consulting 15+ years in software development. 5+ years working

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

JUnit 4 and Java EE 5 Better Testing by Design

JUnit 4 and Java EE 5 Better Testing by Design JUnit 4 and Java EE 5 Better Testing by Design Kent Beck Alberto Savoia Agitar Software Inc. www.agitar.com TS-1580 2006 JavaOne SM Conference Session TS-1580 Simplifying Developer Testing JUnit 4 further

More information

3 Continuous Integration 3. Automated system finding bugs is better than people

3 Continuous Integration 3. Automated system finding bugs is better than people This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.

More information

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016 About Us Incorporated in January, 2003 QA and QC in expertise focused on functional, performance and application security validation HPE Software Gold Partner, HPE Authorized Software Support Partner &

More information

Kanban One-Day Workshop

Kanban One-Day Workshop Kanban One-Day Workshop Copyright Net Objectives, Inc. All Rights Reserved 2 Copyright Net Objectives, Inc. All Rights Reserved 3 Lean for Executives Product Portfolio Management Business Product Owner

More information

Testing. Topics. Types of Testing. Types of Testing

Testing. Topics. Types of Testing. Types of Testing Topics 1) What are common types of testing? a) Testing like a user: through the UI. b) Testing like a dev: through the code. 2) What makes a good bug report? 3) How can we write code to test code (via

More information

Exam Questions

Exam Questions Exam Questions 70-498 Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management https://www.2passeasy.com/dumps/70-498/ 1. You are the application architect on your team. You

More information

QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING.

QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING. QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING www.webliquidinfotech.com What you Learn: What is Software Testing? Why Testing is Important? Scope of Software Testing Objectives of Software

More information

AN ISO 9001:2008 CERTIFIED COMPANY. Software Testing TRAINING.

AN ISO 9001:2008 CERTIFIED COMPANY. Software Testing TRAINING. AN ISO 9001:2008 CERTIFIED COMPANY Software Testing TRAINING www.webliquids.com ABOUT US Who we are: WebLiquids is an ISO (9001:2008), Google, Microsoft Certified Advanced Web Educational Training Organisation.

More information

a brief introduction to creating quality software continuously Copyright 2011 Davisbase, LLC

a brief introduction to creating quality software continuously Copyright 2011 Davisbase, LLC a brief introduction to creating quality software continuously Andy Painter Agile Coach/Trainer/Consultant CSM, CSP, CSD Instructor andy@davisbase.org (704) 835-0194 Interests: Cloud Computing, Agile Development

More information

Agile Testing Practices Good Food for all Teams

Agile Testing Practices Good Food for all Teams Agile Testing Practices Good Food for all Teams www.netobjectives.com info@netobjectives.com 1 January 30, 2007 Abstract Agile testing practices have evolved in part as a response to short duration cycles.

More information

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info (Complete Package) WEB APP TESTING DB TESTING We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence

More information

Review Version Control Concepts

Review Version Control Concepts Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.

More information

How to Build an Appium Continuous Testing Pipeline

How to Build an Appium Continuous Testing Pipeline How to Build an Appium Continuous Testing Pipeline Step-by-Step Tutorial November, 2017 Today s speakers Guy Arieli, CTO, Experitest Ruth Zamir Marketing Director Experitest 01 Why do we need continuous

More information

Introduction: Manual Testing :

Introduction: Manual Testing : : What is Automation Testing? Use of Automation. Where do we use. Tools that Do Automation. Web Applications vs Standalone Applications. What is selenium? How selenium works. Manual Testing : HTML: Detailed

More information

Test-driven development

Test-driven development Test-driven development And how we do it at WIX Mantas Indrašius Software Engineer WIX.COM Agenda Tests overview Test-driven development (TDD) Let s see it in action (demo) Kickstarting a project using

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition

More information

The Art of Unit Testing

The Art of Unit Testing The Art of Unit Testing with Examplee in.net Roy Oeberove 11 MANNING Greenwich (74 w. long.) Contents foreword t xv preface xvii acknowledgments xix about this book xx about the cover illustration XXIII

More information

David Bernstein Five Development Practices Essential for Scrum Teams

David Bernstein Five Development Practices Essential for Scrum Teams David Bernstein Five Development Practices Essential for Scrum Teams 1 Welcome! I m David Scott Bernstein Software developer since 1980 Trained 8,000 developers since 1990 Published author since 2015 Website:

More information

HP APPs v.12 Solutions for Dev-Ops

HP APPs v.12 Solutions for Dev-Ops HP APPs v.12 Solutions for Dev-Ops Kimberly Fort HP Software July 2014 Kimberly Fort Software Solutions Architect *5 Months with HP *17 Years experience using HP Tools & products *20 Years experience in

More information

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 320 Introduction to Software Engineering Spring February 06, 2017 CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

SAFe Atlassian Style (Updated version with SAFe 4.5) Whitepapers & Handouts

SAFe Atlassian Style (Updated version with SAFe 4.5) Whitepapers & Handouts SAFe Atlassian Style (Updated version with SAFe 4.5) Whitepapers & Handouts Exported on 09/12/2017 1 Table of Contents 1 Table of Contents...2 2 Abstract...4 3 Who uses SAFe and Why?...5 4 Understanding

More information

TEST-DRIVEN DEVELOPMENT

TEST-DRIVEN DEVELOPMENT tdd 2003/6/10 21:42 page 5 #25 Chapter 1 TEST-DRIVEN DEVELOPMENT To vouch this, is no proof, Without more wider and more overt test -Othello,Act 1 Scene 3 William Shakespeare From programmers to users,

More information

Seven Deadly Sins of Agile Testing

Seven Deadly Sins of Agile Testing Seven Deadly Sins of Agile Testing 2 About me Brad Swanson Time to market Traditional Development Analyze Implement Test Agile Development Deliverable Deliverable 3 Risk Risk traditional agile Time 4 Schedule

More information

Tips from the experts: How to waste a lot of time on this assignment

Tips from the experts: How to waste a lot of time on this assignment Com S 227 Spring 2018 Assignment 1 100 points Due Date: Friday, September 14, 11:59 pm (midnight) Late deadline (25% penalty): Monday, September 17, 11:59 pm General information This assignment is to be

More information

Unit Testing and Test Driven Design

Unit Testing and Test Driven Design Unit Testing and Test Driven Design Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2003-01-29, Unit Testing and Test Driven Design, Slide 1 Unit Testing

More information

Agile Certifications. Dr. Vijay Kanabar Boston University

Agile Certifications. Dr. Vijay Kanabar Boston University Agile Certifications Dr. Vijay Kanabar Boston University Agenda Overview of Agile Certifications Details of PMI-ACP What is Agile? New way of working. Learn specific practices. May have to push a new way

More information

Turbo boost your digital app test automation with Jenkins

Turbo boost your digital app test automation with Jenkins Turbo boost your digital app test automation with Jenkins Step-by-Step Tutorial May, 2018 Speakers Sheli Ashkenazi Sr. Product Manager Experitest Jonathan Aharon Sr. Sales Engineer Experitest 2 01 The

More information

About Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals

More information

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010 PACIFIC NW 28TH ANNUAL SOFTWARE QUALITY CONFERENCE October 18th 19th, 2010 Conference Paper Excerpt from the CONFERENCE PROCEEDINGS Permission to copy, without fee, all or part of this material, except

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Testing in the Agile World

Testing in the Agile World Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline

More information

Automated Acceptance Testing

Automated Acceptance Testing Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives

More information

Software LEIC/LETI. Lecture 5

Software LEIC/LETI. Lecture 5 Software Engineering @ LEIC/LETI Lecture 5 Last Lecture Verification and Validation Reviews and Inspections Software Testing Coverage Statement, branch, and path coverage Equivalence partitioning Boundary

More information

Tips from the experts: How to waste a lot of time on this assignment

Tips from the experts: How to waste a lot of time on this assignment Com S 227 Spring 2018 Assignment 1 80 points Due Date: Friday, February 2, 11:59 pm (midnight) Late deadline (25% penalty): Monday, February 5, 11:59 pm General information This assignment is to be done

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

The Seven Steps to Implement DataOps

The Seven Steps to Implement DataOps The Seven Steps to Implement Ops ABSTRACT analytics teams challenged by inflexibility and poor quality have found that Ops can address these and many other obstacles. Ops includes tools and process improvements

More information

THE SCRUM FRAMEWORK 1

THE SCRUM FRAMEWORK 1 THE SCRUM FRAMEWORK 1 ROLES (1) Product Owner Represents the interests of all the stakeholders ROI objectives Prioritizes the product backlog Team Crossfunctional Self-managing Self-organizing 2 ROLES

More information

Lessons Learned. Johnny Bigert, Ph.D., Skype/Microsoft October 26, 2011

Lessons Learned. Johnny Bigert, Ph.D., Skype/Microsoft October 26, 2011 Lessons Learned Johnny Bigert, Ph.D., Skype/Microsoft johnny.bigert@skype.net October 26, 2011 Why do we do the things we do? Software Development Object-orientation, design principles, timeboxing, teams,

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems Responsibility assignment Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Reading

More information

Getting Started with Rational Team Concert

Getting Started with Rational Team Concert Getting Started with Rational Team Concert or RTC in 16 Steps Kai-Uwe Maetzel IBM Rational Software kai-uwe_maetzel@us.ibm.com SDP 20 2009 IBM Corporation This Presentation is Good for You if You know

More information

Building in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach

Building in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach Building in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach Deming on Quality Quality comes not from inspection, but from improvement of the production process. We cannot

More information

Beyond JUnit: Introducing TestNG The Next Generation in Testing

Beyond JUnit: Introducing TestNG The Next Generation in Testing Beyond JUnit: Introducing TestNG The Next Generation in Testing Hani Suleiman CTO Formicary http://www.formicary.net hani@formicary.net TS 3097 2006 JavaOne SM Conference Session TS-3097 Testing Renewed

More information

The main website for Henrico County, henrico.us, received a complete visual and structural

The main website for Henrico County, henrico.us, received a complete visual and structural Page 1 1. Program Overview The main website for Henrico County, henrico.us, received a complete visual and structural overhaul, which was completed in May of 2016. The goal of the project was to update

More information

Sterling Talent Solutions Automates DevOps and Orchestrates Data Center Operations. SaltStack Enterprise case study

Sterling Talent Solutions Automates DevOps and Orchestrates Data Center Operations. SaltStack Enterprise case study Sterling Talent Solutions Automates DevOps and Orchestrates Data Center Operations SaltStack Enterprise case study SaltStack Enterprise case study Sterling Talent Solutions automates DevOps and orchestrates

More information

GETTING STARTED. Introduction to Backlog Grooming

GETTING STARTED. Introduction to Backlog Grooming GETTING STARTED Introduction to Backlog Grooming contents SECTION backlog grooming? SECTION 1 what is backlog grooming? 4 SECTION 2 who should be involved in a grooming session? 5 benefits of backlog grooming

More information

JBPM5 - QUICK GUIDE JBPM5 - OVERVIEW

JBPM5 - QUICK GUIDE JBPM5 - OVERVIEW JBPM5 - QUICK GUIDE http://www.tutorialspoint.com/jbpm5/jbpm5_quick_guide.htm Copyright tutorialspoint.com JBPM5 - OVERVIEW JBPM stands for "Java Business Process Management". It is a JBoss product which

More information

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

CONTINUOUS DELIVERY IN THE ORACLE CLOUD CONTINUOUS DELIVERY IN THE ORACLE CLOUD Lykle Thijssen Bruno Neves Alves June 7, 2018 NLOUG Tech Experience Amersfoort eproseed Confidential ABOUT US Lykle Thijssen Principal Architect and Scrum Master

More information

TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1

TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 ABSTRACT Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal

More information

What is database continuous integration?

What is database continuous integration? What is database continuous integration? Database continuous integration (CI) is the rapid integration of database schema and logic changes into application development efforts and to provide immediate

More information

Test Automation: Agile Enablement for Business Intelligence Teams

Test Automation: Agile Enablement for Business Intelligence Teams Test Automation: Agile Enablement for Business Intelligence Teams Lynn Winterboer Agile Analytics Educator & Coach @AgileLynn www.winterboeragileanalytics.com Lynn Winterboer Colorado Native Guest Ranch

More information

Disciplined Agile Delivery The Foundation for Scaling Agile

Disciplined Agile Delivery The Foundation for Scaling Agile Disciplined Agile Delivery The Foundation for Scaling Agile Scott W. Ambler Senior Consulting Partner scott [at] scottambler.com @scottwambler Scott Ambler + Associates 1 Let s explore a few important

More information