(1) Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.

Slides:



Advertisements
Similar presentations
Darryl Parks.  About Code Analysis, not Run-Time monitoring  This Presentation is NOT about Performance Analysis Tools  Profiling  Jconsole or other.
Advertisements

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Testing and Quality Assurance
Coding Standards for Java An Introduction. Why Coding Standards are Important? Coding Standards lead to greater consistency within your code and the code.
Engineering Secure Software. The Power of Source Code  White box testing Testers have intimate knowledge of the specifications, design, Often done by.
Static Code Analysis to Find Bugs Wright.edu CS7140 Spring 2013 (Slides collected from many sources)
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.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Process and Product Metrics
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Computer Science 340 Software Design & Testing Design By Contract.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
S ECURITY T OOLS F OR S OFTWARE D EVELOPMENT F X C OP 10.0 David Angulo Rubio.
Development Testing – Is It Worth It? Arthur Hicken September 2012.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
S OFTWARE Q UALITY QA: Quality Assurance By: MSMZ.
SCOTT KURODA ADVISOR: DR. FRANZ KURFESS Encouraging Secure Programming Practice in Academia.
.NET Code Auditing Keith Rull Software Engineer First Allied Securities Inc.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Quality Assurance Activities
(1) Coding Standards Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI
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.
Dr. Tom WayCSC Code Reviews & Inspections CSC 4700 Software Engineering.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
This chapter is extracted from Sommerville’s slides. Text book chapter
“An Approach to Identify Duplicated Web Pages” G. Lucca, M. Penta, A. Fasolino Compsac’02 pp Today presented by Kenny Kwok.
MSFC Avionics Department Flight Software Group CMM Level 2 Certified Automated Software Coding Standards System Development Team Assessment Team Luis Trevino.
Engineering Secure Software. Vulnerability of the Day  Each day, we will cover a different type of code-level vulnerability Usually a demo How to avoid,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
(1) A “Software ICU” for assessing and maintaining software project health Philip Johnson Collaborative Software Development Laboratory Information and.
1 Evaluating Code Duplication Detection Techniques Filip Van Rysselberghe and Serge Demeyer Lab On Re-Engineering University Of Antwerp Towards a Taxonomy.
(1) Milestone 1 Review Milestone 2 Planning Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Exceptions cs1043. Program Exceptions When a program detects an error, what should it do? – Nothing, simply allow the program to fail. – Implement a course.
(1) A beginners guide to testing Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Callista Enterprise Test Driven ESB Development Sofia Jonsson
©Ian Sommerville Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation with edits by Dan Fleck Coming up: Objectives.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation with edits by Dan Fleck.
(1) Installing the Software ICU Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(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.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Automatic code inspection.
(1) Introduction to Robocode Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Software Build Technology Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University.
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?
Computer Scientist, Software and Systems Division, ITL
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Analytics Platform
Maintenance Issues in Software Engineering
Software Verification and Validation
Verification and Validation
Why Every Dev. Team Needs Static Analysis
Chapter 8 – Software Testing
Verification and Validation
Engineering Secure Software
Chapter 1: Computer Systems
Chapter 13 Quality Management
Quality Measurable characteristic Cyclomatic complexity Cohesion
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification and Validation
Software Verification and Validation
Helping you make your code better
Software Verification and Validation
White Box testing & Inspections
Computer Science 340 Software Design & Testing
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

(1) Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822

(2) Objectives Understand motivation for automated quality assurance through static analysis, and how it differs from “manual” quality assurance. Learn about various automated quality assurance tools. Understand the strengths and weaknesses of the Java-based static analysis tools used in this class (Checkstyle, PMD, FindBugs).

(3) Quality Assurance High level: Does the system satisfy the three prime directives? Low level: Does the system have “good” tests? Does the system conform to coding standards? Does the system contain code known to be defect- prone? Does the system satisfy its requirements? We use a combination of “manual” and “automated” techniques to assess QA at the “high” and “low” levels.

(4) Manual QA Examples of manual QA techniques: Writing unit tests with JUnit Conducting code reviews. Strengths of manual QA: Find defects involving requirements. Low false positive rate. Weaknesses of manual QA: Difficult/expensive approach to low-level implementation defects. Must be redone for all projects.

(5) Automated QA Examples of automated QA: Lint, Checkstyle, PMD, FindBugs, DependencyFinder, Coverity, FxCop Strengths of automated QA: Can find classes of implementation defects that developers may not be skilled enough in the language/environment to detect via testing or inspection! Can be reused on any project. Weaknesses: Potential high false positive rate. Does not find requirements-level defects.

(6) A Quick Tour of Automated QA Tools

(7)

(8)

(9)

(10)

(11)

(12)

(13)

(14)

(15)

(16)

(17)

(18)

(19) The three primary Automated QA tools for this class

(20)

(21) Checkstyle Checkstyle performs source code analysis. Originally for "coding standard" (formatting) Now includes design-level best practice compliances. Classes of checks: JavaDoc, Naming Conventions, Headers, Size Violations, Imports, WhiteSpace, Modifers, Block Checks, Coding, Class Design, Duplicate Code, Metrics, J2EE. Can be extended with new checks. Use a configuration file to customize what checks your system should comply with.

(22)

(23)

(24) PMD PMD also performs source code analysis. More 'design' oriented than Checkstyle. Lots of overlap. PMD rulesets: Basic, Braces, Code Size, Clone, Controversial, Coupling, Design, Finalizers, Import, J2EE, JavaBeans, JUnit, Logging, Migrating, Naming, Optimizations, Exceptions, Strings, Security, Unused Code, JSP, JSF. Eventually, can choose one of PMD/Checkstyle.

(25)

(26)

(27) FindBugs FindBugs analyzes byte codes, not source codes. Example problem: ignored return value: String b = "bob"; b.replace('b', 'p'); if(b.equals("pop")){...} FindBugs defect detectors are quite different in nature from source code analyzers because the system can perform forward and backward data flow.

(28)

(29) QA in this class One goal of this course is to provide you with a set of techniques to build high quality systems as fast as possible To accomplish this, you must learn how to apply the correct mix of automated and manual QA techniques. Don’t write tests (or do reviews) to catch defects that an automated QA tool can find. Don’t believe that automated QS tools can find all of your errors.

(30)