Copyright 2015, Robert W. Hasker. Continuous Inspection  Code reviews  Powerful tool  Difficult to ensure meaningful reviews take place  Static analysis.

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Configuration management
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
OVERVIEW TEAM5 SOFTWARE The TEAM5 software manages personnel and test data for personal ESD grounding devices. Test and personnel data may be viewed/reported.
HP Quality Center Overview.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Alternate Software Development Methodologies
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Improving Software Quality with Continuous Integration
Static testing Elena Rudovol February, 13, Sitecore. Compelling Web Experiences Page 2 What is static testing? Static Testing do.
Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Continuous Integration 0.
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
WebFOCUS Developer Studio Update Dimitris Poulos Technical Director September 3, 2015 Copyright 2009, Information Builders. Slide 1.
FINAL DEMO Apollo Crew, group 3 T SW Development Project.
Continuous Integration with TeamCity Adrian Ritchie BSc, MBCS Guernsey Software Developer Forum
Continuous Integration and Testing
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Craig Berntson
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Event Management & ITIL V3
IT 456 Seminar 5 Dr Jeffrey A Robinson. Overview of Course Week 1 – Introduction Week 2 – Installation of SQL and management Tools Week 3 - Creating and.
Michael Still Google Inc. October, Managing Unix servers the slack way Tools and techniques for managing large numbers of Unix machines Michael.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Microsoft Management Seminar Series SMS 2003 Change Management.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
GLite build and integration system Building and Packaging Robert HARAKALY
Testing in Android. Methods Unit Testing Integration Testing System Testing Regression Testing Compatibility Testing Black Box (Functional) White Box.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
EFFECTIVE QA PROCESS FOR PVC Prepared by:PVC QA Team.
Microsoft Corporation. Announcement Visual Studio® Team System 2008 Enables you to Build Quality Code Be More Productive Collaborate at the Next Level.
A way to develop software that emphasizes communication, collaboration, and integration between development and IT operations teams.
GLite build and integration system Building and Packaging Robert HARAKALY
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Continuous Deployments using SSDT
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Release Management for Visual Studio 2013 Ana Roje Ivančić Ognjen Bajić Ekobit.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Windows Vista Configuration MCTS : Installing and Upgrading.
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
SQL Database Management
InGenius Connector Enterprise Microsoft Dynamics CRM
Shared Services with Spotfire
Continuous Integration and Testing
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Introduction of Week 3 Assignment Discussion
X in [Integration, Delivery, Deployment]
Lecture 09:Software Testing
Simplified Development Toolkit
JENKINS TIPS Ideas for making your life with Jenkins easier
Real World Scrum with TFS & VSTS / Azure DevOps
IT and Development support services
Continuous Integration
SSDT and Database Project Basics
Helping you make your code better
Ch 10. Maintaining and Automating SQL Server
Presentation transcript:

Copyright 2015, Robert W. Hasker

Continuous Inspection  Code reviews  Powerful tool  Difficult to ensure meaningful reviews take place  Static analysis tools  Clear win: easy to run, unambiguous results  One of earliest: lint (C)  jlint, pmd  tic_code_analysis to be overwhelmed tic_code_analysis  Demo jlint in TeamCity w/ failure condition

Code Metrics  How to measure amount of code  SLOC  Statements  Useful within developer, style, problem complexity  Why shouldn’t we grade on SLOCs?  Cyclomatic Complexity Number  Number of distinct paths  CCN > 10: high probability of defects

Cyclomatic Complexity  Textbook example: CCN of routine = 114  How to respond?  Check #tests >= 114  Book suggests 114 might be unreasonable. Do you agree?  Refactor  First rule of refactoring: write a test case before you change anything.  Apply extract method technique: write smaller procedures

Duplicated Code  Why a problem?  Increased maintenance costs  Uncertainty: all occurrences fixed?  Testing: additional coverage needed  Real world examples:  Linux kernel in 2002: 15 to 25% duplicated  Sun Java JDK: 21-29% duplicated  Tools: CPD from PMD package, Simian, others

Continuous Inspection  Reducing code complexity  Continuous (procedural) design reviews  Maintain standards  Reduce duplicate code  Assess testing coverage

Continuous Deployment  New model: product always evolving  Continuous deployment – release every night  What do you need to make this work?  CI, obviously  Automated labeling of released versions  Rollback support  Extreme CI  Bare install OS, configure OS, server components, third party tools, custom software  Absolutely all tests run

A middle ground  Three branches:  master: released  stage: validation  dev: target for each sprint  Levels of testing  dev: core testing  stage: acceptance testing by stakeholders  also performance testing?  mutation testing?  A tool!

Improving the process  Automatically build (& test) each pull request  Open VCS Root, show advanced options  Branch specification: +:refs/pull/*/merge  will see build in log as “refs/…master”

Continuous Feedback  What to do if build fails?  Just let someone discover the problem?  Post an alert  Who?  Not everyone!  Project manager, technical lead, developers, testers?  How?  Siren? ? Text Message? Visual signal?

Continuous Feedback  obvious option  Problem: may not be on , spam  Text Message: still have spam issue  Ambient Orb  Small globe, color shows last build status  Problem: no detailed information  Windows task bar  Monitor  Should “last to break build” be on the screen?

Continuous Feedback in TeamCity  Open Build Configuration Settings, General Settings  Open advanced options  Build options: enable status widget  HTML for "  HTML for body:  Usage: open demos\local-ci-status.html

Review  Continuous Inspection  Code metrics, cyclomatic complexity  Identifying code clones  Continuous Deployment  staging branch  build on pull request  mutation testing  Continuous Feedback