class: center ##Heuristic Table of Testing ### Shing Lyu ??? top, middle, bottom left, center, right --- ###Definition of "Heuristic" .right[By James Bach] * (__adj__.) serving to discover * (__n.__) a fallible method of solving a problem * In the form of __mnemonics__ or mindmaps --- background-image: url(img/Heurisit_Table_of_Testing.jpg) --- ### How to use * Read through them * Come back to it when confused / lost / need ideas * Explore the area outside of the heuristics * Come up with your own list --- ###Overview * James Bach's __Heuristics Testing Model__ * Test Techniques * Project Environment * Product Elements * Quality Criteria --- ### Overview (cont.) * Planning * Adam Goucher's Ordering of New Testing Tasks Heuristics * Michael Kelly's Touring Heuristics * Scott Barber's Performance Testing Heuristics * Karen Johnson's Regression Testing Heuristics --- ### Overview (cont.) * Execution * James & Michael's Oracles Heuristics * Ben Simo's Error Reporting and Handling Heuristics * Reporting * Michael Kelly's Test Reporting Heuristics * James Bach's Learning Heuristics --- ####Heuristic Test Strategy Model * By [James Bach](http://www.satisfice.com/tools/htsm.pdf)  ??? * Test Techniques * Project Environment * Product Elements: SFDIPOT * Quality Criteria --- ###FDSFSCURA * Test Techniques * From [James Bach's HTSM](http://www.satisfice.com/tools/htsm.pdf)
* __F__unction Testing * __D__omain Testing: .footnote[Divide and conquer the data] * __S__tress Testing * __F__low Testing: .footnote[Do one thing after another] * __S__cenario Testing * __C__laim Testing: .footnote[Manual, Ads, EULSs, specs] * __U__ser Testing * __R__isk Testing * __A__utomaic Checking: .footnote["Check" v.s. "Test"] --- ### MIDTESTD * Project Environment * From [James Bach's HTSM](http://www.satisfice.com/tools/htsm.pdf)
* __M__ission: .footnote[customer expectations] * __I__nformation: .footnote[document? owner? old version?] * __D__eveloper Relations * __T__est Team * __E__quipment & Tools * __S__chedule * __T__est Items * __D__eliverables: .footnote[test reports, format, media, etc.] --- ###SFDIPOT * Product Elements, Coverage * From [James Bach's HTSM](http://www.satisfice.com/tools/htsm.pdf)
* __S__tructure: .footnote[SW, HW, license, manual, etc.] * __F__unction * __D__ata * __I__nterfaces * __P__latform * __O__perations: .footnote[usage scenarios] * __T__ime --- ###CRUCSS CPID * Quality Criteria Categories * From [James Bach's HTSM](http://www.satisfice.com/tools/htsm.pdf)
* __C__apability * __R__eliability * __U__sability * __C__harisma: .footnote[aesthetics, user friendliness, brand image] * __S__ecurity * __S__calability --- ###CRUCSS CPID (cont.) * __C__ompatibility * __P__erformance * __I__nstallability * __D__evelopement: .footnote[supportability, testability, maintainability, etc.] --- class:center, middle #Planning --- ###SLIME * How to approach a new test task * from [Adam Goucher's blog](http://adam.goucher.ca/?p=130) * Things that are hard to change need to be tested early
* __S__ecurity: .footnote[=> architectural rewrite] * __L__anguate: .footnote[l10n => rewrite] * Requ__I__rements * __M__easurements: .footnote[performance, load, stress] * __E__xisting: .footnote[regression] --- ### FCC CUTS VIDS * Touring * from [Michael D. Kelly's article](http://michaeldkelly.com/blog/2005/9/20/touring-heuristic.html)
* __F__eature tour * __C__omplexity tour: .footnote[find 5 most complex thing] * __C__laims tour --- ### FCC CUTS VIDS (cont.) * __C__onfiguration tour * __U__ser tour: .footnote[imagine 5 types of users] * __T__estability tour: .footnote[find testability features and tools]
* __S__cenario tour * __V__ariability tour: .footnote[Changable things] * __I__nteropeability tour * __D__ata tour * __S__tructure tour --- ### FIBLOTS * Create workload for performance testing * from [Scott Barber's blog](http://scott-barber.blogspot.tw/2011/09/model-workloads-for-performance-testing.html)
* __F__requent: .footnote[common usage] * __I__ntensive * __B__usiness Critical * __L__egal * __O__bvious: .footnote[bad news coverage] * __T__echnically Risky * __S__tackholder Mandated --- ###RCRCRC * Regression testing * From [Karen Johnson's post](http://searchsoftwarequality.techtarget.com/tip/A-software-experts-heuristic-for-regression-testing)
* __R__ecent * __C__ore * __R__isky * __C__onfiguration sensitive * __R__epaired * __C__hronic --- class:center, middle # Execution --- ###FEW HICCUPPS * Test Oracles * from [Michael Bolton & James Bach's post](http://www.developsense.com/blog/2012/07/few-hiccupps/),
* __F__amiliarity * __E__xplainability * __W__orld: .footnote[obey the rule of nature?] --- ###FEW HICCUPPS (cont.) * __H__istory * __ I__mage: .footnote[brand image] * __C__omparable Product * __C__laims * __U__ser Expectation * __P__roduct: .footnote[components are part of the overall product] * __P__urpose * __S__tandards & Statutes --- ###FAILURE * Error message and handling * from [Ben Simon's blog](http://www.questioningsoftware.com/2007/08/failure-usability.html)
* __F__unctional: .footnote[Right time, right condition] * __A__ppropriate * __I__mpact * __L__og: .footnote[technical detail go into the log, not error message] * __U__I * __R__ecovery * __E__motions --- class:center, middle # Reporting --- ###MOCASTER * Test Report * from [Michael D. Kelly's article](http://www.informit.com/articles/article.aspx?p=457506)
* __M__ission * __C__overage: .footnote[dimensions, see James Bach's SFDIPOT] * __R__isk * __T__echniques * __E__nvironment * __S__tatus: .footnote[think progress bar] * __O__bstacles --- ### SACKED SCOWS * Learning Heuristics * From James Bach's book [Secrets of a Buccaneer-Scholar](http://www.amazon.com/Secrets-Buccaneer-Scholar-Self-Education-Pursuit-Lifetime/dp/1439109087)
* __S__couting obsessively * __A__uthentic problems * __C__ognitive savvy * __K__nowledge attracts knowledge * __E__xperimentation * __D__isposable time --- ### SACKED SCOWS (cont.) * __S__tories * __C__ontrasting ideas * __O__ther minds * __W__ords and pictures * __S__ystems thinking