automated quality assurance
Skip this Video
Download Presentation
Automated Quality Assurance

Loading in 2 Seconds...

play fullscreen
1 / 30

Automated Quality Assurance - PowerPoint PPT Presentation

  • Uploaded on

Automated Quality Assurance. Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822. Objectives.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Automated Quality Assurance' - padma

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
automated quality assurance

Automated Quality Assurance

Philip Johnson

Collaborative Software Development Laboratory

Information and Computer Sciences

University of Hawaii

Honolulu HI 96822

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