Intro To
Exploratory Testing
Exploratory Testing
Using Heuristics
Michelle Lagare
QE-360 FOUNDER
QE Transition Coach / QE Is the New QA
CSM
Agile Evangelist
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
✓ Less time on prep, more time on actual testing
✓ Flexible - high level / low level details of tests
✓ Focus of the testing is within the context of what is
needed
✓ Increase chances of finding new errors
✓ Tests are less prone to being immune to tired, old
test cases
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
Domain
Divide and conquer data
Inputs and Outputs
- Boundary values
- Typical values
- Convenient values
- Invalid values
- Best representatives
User
Involve the users
- Categories and roles of users
- What do each user do?
- Real user data or real user to test
- Simulate a real user
Function
What can it do?
What isn’t supposed to do?
Flow
Do one thing after another
- End-to-end
- Don’t reset the system between actions
- Vary timing and sequencing
- Parallel threads
Stress
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
‘ ‘‘ ‘ ‘ ‘
‘ ‘ ‘
Scenario
Compelling story
- Meaningful and complex interactions
- Someone who matters might do something that matters with
the product
Claims
Challenge every claim
- SLA
- EULA
- Ads
- Specs
- Manuals
\
Risk
Imagine 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 Checking
Check 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
Structure
Everything that comprises the physical product
Code Non-executable files
Hardware Collateral
Function
Everything that the product does
Application Transformation Error-handling
Calculation Startup / Shutdown Interactions
Time-related Multimedia Testability
Data
Everything that the product processes
Input Persistent Big / Little
Sequences /
Output Noise
Combinations
Preset Cardinality Lifecycle
Interfaces
Every conduit by which the product is accessed or expressed
User Interfaces API / SDK
System Interfaces Import / Export
Platform
Everything on which the product depends (and is outside
your project)
External External Internal
Hardware Software Components
Operations
How will the product be used
Users Common Use
Environment Disfavored Use
Extreme Use
Time
Any relationship between product and time
Input / Output Changing Rates
Fast / Slow Concurrency
Quality Criteria Heuristics -
CRUSSPICSTMPL
● Capability ● Installability
● Reliability ● Compatibility
● Usability ● Supportability
● Security ● Testability
● Scalability ● Maintainability
● Performance ● Portability
● Localizability
Project Environment - CIDTEST
● Customer
● Information
● Developer Relations
● Test Team
● Equipment & Tools
● Schedule
● Test Items
● Deliverables
Test Oracles - MB & JB
FEW HICCUPPS
● Familiarity ● History
● Explainability ● Image
● World ● Comparable Products
● Claims
● User’s expectations
● Product
● Purpose
● Statutes &
Standards
Regression Testing - Karen Johnson
RCRCRC
● Recent
● Core
● Risk
● Configuration
● Repaired
● Chronic
Data Type Attacks -
Elisabeth Hendrickson
● Paths / Files
● Time and Date
● Numbers
● Strings
● General
Web Test -
Elisabeth Hendrickson
● Navigation
● Input
● Syntax
● Preferences
SMS Test - Karen Johnson
RSTLLL
● Reply
● Sender
● Timestamp
● List
● Links
● Language
● Length
Mobile App Testing - Jonathan Kohl
I SLICED UP FUN
● Inputs
● Data
● Store
● Usability
● Location
● Platform
● Interactions/Interruptions
● Function
● Communications
● User Scenarios
● Ergonomics
● Network
Create your own Test
Heuristics Mnemonics!
Q&A
Michelle Chua - Lagare
michelle.chua.lagare@gmail.com
@qeisthenewqa
@prew18