Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002.

Similar presentations


Presentation on theme: "Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002."— Presentation transcript:

1 Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002

2 Overview Limited Concepts Limited Concepts –Only those that increase quality, efficiency, and schedule predictability –Supported nearly entirely by a 100% Java tool Open Source Tools Open Source Tools –Inexpensive (i.e. free) –Accessible –Modifiable Statistics and Usefulness Statistics and Usefulness

3 Typical Testing Many bugs won't be found until customers start using product Many bugs won't be found until customers start using product Subtle errors that can be missed or conditions that aren't seen Subtle errors that can be missed or conditions that aren't seen Quality is unknown until testing begins Quality is unknown until testing begins Buggy code must be reimplemented Buggy code must be reimplemented User might not like what how the UI works User might not like what how the UI works Release date becomes unpredictable and continually slips Release date becomes unpredictable and continually slips QA/Testing is seen as the part of development overhead QA/Testing is seen as the part of development overhead A pre-set delivery date cuts off testing before enough bugs are found A pre-set delivery date cuts off testing before enough bugs are found

4 Benefits of a good QA process Far less chance of users experiencing problems Far less chance of users experiencing problems Find and fix bugs early Find and fix bugs early Write more code in less time Write more code in less time Schedule predictability Schedule predictability Known and controlled quality at all stages of development Known and controlled quality at all stages of development Keep more of your hair Keep more of your hair

5 Points As important as other aspects of development such as language, design, technology, even PM As important as other aspects of development such as language, design, technology, even PM The closest thing to a silver bullet The closest thing to a silver bullet Most of this stuff is easy to implement and does not add significant overhead Most of this stuff is easy to implement and does not add significant overhead The earlier you implement in a project the better The earlier you implement in a project the better Common quotes Common quotes –Test early, test often –Code a little, Test a little.

6 Related Concepts Design Design Project Management Project Management Requirements Requirements Configuration Management Configuration Management Programming Programming

7 QA Components Configuration Management Configuration Management Defensive Coding Defensive Coding Runtime Analysis Runtime Analysis Testing Testing

8 Configuration Management Change Management Change Management Source Control Source Control –jCvs, SourceJammer Tracking Tracking –Scarab, IssueZilla Standard Working Environment Standard Working Environment –IDE, Editor, Compiler, JRE Build and Test Scripts Build and Test Scripts –Ant

9 Defensive Coding Design Tools Design Tools –ArgoUML Assertions Assertions –Kopi, by-hand, JDK 1.4 Design by Contract Design by Contract –iContract, JContract, Kopi Style Checking Style Checking –StyleCheck w/Ant, Sun's style, Scott Ambler, InfoSpheres Generics Generics –Pizza, GJC, Kopi

10 Runtime Analysis Debuggers Debuggers –IDEs, Sun's Debugger Logging Logging –Log4J, JDK 1.4 –Exception emails Runtime Data Checkers Runtime Data Checkers –JTidy, DTD/XSchema

11 Testing Unit Testing Unit Testing –Manual, JUnit System Testing System Testing Static Analysis Static Analysis –JLint, Compaq/ESC Code Analysis Code Analysis Regression Testing Regression Testing –JUnit, JavaTest, HttpUnit, HTTP play/record Coverage Analysis Coverage Analysis –Quilt

12 Various Techniques Code Inspections Code Inspections –JEdit + JDiff Continuous Integration Continuous Integration Metrics - production, bugs, quality Metrics - production, bugs, quality eXtreme Programming eXtreme Programming QA Specialist QA Specialist Statistics / Metrics Statistics / Metrics Task Check-in Process Task Check-in Process

13 Task Check-In Process Report a task (bug or feature) Report a task (bug or feature) Design - UI, technical, test plan Design - UI, technical, test plan Design Reviews - UI by project manager, tech by Lead, test plan by QA Design Reviews - UI by project manager, tech by Lead, test plan by QA Prototype UI - approved by customer Prototype UI - approved by customer Write some unit tests (as described in the test plan) Write some unit tests (as described in the test plan) Code Code Unit test Unit test Peer Review Peer Review Static Analysis, Source standards check Static Analysis, Source standards check Check in Check in Update task report Update task report Initial verification by another programmer Initial verification by another programmer Final verification (System testing) when in alpha Final verification (System testing) when in alpha Code Review (weekly) Code Review (weekly)

14 Daily Smoke Test Build Build –Ant Full source check Full source check –SourceCheck Regression tests Regression tests –Junit, HttpUnit Full static checking Full static checking –Java/ESC Coverage Analysis Coverage Analysis –Quilt

15 Evaluation of Tools/Techniques Cost Cost Effectiveness Effectiveness Single/Team Single/Team Ease of integration Ease of integration –Into an existing process


Download ppt "Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002."

Similar presentations


Ads by Google