Software Testing and Maintenance 1. A systematic examination of source code to ensure sufficient code quality

Similar documents
Two heads can be better than one

Changing User Attitudes to Reduce Spreadsheet Risk

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

E C C. American Heart Association. Basic Life Support Instructor Course. Updated Written Exams. February 2016

The open source development model has unique characteristics that make it in some

Writing Research Articles

Empirical Software Evolvability Code Smells and Human Evaluations

Data Structures and Algorithms

Critical Thinking in Everyday Life: 9 Strategies

Visit us at:

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

Telekooperation Seminar

IT4305: Rapid Software Development Part 2: Structured Question Paper

Beyond the Blend: Optimizing the Use of your Learning Technologies. Bryan Chapman, Chapman Alliance

November 17, 2017 ARIZONA STATE UNIVERSITY. ADDENDUM 3 RFP Digital Integrated Enrollment Support for Students

Team Dispersal. Some shaping ideas

E-3: Check for academic understanding

Politics and Society Curriculum Specification

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Kelli Allen. Vicki Nieter. Jeanna Scheve. Foreword by Gregory J. Kaiser

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

SAP EDUCATION SAMPLE QUESTIONS: C_TPLM40_65. Questions. In the audit structure, what can link an audit and a quality notification?

NAME: East Carolina University PSYC Developmental Psychology Dr. Eppler & Dr. Ironsmith

15 super powers you never knew you had

Persuasive writing about no homework on weekends. AP Essay Writing Tips..

Cognitive Self- Regulation

No Parent Left Behind

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

TU-E2090 Research Assignment in Operations Management and Services

Teacher Action Research Multiple Intelligence Theory in the Foreign Language Classroom. By Melissa S. Ferro George Mason University

Generating Test Cases From Use Cases

A Game-based Assessment of Children s Choices to Seek Feedback and to Revise

The Flaws, Fallacies and Foolishness of Benchmark Testing

Practical Research. Planning and Design. Paul D. Leedy. Jeanne Ellis Ormrod. Upper Saddle River, New Jersey Columbus, Ohio

Multi Method Approaches to Monitoring Data Quality

Physics 270: Experimental Physics

A BOOK IN A SLIDESHOW. The Dragonfly Effect JENNIFER AAKER & ANDY SMITH

Writing an Effective Research Proposal

What to Do When Conflict Happens

Standards-Based Bulletin Boards. Tuesday, January 17, 2012 Principals Meeting

Software Maintenance

Study Group Handbook

How to learn writing english online free >>>CLICK HERE<<<

Two Futures of Software Testing

File # for photo

Moderator: Gary Weckman Ohio University USA

Gifted & Talented. Dyslexia. Special Education. Updates. March 2015!

From Self Hosted to SaaS Our Journey (LEC107648)

Certified Six Sigma - Black Belt VS-1104

Measurement & Analysis in the Real World

Being Extreme in the Classroom: Experiences Teaching XP

VB-MAPP Guided Notes

What is Teaching? JOHN A. LOTT Professor Emeritus in Pathology College of Medicine

Section 3.4. Logframe Module. This module will help you understand and use the logical framework in project design and proposal writing.

The Foundations of Interpersonal Communication

Secondary English-Language Arts

Mastering Team Skills and Interpersonal Communication. Copyright 2012 Pearson Education, Inc. publishing as Prentice Hall.

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Number of students enrolled in the program in Fall, 2011: 20. Faculty member completing template: Molly Dugan (Date: 1/26/2012)

Computer Organization I (Tietokoneen toiminta)

STABILISATION AND PROCESS IMPROVEMENT IN NAB

Gta vc free download for pc. When reviewing your free download and for working for, ask yourself the following Do I download gta question..

Spring Course Syllabus. Course Number and Title: SPCH 1318 Interpersonal Communication

SPECIALIST PERFORMANCE AND EVALUATION SYSTEM

Red Flags of Conflict

Decision Making Lesson Review

Second Step Suite and the Whole School, Whole Community, Whole Child (WSCC) Model

Learning Disabilities and Educational Research 1

Version Number 3 Date of Issue 30/06/2009 Latest Revision 11/12/2015 All Staff in NAS schools, NAS IT Dept Head of Operations - Education

Administrative Services Manager Information Guide

high writing writing high contests. school students student

Evaluating the Effectiveness of Mindmapping in Generating Domain Ontologies using OntoREM: The MASCOT Case Study

MSE 5301, Interagency Disaster Management Course Syllabus. Course Description. Prerequisites. Course Textbook. Course Learning Objectives

Introduction to the Revised Mathematics TEKS (2012) Module 1

Fearless Change -- Patterns for Introducing New Ideas

Language Acquisition Chart

Course Title: Health and Human Rights: an Interdisciplinary Approach; TSPH272/TPOS272

The Indices Investigations Teacher s Notes

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

PSY 1010, General Psychology Course Syllabus. Course Description. Course etextbook. Course Learning Outcomes. Credits.

Planning for Preassessment. Kathy Paul Johnston CSD Johnston, Iowa

ICT/IS 200: INFORMATION LITERACY & CRITICAL THINKING Online Spring 2017

Get with the Channel Partner Program

Tutor Coaching Study Research Team

DevelopSense Newsletter Volume 2, Number 2

Getting Started with Deliberate Practice

Institutionen för datavetenskap. Hardware test equipment utilization measurement

Developing Software Testing Courses for Your Staff

Appendix IX. Resume of Financial Aid Director. Professional Development Training

COMMUNICATION & NETWORKING. How can I use the phone and to communicate effectively with adults?

Enhancing Public Service with Customer Service

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

SMALL GROUPS AND WORK STATIONS By Debbie Hunsaker 1

CORRELATION FLORIDA DEPARTMENT OF EDUCATION INSTRUCTIONAL MATERIALS CORRELATION COURSE STANDARDS / BENCHMARKS. 1 of 16

Higher Education Review (Embedded Colleges) of Navitas UK Holdings Ltd. Hertfordshire International College

A student diagnosing and evaluation system for laboratory-based academic exercises

Module 9: Performing HIV Rapid Tests (Demo and Practice)

Clinical Quality in EMS. Noah J. Reiter, MPA, EMT-P EMS Director Lenox Hill Hospital (Rice University 00)

Training materials on RePro methodology

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Transcription:

Code Review Introduction How to Conduct Code Review Practical Tips Tool Support Summary Software Testing and Maintenance 1 What is it? A systematic examination of source code to ensure sufficient code quality Correctness: Try to detect faults that may exist in the code Maintainability: Try to make the code easier to understand and maintain Software Testing and Maintenance 2 1

Why? Help to find and fix bugs early Two brains are better than one brain! Help to improve code structure Enforce coding standards Spread knowledge among team members Good training opportunities for new hires What if the original author leaves? Developers know their code will be reviewed, so they will work harder. Software Testing and Maintenance 3 When and how often Not too soon, not too late Typically after unit testing has been done, and after basic features have been tested Weekly, or after each major feature Software Testing and Maintenance 4 2

Philosophy A forum to discuss and learn from everyone Not an opportunity to criticize people Not to demonstrate who is a better programmer Software Testing and Maintenance 5 Potential Misuses A waste of time and effort, if not performed effectively Harsh reviews may destroy a less experienced developer May create social problems if ego and/or politics are involved Software Testing and Maintenance 6 3

Lightweight vs Formal Review Lightweight review: over-the-shoulder, email passaround, and tool-assisted review Formal review: a well-defined process, physical meetings, prepared participants, documented results Software Testing and Maintenance 7 Fagan Inspection (1) Planning Preparation of materials Arranging of participants Arranging of meeting place Overview Group education of participants on the materials Assignment of roles Preparation The participants review the item to be inspected and supporting materials The participants prepare their roles Software Testing and Maintenance 8 4

Fagan Inspection (2) Inspection meeting Actual finding of defects and opportunities for refactoring Rework Resolve the comments made the review Follow-up Verification that all the comments are addressed Software Testing and Maintenance 9 A Simplified Process Preparation Establish the review group (the programmer, two reviewers, a recorder, and a leader) Make the materials available Come prepared Review The leader opens with a short discussion (goals and rules) The programmer explains the code (what it is supposed to accomplish, what requirements it contributes to, and what documentation it affects) Each participants raises questions, comments, and suggests The programmer responds (explain the logic, and problems, and choices Follow up Software Testing and Maintenance 10 5

Who Leader: technical authority, experienced, supportive and warm personality Recorder: keep a written record Reader: summarize the code segments, could be the author In general, participants should have a balanced mix An architect, a peer of the contributor, someone in the middle, new hires People should not be there: non-technical people, system testers, and managers Software Testing and Maintenance 11 What to look for (1) Logic errors: programming mistakes, incorrect assumptions, misunderstanding of requirements Adherence to coding standards Use of common code modules Robustness adequate error handling Software Testing and Maintenance 12 6

What to look for (2) Readability: meaningful names, easy-to-understand code structure Bad smells: opportunities for refactoring Tests: make sure unit tests are provided Comments: adequate comments must be provided, especially for logic that is more involved Software Testing and Maintenance 13 Tips - Statistics Size: 200 ~ 400 lines of uncommented code Review time <= 1 hour Inspection rate <= 300 LOC/hour Expected defect rates around 15 per hour # of reviewers: 3 to 7 Software Testing and Maintenance 14 7

Tips - Management Code reviews cannot be optional But it can be selective Critical and/or complex code, code that is written by less experienced people, e.g., new hires Require separate code reviews for different aspects Security, memory management, and performance Software Testing and Maintenance 15 Tips - Reviewers Critique the code, not the person Ask questions rather than make statements Point out good things, not only weaknesses Remember that there is often more than one way to approach a solution Respect, be constructive Software Testing and Maintenance 16 8

Tips - Developers Remember that the code isn t you Try to maintain coding standards Create a checklist of the things that the code reviews tend to focus Respect, and be receptive Software Testing and Maintenance 17 Dont Should not use it for performance measurement Avoid emotions, personal attacks, and defensiveness Avoid ego and politics No code changes after the review copy is distributed Software Testing and Maintenance 18 9

The Seven Deadly Sins Participants don t understand the review process Reviewers critique the producer, not the product Reviews are not planned, and reviewers are not prepared Review meetings drift into problem-solving. The wrong people participate. Reviewers focus on style, not substance. Software Testing and Maintenance 19 Tool Support Tools that try to automate the workflow Rietveld (Google), Review Board (reviewboard.org), Code Striker (Sourceforge), Java Code Reviewer (Sourceforge), Code Collaborator (SmartBear), and many others Tools that try to automate the actual inspection Checkstyle: check compliance with coding standards Splint: check C programs for security vulnerabilities BLAST: a software model checker for C programs And many others Software Testing and Maintenance 20 10

Summary One of the most effective ways to improve code quality It is the code that is being reviewed, not the developer. A good opportunity for knowledge sharing and team building. Code review should be an integral part of the development process. Software Testing and Maintenance 21 11