SlideShare a Scribd company logo
Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory  Information and Computer Sciences University of Hawaii Honolulu HI 96822
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).
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.
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.
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.
A Quick Tour of Automated QA Tools
 
 
 
 
 
 
 
 
 
 
 
 
The three primary Automated QA tools for this class
 
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.
 
 
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.
 
 
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.
 
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.
 

More Related Content

PDF
findbugs Bernhard Merkle
PPTX
Finding bugs that matter with Findbugs
PPTX
Back-2-Basics: .NET Coding Standards For The Real World (2011)
PDF
Working With Legacy Code
PPTX
Rock Your Code with Code Contracts
PPT
Exception handler
PPTX
Working Effectively with Legacy Code
PDF
Mining Fix Patterns for FindBugs Violations
findbugs Bernhard Merkle
Finding bugs that matter with Findbugs
Back-2-Basics: .NET Coding Standards For The Real World (2011)
Working With Legacy Code
Rock Your Code with Code Contracts
Exception handler
Working Effectively with Legacy Code
Mining Fix Patterns for FindBugs Violations

What's hot (20)

PPS
Control statements
ODP
Mastering Mock Objects - Advanced Unit Testing for Java
PPSX
Exception Handling - Part 1
PDF
Using PHPStan with Laravel App
PPTX
Java - Generic programming
PDF
Working Effectively with Legacy Code: Lessons in Practice
PDF
Generics and collections in Java
KEY
An introduction to mutation testing
PDF
Exception Handling
PDF
Beyond PITS, Functional Principles for Software Architecture
PPTX
Unit Testing in Java
PPTX
Java chapter 2
PPTX
A Closer Look at Real-World Patches
PPT
JMockit
PDF
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
PPT
JMockit Framework Overview
PPT
Exception handling in c++ by manoj vasava
PPS
Exception handling in c programming
PDF
Write readable tests
PDF
Looking for Bugs in MonoDevelop
Control statements
Mastering Mock Objects - Advanced Unit Testing for Java
Exception Handling - Part 1
Using PHPStan with Laravel App
Java - Generic programming
Working Effectively with Legacy Code: Lessons in Practice
Generics and collections in Java
An introduction to mutation testing
Exception Handling
Beyond PITS, Functional Principles for Software Architecture
Unit Testing in Java
Java chapter 2
A Closer Look at Real-World Patches
JMockit
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
JMockit Framework Overview
Exception handling in c++ by manoj vasava
Exception handling in c programming
Write readable tests
Looking for Bugs in MonoDevelop
Ad

Similar to Introduction to automated quality assurance (20)

PPT
Ensuring code quality
PPTX
Quality assurance of large c++ projects
PPT
Manualtestingppt
PDF
Software testing
PPTX
Coding and testing in Software Engineering
PPTX
Coding, Testing, Black-box and White-box Testing.pptx
PPTX
Software testing (2)
PPTX
Unit_5 and Unit 6.pptx
PPTX
Code review
PPT
Static Analysis
PDF
Code coverage & tools
PPTX
Testing concepts
PPTX
Automating The Process For Building Reliable Software
PPT
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
PDF
Software Testing Certification
PDF
Certified Software Testing Professional
PPTX
White box & black box testing
PDF
[India Merge World Tour] Coverity
PPTX
white box and black box testing in software engineering
PPTX
To Improve Code Quality in Your Software Development Projects- Code Brew Labs...
Ensuring code quality
Quality assurance of large c++ projects
Manualtestingppt
Software testing
Coding and testing in Software Engineering
Coding, Testing, Black-box and White-box Testing.pptx
Software testing (2)
Unit_5 and Unit 6.pptx
Code review
Static Analysis
Code coverage & tools
Testing concepts
Automating The Process For Building Reliable Software
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Software Testing Certification
Certified Software Testing Professional
White box & black box testing
[India Merge World Tour] Coverity
white box and black box testing in software engineering
To Improve Code Quality in Your Software Development Projects- Code Brew Labs...
Ad

More from Philip Johnson (20)

PPTX
Kukui Cup 2012 Energy Data
PPTX
Introduction to ICS 691: Software Engineering for the Smart Grid
PPTX
Kukui Cup 2012 Organizing Committee February Meeting
PPTX
How to plan a Kukui Cup
PPT
Honors thesis overview: Katie Amberg-Johnson
PPT
Introduction to Issue Driven Project Management
PPT
Introduction to continuous integration
PPT
Introduction to WattDepot
PPT
Introduction to Subversion and Google Project Hosting
PPT
Introduction to Version Control and Configuration Management
PPT
A beginners guide to testing
PPT
Introduction to Software Build Technology
PPT
Introduction to Software Review
PPT
Introduction to Robocode
PPT
Codings Standards
PPT
Interactive Development Environments
PPT
Introduction to Intermediate Java
PPT
Professional Persona
PPT
01.intro
PPTX
iHale Milestone 2 Kickoff
Kukui Cup 2012 Energy Data
Introduction to ICS 691: Software Engineering for the Smart Grid
Kukui Cup 2012 Organizing Committee February Meeting
How to plan a Kukui Cup
Honors thesis overview: Katie Amberg-Johnson
Introduction to Issue Driven Project Management
Introduction to continuous integration
Introduction to WattDepot
Introduction to Subversion and Google Project Hosting
Introduction to Version Control and Configuration Management
A beginners guide to testing
Introduction to Software Build Technology
Introduction to Software Review
Introduction to Robocode
Codings Standards
Interactive Development Environments
Introduction to Intermediate Java
Professional Persona
01.intro
iHale Milestone 2 Kickoff

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
Tartificialntelligence_presentation.pptx
PPTX
A Presentation on Touch Screen Technology
PDF
Approach and Philosophy of On baking technology
PPTX
OMC Textile Division Presentation 2021.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
A novel scalable deep ensemble learning framework for big data classification...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Group 1 Presentation -Planning and Decision Making .pptx
DP Operators-handbook-extract for the Mautical Institute
Univ-Connecticut-ChatGPT-Presentaion.pdf
cloud_computing_Infrastucture_as_cloud_p
Heart disease approach using modified random forest and particle swarm optimi...
Chapter 5: Probability Theory and Statistics
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Zenith AI: Advanced Artificial Intelligence
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
SOPHOS-XG Firewall Administrator PPT.pptx
TLE Review Electricity (Electricity).pptx
Tartificialntelligence_presentation.pptx
A Presentation on Touch Screen Technology
Approach and Philosophy of On baking technology
OMC Textile Division Presentation 2021.pptx

Introduction to automated quality assurance

  • 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.