exploratory testing using heuristics
TRANSCRIPT
Exploratory Testing Using Heuristics
Michelle LagareQE Is The New QAQE Transition Coach
Exploratory testing, anyone?
Simultaneous learning, test design and test
execution- James Bach
Why Exploratory Testing? Keep up with dev’t. pace Tester is an integral part of test process Core of Agile Testing
Advantages Keep up with dev’t. pace Tester is an integral part of test process Core of Agile Testing
Disadvantages
✘ Demands testing expertise✘ Tester should have system’s domain knowledge✘ Difficult to reproduce steps✘ Harder to spot conflicting requirements
“HEURISTIC is a fallible method of solving a problem or making a
decision- James Bach & Cem Kaner
Test Design Thru HEURISTICS
“There are different heuristics and we can come up with our own heuristic sets to make it more suitable to the project we’re
testing
Test Heuristics in Mnemonics
General Test Techniques Heuristics -
DUFFSSCRA
Divide and conquer dataInputs and Outputs
Boundary values Typical values Convenient values Invalid values Best representatives
Domain
UserInvolve the users
Categories and roles of users What do each user do? Real user data or real user to test Simulate a real user
What can it do?What it isn’t supposed to do?
Function
Do one thing after another End-to-end Don’t reset the system between actions Vary timing and sequencing Parallel threads
Flow
Overwhelm the product Sub-systems to be overloaded or “broken” Challenging data Large or complex data structures High loads Long test runs Low memory conditions
Stress
Compelling story Meaningful and complex interactions Someone who matters might do something that matters
with the product
‘‘ ‘‘ ‘‘
‘ ‘‘ Scenario
Challenge every claim SLA EULA Ads Specs Manuals
Claims
RiskImagine a problem
Problems the products could have Which ones matters most? How do you detect them? List of problems and how to reveal them Consult experts, docs and past bugs
\
Automatic CheckingCheck a million different facts
Look/develop tools that can perform lots of actions and check lots of things
Partially automate test coverage Partially automate oracles Change detector Test data generator What can make human testing more powerful
Product Element Heuristics - SFDIPOT
StructureEverything that comprises the physical product
Code Non-executable files
Hardware Collateral
FunctionEverything that the product does
Application Transformation Error-handling
Calculation Startup / Shutdown Interactions
Time-related Multimedia Testability
DataEverything that the product processes
Input Persistent Big / Little
Output Sequences / Combinations Noise
Preset Cardinality Lifecycle
InterfacesEvery conduit by which the product is accessed or expressed
User Interfaces API / SDK
System Interfaces Import / Export
PlatformEverything on which the product depends (and is outside your project)
External Hardware
External Software
InternalComponents
OperationsHow will the product be used
Users Common Use
Environment Disfavored Use
Extreme Use
TimeAny relationship between product and time
Input / Output Changing Rates
Fast / Slow Concurrency
Quality Criteria Heuristics - CRUSSPICSTMPL
Capability Reliability Usability Security Scalability Performance
Installability Compatibility Supportability Testability Maintainability Portability Localizability
Project Environment - CIDTEST Customer Information Developer Relations Test Team Equipment & Tools Schedule Test Items Deliverables
Test Oracles - MB & JBFEW HICCUPPS
Familiarity Explainability World
History Image Comparable Products Claims User’s expectations Product Purpose Statutes & Standards
Recent Core Risk Configuration Repaired Chronic
Regression Testing - Karen JohnsonRCRCRC
Paths / Files Time and Date Numbers Strings General
Data Type Attacks - Elisabeth Hendrickson
Navigation Input Syntax Preferences
Web Test - Elisabeth Hendrickson
Reply Sender Timestamp List Links Language Length
SMS Test - Karen JohnsonRSTLLL
Inputs Store Location Interactions/Interruptions Communications Ergonomics
Mobile App Testing - Jonathan KohlI SLICED UP FUN
Data Usability Platform Function User Scenarios Network
Create your own Test Heuristics Mnemonics!