Code Quality Assurance. Peter Kofler, Code Cop FH Technikum Wien, February 2010
|
|
|
- Gerald Barnett
- 10 years ago
- Views:
Transcription
1 Code Quality Assurance Peter Kofler, Code Cop FH Technikum Wien, February 2010
2 2
3 Peter Kofler Ph.D. (Appl. Math.) Professional Software Developer for 11 years Lead Developer at System One fanatic about code quality 3
4 4
5 Zero-Defect Mindset (MSF) 5
6 6
7 7
8 8
9 Robert C. Martin ( Uncle Bob ) 9
10 10
11 Software Craftsmanship 11
12 Craftsmanship Over Crap 12
13 The Prime Factors Kata 13
14 The Requirements. Write a class named PrimeFactors that has one static method: generate. The generate method takes an integer argument and returns a List<Integer>. That list contains the prime factors in numerical sequence. 14
15 Demo 15
16 Keep the bar green to keep the code clean 16
17 Unit Testing test individual units isolate each part show that the individual parts are correct regression testing sort of living documentation executed within a framework 17
18 xunit Frameworks e.g. Smalltalk - SUnit Java - JUnit, TestNG.NET - NUnit, Typemock C++ - CppUTest Groovy, PHP, Python, Ruby, Scala, etc. 18
19 TESTING I FIND YOUR LACK OF TESTS DISTURBING. 19
20 Test-Driven Development add a test run all tests and see if the new one fails write some code run all tests and see them succeed refactor code Red Green Refactor 20
21 The Three Laws of TDD You are not allowed to write any production code unless to make a failing unit test pass. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. You are not allowed to write any more production code than is sufficient to pass the one failing unit test. 21
22 A minute ago all their code worked! 22
23 23
24 24
25 Testing is a mindset. 25
26 You have to want it. 26
27 27
28 Code Coverage comprehensiveness of tests 28
29 Beware! comprehensiveness quality! 29
30 Some Code Coverage Tools Java - EMMA, Cobertura, Clover.NET - NCover, PartCover C++ - Covtool, gcov Ruby - rcov commercial products 30
31 Demo 31
32 Demo 32
33 33
34 Daily/Nightly Builds 34
35 Continuous Integration 35
36 Continuous Integration Maintain a code repository Automate the build Make the build self-testing Everyone commits every day Every commit should be built Keep the build fast Everyone can see the results of the build 36
37 Immediate Feedback & Early Warning 37
38 38
39 Some CI Servers Java - CruiseControl, Hudson.NET - CruiseControl.NET, Hudson (NAnt) C++ - Hudson (Shell/Make) Ruby - CruiseControl.rb commercial products - TeamCity, ALA 39
40 Book Continuous Integration (Paul Duvall) 40
41 Good Enough? 41
42 Demo 42
43 43
44 Check What? Lexical analysis naming, coding conventions, design idioms Flow/path analysis null-pointer, dead code (conditional) Dependency analysis architectural/design flaws Verification mathematical proof of correctness 44
45 Some Static Analysis Tools Java - Checkstyle, Findbugs, PMD.NET - FxCop, (ReSharper, NDepend) C++ - (Sp)Lint Ruby - Roodi, Dust, Flog, Saikuro commercial products 45
46 Good Enough? 46
47 Demo 47
48 Some Code Review Tools Your peer (Pair Programming) Your version control system Your IDE (e.g. ReviewClipse) commercial products 48
49 49
50 Thank You 50
51 51
52 Links #1 Mindset (Zero-Defect Mindset) oup%20presentation_frame.htm (Zero-Defect Mindset) Test
53 Links #2 Test Code Coverage Continuous Integration
54 Links #3 Continuous Integration Static Code Analysis Code Review
55 Images spray face: broken egg: windows: red-green: Darth Vader: Model covered car: works: Agnes: microscope: code review: questions: 55
http://www.wakaleo.com [email protected] Java Software Quality Tools and techniques
Wakaleo Consulting O p t i m i z i n g y o u r s o f t w a r e d e v e l o p m e n t http://www.wakaleo.com [email protected] Java Software Quality Tools and techniques 1 Introduction Agenda tools
Software Construction
Software Construction Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can explain the importance of continuous integration
Continuous Integration in Kieker
28. November 2014 @ Stuttgart, Germany Continuous Integration in Kieker (Experience Report) Nils Christian Ehmke, Christian Wulf, and Wilhelm Hasselbring Software Engineering Group, Kiel University, Germany
Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911
Improving Software Quality with the Continuous Integration Server Hudson Dr. Ullrich Hafner Avaloq Evolution AG 8911 AGENDA 2 > INTRODUCTION TO CI AND HUDSON > USING STATIC ANALYSIS IN PROJECTS > DEMO
Build management & Continuous integration. with Maven & Hudson
Build management & Continuous integration with Maven & Hudson About me Tim te Beek [email protected] Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository
Testing: Python, Java, Groovy, etc.
Testing: Python, Java, Groovy, etc. Prof Russel Winder http://www.russel.org.uk email: [email protected] xmpp: [email protected] twitter: @russel_winder Copyright 2012 Russel Winder 1 Aims, Goals
Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net
1 Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net One of the keys to improving applications and productivity is to automate some of the
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
Test-Driven Development
Test-Driven Development An Introduction Mattias Ståhlberg [email protected] Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.
Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.
1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on
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
Good Software. Lecture 6 GSL Peru 2014
Good Software Lecture 6 GSL Peru 2014 What is Good Software? Low cost Good performance Bug-free, efficient, meets its purpose Easy to code Easy to understand, modular Easy to use Clients are satisfied
Continuous Delivery. Alejandro Ruiz
Continuous Delivery Alejandro Ruiz True reality How the customer explained it How the project leader understood it How the analyst designed it How the programmer wrote it What the customer really needed
Test Driven Development with Continuous Integration: A Literature Review
Test Driven Development with Continuous Integration: A Literature Review Sheikh Fahad Ahmad Deptt. of Computer Science & Engg. Mohd. Rizwan Beg Deptt. of Computer Science & Engg. Mohd. Haleem Deptt. of
Continuous Integration
LT-QAI Torch Talk: Continuous Integration Marc @dfki.de DFKI Language Technology Lab, Saarbrücken and Berlin, Germany What do I mean by Torch Talk? Idea to increase the frequency of
Agile.NET Development Test-driven Development using NUnit
Agile.NET Development Test-driven Development using NUnit Jason Gorman Test-driven Development Drive the design and construction of your code on unit test at a time Write a test that the system currently
Continuous Integration Multi-Stage Builds for Quality Assurance
Continuous Integration Multi-Stage Builds for Quality Assurance Dr. Beat Fluri Comerge AG ABOUT MSc ETH in Computer Science Dr. Inform. UZH, s.e.a.l. group Over 8 years of experience in object-oriented
Advanced Software Testing
Johan Seland Advanced Software Testing Geilo Winter School 2013 1 Solution Example for the Bowling Game Kata Solution is in the final branch on Github git clone git://github.com/johanseland/bowlinggamekatapy.git
Effektiver Tool-Einsatz
Effektiver Tool-Einsatz für Scrum-Projekte im Java-Umfeld Agile Softwareentwicklung Werte, Prinzipien, Methoden und Prozesse 13. OBJEKTspektrum Information Days 29. April 2010, München Gerhard Müller,
Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited
Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make
Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation
Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically
Software infrastructure for Java development projects
Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical
TeamCity A Professional Solution for Delivering Quality Software, on Time
TeamCity A Professional Solution for Delivering Quality Software, on Time Vaclav Pech Senior Software Developer JetBrains, Inc. About Us Vaclav Pech Professional software developer for 9 years IntelliJ
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
Testing and Quality in Agile Development Speaker: Allan Watty Company: ABB Inc Website: www.abb.com/enterprise-software
Testing and Quality in Agile Development Speaker: Allan Watty Company: ABB Inc Website: www.abb.com/enterprise-software Welcome to the PMI Houston Conference & Expo 2015 Please put your phone on silent
JUnit. Introduction to Unit Testing in Java
JUnit Introduction to Unit Testing in Java Testing, 1 2 3 4, Testing What Does a Unit Test Test? The term unit predates the O-O era. Unit natural abstraction unit of an O-O system: class or its instantiated
Continuous Integration Northwestern University. Evanston, Illinois November 2012. The Business of IT www.parivedasolutions.com
Continuous Integration Northwestern University Evanston, Illinois November 2012 The Business of IT www.parivedasolutions.com Top 6 reasons students say they join the Pariveda team 1. Clearly defined career
Gallio: Crafting a Toolchain. Jeff Brown [email protected]
Gallio: Crafting a Toolchain Jeff Brown [email protected] About Me Jeff Brown Lead Software Engineer at Yellowpages.com Creator of Gallio Open Source Project Lead of MbUnit Open Source Project Coding
How To Write Unit Tests In A Continuous Integration
Continuous Integration [email protected] 1. It works on my machine. Risk 1 Lack of Deployable Software Risk 2 Lack of project visibility 2011 CTG, Inc. 9 2011 CTG, Inc. 10 Risk 3 Low quality
Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)
Continuous Integration in.net MARGIN KAWALEROWICZ CRAIG BERNTSON M MANNING Greenwich (74 w. long.) contents preface xv acknowledgments xvii about this book xix about the authors xxii about the cover illustration
Continuous Delivery. Ariel Alonso, IPC
Continuous Delivery Ariel Alonso, IPC About Me Ariel Alonso Systems Architect Independent Purchasing Cooperative, Inc. Software Engineer for 15 years Interests Agile & XP Test Driven Development Automation
Making Test Automation Work in Agile Projects
Making Test Automation Work in Agile Projects StarWest 2009 Lisa Crispin With Material from Janet Gregory 1 Topics Making Automation Work Learn ways to: Overcome common obstacles Use automation to keep
Continuous Integration (CI)
Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration
Continuous Integration
Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener [email protected] Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My
Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd
Coding in Industry David Berry Director of Engineering Qualcomm Cambridge Ltd Agenda Potted history Basic Tools of the Trade Test Driven Development Code Quality Performance Open Source 2 Potted History
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,
Continuous Integration For Fusion Middleware
Continuous Integration For Fusion Middleware Mark Nelson, Architect Robert Wunderlich, Product Management Fusion Middleware September 30, 2014 CON7627 Safe Harbor Statement The following is intended to
Open Source Tools. The Magazine for Professional Testers. December 2010
12 December 2010 ISSN 1866-5705 www.testingexperience.com free digital version print version 8,00 printed in Germany Open Source Tools diego cervo - Fotolia.com karaboux - Fotolia.com Take a daily photo
Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
The 3C Approach for Agile Quality Assurance Continuous Integration, Continuous Measurement, Continuous Improvement
The 3C Approach for Agile Quality Assurance Continuous Integration, Continuous Measurement, Continuous Improvement André Janus André Janus IT Consulting Karlsruhe; University of Magdeburg Reiner R. Dumke
Upping the game. Improving your software development process
Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: [email protected] Web: http://www.wakaleo.com Twitter: wakaleo Presentation
Introducing Continuous Integration
Chapter 2 Introducing Continuous Integration Commit Code Frequently Don t Commit Broken Code Fix Broken Builds Immediately Write Automated Developer Tests All Tests and Inspections Must Pass Run Private
Case Studies of Free Test Tools Successful Test Tool Use without a Big Budget
Case Studies of Free Test Tools Successful Test Tool Use without a Big Budget Introduction Tools are great except when they re not Gee-whiz tools often have gee-whiz price tags to go with them Okay, free
Massively! Continuous Integration! A case study for Jenkins at cloud-scale
Massively! Continuous Integration! A case study for Jenkins at cloud-scale Thank you to our sponsors Platinum Sponsor Gold Sponsors Silver Sponsors Bronze Sponsors Jesse Dowdle, Sr Manager of Development
Implementing Continuous Integration Testing Prepared by:
Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...
Continuous Integration with CruiseControl.Net
Continuous Integration with CruiseControl.Net Part 2 Paul Grenyer CruiseControl.Net Web Dashboard In part 1 of Continuous Integration with CruiseControl.Net [Part1] I described creating a simple, but effective,
Continuous Integration
CODING & DEVELOPMENT BORIS GORDON FEBRUARY 7 2013 Continuous Integration Introduction About me boztek on d.o. (http://drupal.org/user/134410) @boztek [email protected] 2 Introduction About you
GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns
Introducing FACTORY SCHEMES Adaptable software factory Patterns FACTORY SCHEMES 3 Standard Edition Community & Enterprise Key Benefits and Features GECKO Software http://consulting.bygecko.com Email: [email protected]
Software Engineering I (02161)
Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency
Software Development Tools
Software Development Tools COMP220/COMP285 Sebastian Coope More on Automated Testing and Continuous Integration These slides are mainly based on Java Tools for Extreme Programming R.Hightower & N.Lesiecki.
Continuous Integration on System z
Continuous Integration on System z A Proof of Concept at Generali Deutschland Informatik Services GmbH Enterprise Modernization GSE Frankfurt, 14th October 2013 Markus Holzem, GDIS-AS mailto: [email protected]
Effective feedback from quality tools during development
Effective feedback from quality tools during development EuroSTAR 2004 Daniel Grenner Enea Systems Current state Project summary of known code issues Individual list of known code issues Views targeted
Architecture Rules Enforcement and Governance Using Aspects
Architecture Rules Enforcement and Governance Using Aspects Srini Penchikala SATURN 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ) Detroit Java User Group Leader Working with
Continuous integration for databases using
Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?
Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!
Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens [email protected] http://opensource.westernacher.com
STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES
Volume 3, No. 12, December 2012 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES Vishawjyoti * and Sachin
Test-Driven Development and Unit Testing with Parasoft Concerto
Test-Driven Development and Unit Testing with Parasoft Concerto What is Test-Driven Development (TDD)? Test-Driven Development (TDD) was first introduced as a key part of Extreme Programming. In a nutshell,
Continuous Prevention Testing
Continuous Prevention Testing By Andre Gironda OWASP October 2007 Bio Andre Gironda OWASP Phoenix, Chicago, MSP Other projects involved in WASC WASSEC NIST SAMATE Web Application Scanner Focus Group Web
Hudson Continous Integration Server. Stefan Saasen, [email protected]
Hudson Continous Integration Server Stefan Saasen, [email protected] Continous Integration Software development practice Members of a team integrate their work frequently Each integration is verified by
Beginner s guide to continuous integration. Gilles QUERRET Riverside Software
Beginner s guide to continuous integration Gilles QUERRET Riverside Software About the speaker Working with Progress and Java since 10 years Started Riverside Software 5 years ago Based in Lyon, France
Leveraging Rational Team Concert's build capabilities for Continuous Integration
Leveraging Rational Team Concert's build capabilities for Continuous Integration Krishna Kishore Senior Engineer, RTC IBM [email protected] August 9-11, Bangalore August 11, Delhi Agenda What
Automated Testing Options for PL/SQL Steven Feuerstein PL/SQL Evangelist, Quest Software www.quest.com [email protected]
Automated Testing Options for PL/SQL Steven Feuerstein PL/SQL Evangelist, Quest Software www.quest.com [email protected] Copyright 2008 Feuerstein and Associates How to benefit most from this
Jenkins: The Definitive Guide
Jenkins: The Definitive Guide John Ferguson Smart O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Foreword xiii Preface xv 1. Introducing Jenkins 1 Introduction 1 Continuous
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME System Analysis and Design S.Mohammad Taheri S.Hamed Moghimi Fall 92 1 CHOOSE A PROGRAMMING LANGUAGE FOR THE PROJECT 2 CHOOSE A PROGRAMMING LANGUAGE
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
[email protected] @tobiastrelle. codecentric AG 1
NoSQL Unit & Travis CI Test Automation for NoSQL Databases [email protected] @tobiastrelle codecentric AG 1 Tobias Trelle Senior IT Consultant @ codecentric AG Organizer of MongoDB User Group
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
Fully Leverage Agile Test Automation Technical Success and Return on Investment
Fully Leverage Agile Test Automation Technical Success and Return on Investment Introduction Give me a place to stand, and a lever long enough, and I will move the world. In Agile, the place to stand is
SOFTWARE DEVELOPMENT BASICS SED
SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
A Hundred Days of Continuous Integration
A Hundred Days of Continuous Integration Ade Miller Microsoft Corporation [email protected] Abstract Many agile teams use Continuous Integration (CI). It is one of the Extreme Programming practices
Continuous integration for databases using Redgate tools
Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for
Automation using Selenium
Table of Contents 1. A view on Automation Testing... 3 2. Automation Testing Tools... 3 2.1 Licensed Tools... 3 2.1.1 Market Growth & Productivity... 4 2.1.2 Current Scenario... 4 2.2 Open Source Tools...
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University
<Insert Picture Here> What's New in NetBeans IDE 7.2
Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
EXHIBIT L. Application Development Processes
EXHIBIT L Application Development Processes Optum Development Methodology Development Overview Figure 1: Development process flow The Development phase consists of activities that include the building,
Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.
Continuous Integration For Real: The Perforce Java Platform Hamish Reid Perforce Software Inc. OVERVIEW What do we mean by Agile? Continuous Integration? Product line highlights: P4Eclipse + Mylin + MergeQuest
