T esting daily builds in an iterative development process Presentation at EuroSTAR 2003 Bjarne Månsson, KK Data Danmark.

Slides:



Advertisements
Similar presentations
By Rick Clements Software Testing 101 By Rick Clements
Advertisements

Configuration management
Software change management
Configuration management
Daily Tests - SAST March , © Ascom1 Daily Tests of Embedded Systems.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Integration testing Satish Mishra
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Systems Analysis and Design Kendall & Kendall Sixth Edition
Test Environments Arun Murugan – u Rohan Ahluwalia – u Shuchi Gauri – u
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Iterative development and The Unified process
Systems Analysis and Design in a Changing World, 6th Edition
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Chapter 9 – Software Evolution and Maintenance
Introduction to Continuous Integration Mike Roberts.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Accelerating Product and Service Innovation © 2013 IBM Corporation IBM Integrated Solution for System z Development (ISDz) Henk van der Wijk 23 Januari.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Upstream Prerequisites
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
Software Configuration Management
Understanding Information Systems. Information System (IS) An IS is a combination of people, hardware, software, computer networks, and data that organizations.
Visual Source Safe Office of the Accountant General (A&E),Andhra Pradesh, Hyderabad.
Software Testing Damian Gordon.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 29Slide 1 Configuration management l Managing the products (code and documentation) of.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
1 Lecture 19 Configuration Management Software Engineering.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Configuration Management (CM)
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
SWE © Solomon Seifu CONSTRUCTION. SWE © Solomon Seifu Lesson 13-2 Testing.
Reusability and Effective Test Automation in Telecommunication System Testing Mikael Mattas Supervisor: Professor Sven-Gustav Häggman Instructor: B.Sc.
Chapter 8 – Software Testing Lecture 2 1Chapter 8 Software testing.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 8 – Software Testing Part 2 1Chapter 8 Software testing.
Software Quality Assurance
Clarity Today – Confidence Tomorrow IT Certification Skills Clarity Today – Confidence Tomorrow switchboard:
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Software Construction Lecture 18 Software Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Configuration Management
MTA EXAM Software Testing Fundamentals : OBJECTIVE 6 Automate Software Testing.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
Teaching slides Chapter 9. Chapter 9 Software Testing (Verification & Validation) Introduction Software testing & software engineering methodologies Introduction.
Teaching slides Chapter 1. Chapter 1: Introduction Introduction Components of a computer Building the software products What is software engineering?
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Bjarne Månsson, EuroSP Coaching - an inspiration from team sports Presentation at EuroSP Bjarne Månsson, KK Data Danmark.
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
Chapter 9 Testing the System 9.1 Principles of System Testing Focus A: The objective of unit and integration ensure the code implemented the design.
1 SPI in Embedded Software Applications Barco Communication Systems - Denmark SPI in Embedded Software Applications Software Process Improvement.
Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.
Continuous Integration and Testing
Quality Assurance: Early Work Items
CS 425/625 Software Engineering Software Evolution
Testing and Test-Driven Development CSC 4700 Software Engineering
Chapter 9 – Software Evolution and Maintenance
Software Verification, Validation, and Acceptance Testing
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Regression testing Tor Stållhane.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Agile Development – a new way of software development?
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

T esting daily builds in an iterative development process Presentation at EuroSTAR 2003 Bjarne Månsson, KK Data Danmark

Slide 2 Testing daily builds Bjarne Månsson, August 2003 KK Data Danmark - the company Founded 1994 by Klaus Karkov Sub-supplier of embedded software solutions for instruments and industrial applications Consultancy on software testing, project management and software process improvement Applications and consultancy include bus ticket system (CTS) audio codecs (Scientific-Atlanta) hearing aids (Oticon) flight maintenance equipment (Terma) mobile telephones (Nokia) medical devices (Novo Nordic) Supplier of the RDS532 RDS Encoder See more at

Slide 3 Testing daily builds Bjarne Månsson, August 2003 KK Data Danmark - Bjarne Månsson M.Sc. (EE) from Denmark’s Technical University M.Phil. (EE) from University of Leeds, UK Internal Auditor (Bywater plc) Certified Software Tester (ISEB) 30 years’ experience in electronics and software development hereof 12 years’ experience in software process improvement and 7 years’ experience in software testing Fields of work telecommunications data acquisition (production, laboratory) CNC machines medical devices CRM software

Slide 4 Testing daily builds Bjarne Månsson, August 2003 Testing daily builds - the scenario The product web based client/server software for CRM (Customer Relationship Management) consisting of 7 individual software components Source code is version controlled in Microsoft Visual Source Safe (VSS) source code is checked into VSS every day Components are build every day Components are integrated into a complete system every day including an automatic regression test Source code of a daily build is labeled with a unique label we can always rebuild a particular version

Slide 5 Testing daily builds Bjarne Månsson, August 2003 The daily build - the process Source code is checked into VSS at the end of the day developers are requested to check in stable (tested) code otherwise developers shall leave out the code till the next day The source code is automatically built during the night source code is taken from the VSS all components are compiled components are integrated into an installation file the build is regression tested

Slide 6 Testing daily builds Bjarne Månsson, August 2003 The daily build - the problem The 7 components build was not stable only 20% (19 of 87) daily builds were successful an internal release point was on 18-Dec; only here, some improving is spotted Figure: Each dot above the x-axis is a failed component build

Slide 7 Testing daily builds Bjarne Månsson, August 2003 The daily build - the explanation and the impact Source code is checked into VSS at the end of the day often in the middle of some code implementation difficult to reach a stable point at the end of the day no time for proper module testing The derived impact using (losing) time on debugging why the build failed only making work-arounds – ”aarh, if I just had time to test this yesterday” frustration between component teams – ”it’s your fault that my code is not tested today” no regulary regression test - component interfaces are drifting apart delayed start on system testing degraded product quality (stability)

Slide 8 Testing daily builds Bjarne Månsson, August 2003 The daily build - the next step Source code for the build is taken from a promotion branch of the VSS Promotion branch shall only hold stable (tested) code Source code is transferred to the promotion branch by a qualifying process developer gets other components’ source code from the promotion branch developer compiles the candidate code against the other components developer integration tests the component against the other components only if test is successful, the candidate code is checked into the promotion branch developer only promotes code when it is ready (but at least once a week)

Slide 9 Testing daily builds Bjarne Månsson, August 2003 The daily build - the result of promoting code The 7 components build process is becoming stable 75% (84 of 127) daily builds were successful failed builds are evenly distributed in time (catching drift in component interfaces) Figure: A dot above the x-axis is a failed build

Slide 10 Testing daily builds Bjarne Månsson, August 2003 The daily build - the regression test Automated regression test: On a successful build, a regression test is automatically run Component test coverage varies from 20% to 90% With a stable build, we are now able to do regression tests 60% (50 of 84) regression tests were successful failed tests come in bursts in time (it takes time to correct derived errors) Figure: A dot above the x-axis is a failed test

Slide 11 Testing daily builds Bjarne Månsson, August 2003 The daily build - and the quality of the system Release criterias System tests completed No defects of severity 1 and severity 2 Defect trend falling (defects found per test hour) … and a lot more Internal releases 18-Dec-2000: internal “synchronisation” 24-Aug-2001: 1 st  (for internal use) 30-Nov-2001: 2 nd  (for  -test customers) Release 28-Feb-2002: Version 1.0

Slide 12 Testing daily builds Bjarne Månsson, August 2003 The daily build - and the quality of the system Defect trend Defects severity 1 and 2 FoundOpenTest hoursTrend -> 18-Dec > 24-Aug > 26-Oct > 2-Nov > 9-Nov > 16-Nov > 23-Nov > 30-Nov Aug -> 30-Nov

Slide 13 Testing daily builds Bjarne Månsson, August 2003 The daily build - and the quality of the system Defect trend variation? Paradox that defect trend goes > > 0.39 Feasible explanation internal synchronisation: system test specification is not complete and we use a lot of monkey test hours 1 st  : system test specification is complete but now we have not enough test hours 2 nd  system test specification is complete and we get sufficient qualified test hours Sufficient quality? System tests completed - OK No defects of severity 1 and severity 2 – 18 of severity 2 Defect trend falling - falling up to the 2 nd  release - OK

Slide 14 Testing daily builds Bjarne Månsson, August 2003 The daily build - and the quality of the system Any improvements up to the release? Defects severity 1 and 2 FoundOpenTest hoursTrend -> 10-Feb > 17-Feb > 24-Feb > 28-Feb Feb -> 28-Feb

Slide 15 Testing daily builds Bjarne Månsson, August 2003 The daily build - lessons learned The good... The code for the build is stable up to the release Component code is tested against other promoted components The developer only promotes code when the code is brought to a stable point Components are always synchronised System testing can start early Release criteria is seriously handled Tests are properly specified Time to market Succeeding releases tend to be more stable

Slide 16 Testing daily builds Bjarne Månsson, August 2003 The daily build - lessons learned the bad... The build code may be a week old Promotion process needs coaching Difficult to gain enough time for system testing (classical) and error correction Poor quality Component -, integration – and system test tend to merge into one test -> the big bang test

Slide 17 Testing daily builds Bjarne Månsson, August 2003 The daily build - lessons learned and the ugly … Time to market and poor quality cause that development resources are used for service packs and hotfixes Next release is delayed Development cost / support cost

Slide 18 Testing daily builds Bjarne Månsson, August 2003 The daily build - lessons learned but we know what to do