Cole Cecil. Peer Code Review 2 Why do a peer code review? Find defects earlier Find different kinds of defects Share knowledge among peers Maintainability.

Slides:



Advertisements
Similar presentations
Top 10 User Mistakes with Static Analysis Sate IV March 2012.
Advertisements

Software Assurance Metrics and Tool Evaluation (SAMATE) Michael Kass National Institute of Standards and Technology
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Engineering Secure Software. The Power of Source Code  White box testing Testers have intimate knowledge of the specifications, design, Often done by.
WHY BOTHER TO UNIT TEST Suprinder Pujji. OVERVIEW What is Unit testing Emphasis of Unit testing Benefits of Unit Testing Popular Misconceptions Prevailing.
Static Code Analysis to Find Bugs Wright.edu CS7140 Spring 2013 (Slides collected from many sources)
1 reviews8 Software Reviews, Walkthroughs, and Inspections The standard technique to ensure quality in software development.
Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.
Code Inspections CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 22, 2007.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
COMP 2007 R J Walters. COMP Remember - Documentation Defines your Engineering process Includes Requirements Design Testing User manuals Other.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
KENDA ALBERTSON Formal Peer Review Processes for Software and Documents.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Introduction to Software Testing (Paul deGrandis) [Reading assignment: Chapter 15, pp and notes by Paul deGrandis]
Development Testing – Is It Worth It? Arthur Hicken September 2012.
Software Engineering Process I
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Product Quality, Testing, Reviews and Standards
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
Galin, SQA from theory to implementation © Pearson Education Limited 2004 Review objectives Formal design reviews (FDRs) Participants Preparations The.
S oftware Q uality A ssurance Part One Reviews and Inspections.
Software Quality Assurance Activities
(1) Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Lecture 16 Formal Technical Reviews (FTRs) (also know as inspections) FOR0383 Software Quality Assurance 9/19/20151Dr Andy Brooks Don´t review in your.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Formal and Informal Peer Reviews
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
EMI INFSO-RI Metrics review Claudio (SA1), Lars, Duarte, Eamonn and Maria (SA2)
Copyright © 2005 QA Insight, Inc. All rights reserved. 1 A Review of Software Inspection Techniques Getting Higher Returns from Your Review Processes Karina.
Code Reviews: what, why and how An short introduction to code reviews. August 17 th 2012 Freek de Bruijn (NBIC)
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Static Analysis James Walden Northern Kentucky University.
Code Reviews. Challenges of Large Code Base How to ensure… – Maintainable code? – DRY code? – Readable code? – Bug-free code? Average defect detection.
Reviews and Inspections. Types of Evaluations Formal Design Reviews conducted by senior personnel or outside experts uncover potential problems Inspections.
1 Phase Implementation. Janice Regan, Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine subphases)
Code Reviews James Walden Northern Kentucky University.
Bruce Armstrong TeamSybase
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
EMI INFSO-RI Software Metric Definitions, Reports and Analysis in EMI Authors: Eamonn Kenny (TCD), Gianni Pucciani (CERN) Date: Tuesday 12 th April.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Automatic code inspection.
1 © Nokia 2015 Code review Adam Badura Public.
Secure Programming with Static Analysis Brian Chess, Ph.D.
More SQA Reviews and Inspections. Types of Evaluations  Verification Unit Test, Integration Test, Usability Test, etc  Formal Reviews  aka "formal.
1. ENTERPRISE AGILE TRANSFORMATION AT THE US POSTAL SERVICE MAY 24, Agile Business Solutions.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Findbugs Tin Bui-Huy September, Content What is bug? What is bug? What is Findbugs? What is Findbugs? How to use Findbugs? How to use Findbugs?
Software Analytics Platform
CIS 375 Bruce R. Maxim UM-Dearborn
Software Verification and Validation
eXtremely Distributed Software Development
Code Reviews.
An Expert Guide On Regression Testing. A software regression is any undesired variation that occurs from code changes. Let just take an example of this.
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
Quality Measurable characteristic Cyclomatic complexity Cohesion
Applied Software Project Management
Dr. Rob Hasker SE 3800 Note 9 Reviews.
Helping you make your code better
WALKTHROUGH and INSPECTION
White Box testing & Inspections
Code Reviews Assignment Each team should perform a code review
Presentation transcript:

Cole Cecil

Peer Code Review 2

Why do a peer code review? Find defects earlier Find different kinds of defects Share knowledge among peers Maintainability of code is improved Encourages developers to do better work 3

Types of peer code reviews Formal inspection Over-the-shoulder review Pair programming pass-around Tool-assisted review 4

Peer review best practices Don’t go too fast Less than 300 – 400 lines of code per hour Don’t review too much code at once No longer than 90 minutes No more than 400 lines of code Annotate before the review Track goals and metrics Use checklists Not too long Focus on trouble areas and easily forgotten things 5

Peer review best practices (continued) Review code before checking it in Keeps defects from becoming part of the product, but can slow development Designate one or more experienced people as primary reviewers At least one primary reviewer should be involved reviewing each piece of code Verify that all review comments are resolved Keep a good attitude about defects View them as improvements to the application View them as opportunities to learn If you can’t review everything, still review some things Keeps developers learning Encourages developers to write better code 6

Tools for peer code review Commerical Tools Crucible CodeCollaborator Free Tools Review Board Rietveld Gerrit Codestriker 7

Static Code Analysis Tools 8

What are static code analysis tools? Tools that analyze code without running it Can find be used to find bugs such as: Security issues Performance issues Memory issues Potential errors Not adhering to coding standards Can often be integrated with an IDE A good way to reduce the number of bugs before doing peer code review 9

Limitations of static code analysis tools False positives False negatives Can’t detect some types of issues 10

Examples of static code analysis tools A few Java tools CheckStyle FindBugs PMD Many, many more ode_analysis ode_analysis 11

References 11 Best Practices for Peer Code Review. Retrieved from Review.pdf Review.pdf Bilias, S. Peer Code Reviews At Loose Cannon. Retrieved from Five Types of Review. Retrieved from Gomez, I., Morgado, P., Gomez, T., & Moreira, R. An Overview on the Static Code Analysis Approach in Software Development. Retrieved from %20An%20overview%20on%20the%20Static%20Code%20Analysis%20approa ch%20in%20Software%20Development.pdf %20An%20overview%20on%20the%20Static%20Code%20Analysis%20approa ch%20in%20Software%20Development.pdf Peer Code Review: An Agile Process. Retrieved from Process.pdf Process.pdf Rubinstein, D. Making the case for code review. Retrieved from