Your SlideShare is downloading. ×
Quality Assurance
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Quality Assurance

219
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
219
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002
  • 2. Overview  Limited Concepts – Only those that increase quality, efficiency, and schedule predictability – Supported nearly entirely by a 100% Java tool  Open Source Tools – Inexpensive (i.e. free) – Accessible – Modifiable  Statistics and Usefulness
  • 3. Typical Testing  Many bugs won't be found until customers start using product  Subtle errors that can be missed or conditions that aren't seen  Quality is unknown until testing begins  Buggy code must be reimplemented  User might not like what how the UI works  Release date becomes unpredictable and continually slips  QA/Testing is seen as the part of development overhead  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  Find and fix bugs early  Write more code in less time  Schedule predictability  Known and controlled quality at all stages of development  Keep more of your hair
  • 5. Points  As important as other aspects of development such as language, design, technology, even PM  The closest thing to a silver bullet  Most of this stuff is easy to implement and does not add significant overhead  The earlier you implement in a project the better  Common quotes – Test early, test often – Code a little, Test a little.
  • 6. Related Concepts  Design  Project Management  Requirements  Configuration Management  Programming
  • 7. QA Components  Configuration Management  Defensive Coding  Runtime Analysis  Testing
  • 8. Configuration Management  Change Management  Source Control – jCvs, SourceJammer  Tracking – Scarab, IssueZilla  Standard Working Environment – IDE, Editor, Compiler, JRE  Build and Test Scripts – Ant
  • 9. Defensive Coding  Design Tools – ArgoUML  Assertions – Kopi, by-hand, JDK 1.4  Design by Contract – iContract, JContract, Kopi  Style Checking – StyleCheck w/Ant, Sun's style, Scott Ambler, InfoSpheres  Generics – Pizza, GJC, Kopi
  • 10. Runtime Analysis  Debuggers – IDEs, Sun's Debugger  Logging – Log4J, JDK 1.4 – Exception emails  Runtime Data Checkers – JTidy, DTD/XSchema
  • 11. Testing  Unit Testing – Manual, JUnit  System Testing  Static Analysis – JLint, Compaq/ESC  Code Analysis  Regression Testing – JUnit, JavaTest, HttpUnit, HTTP play/record  Coverage Analysis – Quilt
  • 12. Various Techniques  Code Inspections – JEdit + JDiff  Continuous Integration  Metrics - production, bugs, quality  eXtreme Programming  QA Specialist  Statistics / Metrics  Task Check-in Process
  • 13. Task Check-In Process  Report a task (bug or feature)  Design - UI, technical, test plan  Design Reviews - UI by project manager, tech by Lead, test plan by QA  Prototype UI - approved by customer  Write some unit tests (as described in the test plan)  Code  Unit test  Peer Review  Static Analysis, Source standards check  Check in  Update task report  Initial verification by another programmer  Final verification (System testing) when in alpha  Code Review (weekly)
  • 14. Daily Smoke Test  Build – Ant  Full source check – SourceCheck  Regression tests – Junit, HttpUnit  Full static checking – Java/ESC  Coverage Analysis – Quilt
  • 15. Evaluation of Tools/Techniques  Cost  Effectiveness  Single/Team  Ease of integration – Into an existing process