https://devsummit.aspirationtech.org/index.php?title=Managing_Quality_Through_the_Entire_Development_Life_Cycle&feed=atom&action=historyManaging Quality Through the Entire Development Life Cycle - Revision history2024-03-28T16:45:05ZRevision history for this page on the wikiMediaWiki 1.35.1https://devsummit.aspirationtech.org/index.php?title=Managing_Quality_Through_the_Entire_Development_Life_Cycle&diff=998&oldid=prevVivian: 1 revision imported2015-05-20T21:30:15Z<p>1 revision imported</p>
<p><b>New page</b></p><div>Facilitated by [http://timbishop.com/ Tim Bishop]<br />
<br />
Tim will share his learnings and practices drawn from his rich experience in testing and supporting nonprofit software products.<br />
<br />
=== Notes ===<br />
''These are notes from Leo's session on quality''<br />
<br />
QA<br />
* is an insurance<br />
** creates stability and quality<br />
* can't be an afterthought<br />
** needs to be part of the design and development process<br />
* Example<br />
** no new staffing at Empower, went form 1800 to 300 bugs<br />
* Example:<br />
** Went from 3 month cycle release to 1 month cycle<br />
* saves many hours<br />
* Time in testing or time in technical support<br />
<br />
QA Team<br />
* Core Based<br />
* Customer <br />
* Sourceforge<br />
<br />
Tools/Techniques<br />
* Contiuous Integration Server !Important<br />
** Automatic build/compiling testing<br />
** Automated Test is run with Empty DB in Memory<br />
** Unit Test<br />
*** Smallest part<br />
* Don't commit without running tests<br />
* Test Driven Development<br />
** Define Tests first<br />
** Fail first, then develop that pass tests<br />
* Code Coverage !important<br />
** 80% must be solid (20% risk)<br />
*** Drupal does 70%<br />
* Types/Levels Testing<br />
** Unit Testing<br />
*** Example: Testing methods of objects<br />
** Functional Testing<br />
*** Often bugs are at this level.<br />
** Integration Testing<br />
** Different Layers<br />
** Regression Testing<br />
* Web Testing<br />
** Start with blank DB<br />
** TestNG (Java Tool)<br />
*** Can drive web-sites<br />
* All Automated Tests have to Pass before QA looks at it<br />
** Often new features, no test written<br />
** Simple Manual Tests First<br />
*** Can ask a handful of people to run these simple tests<br />
* Bahvioir Testing<br />
** What should a method do (not the possibilities)<br />
** Instead of Unit Test<br />
* MOCK<br />
** Mock Objects<br />
* Cruise Control<br />
** Sends info to IRC<br />
* Hudson<br />
* Ship Product with Test<br />
** User can run Tests<br />
** Email results of tests<br />
* No Test, No Code<br />
** If you can't write Unit Test, then don't write code<br />
* Weekly Code Review<br />
** Look at Unit Tests<br />
* Test Harness<br />
** Collection of Unit Tests<br />
* To Start Testing<br />
** Look at Bugs<br />
*** Write a failing tests for the bug to recreate bug<br />
* 3rd Party Integration<br />
** Write Tests for their API<br />
** Customers are not concerned with who broke what<br />
* Start Testing from Base of Stack<br />
** DB, Domain Object, Web Interface<br />
* Offer Testing in Contract<br />
** Support versus Testing hours<br />
** Offer no testing and $500/mo support<br />
** Offer testing and $100/mo support<br />
* In open source community, its important to push for testing<br />
<br />
Issues/Debates<br />
* Getting QA started in organization<br />
** How to write a Unit Testing<br />
** Use Pre/Post Conditions<br />
** Use of testing tools<br />
** Creating value for QA (especially with development/engineering)<br />
*** More valuable that engineering<br />
* A lot of Overhead<br />
* Tech Support is not QA<br />
<br />
Agile<br />
* QA works well with Agile-like process<br />
<br />
Benefits<br />
* Can find exact issues easier<br />
** Saves many hours of time when looking for problems<br />
<br />
Project Size<br />
* Small<br />
** Unit Testing<br />
** Don't commit without passing<br />
** Regression Testing<br />
** Build in Test Harness<br />
** OFten smaller projects are used in bigger projects<br />
** Automating Project Setup, Common Tasks<br />
<br />
Overall Quality<br />
* More than just testing<br />
* Tests are great, but there still needs to be in-person/manual quality checking<br />
*</div>Vivian