September 28, 2017
Testing in Different Contexts @ Dev West Meetup
Flipp hosted and sponsored this Dev West Meetup.
Gabriel Loo talked about his approaches to testing for the 3 different modes he sees teams around him in.
testing = exploring things that hurt the quality/value of a product
Pioneering
Pioneering is going where no one has gone before, assuming there will be something good end, but what that will be is unclear.
Example: Using OCR to process retail receipts for rebates
The team had to figure out if this was possible. Part of testing was finding different receipts and testing them against optical character recognition libraries to see which ones worked with all the different receipt variations
- French vs English receipts have different text and layouts
- self checkout vs regular checkout receipts look different
- different stores in the same franchise might have different receipt layouts
- different tills in the same stores might have different receipt layouts (different version of software on cash registers?)
How do a tester’s skills apply in this context?
- use your exploratory skills to change and test fundamental assumptions
- use automation skills like controlling Selenium for finding even more receipt images on Google to test OCR with
Building
Building has an end goal in site, it will be challenging and full of engineering problems, but the outcome is far less uncertain than pioneering
Example: Rebate Processing
The clear goal at the end is to get money back to legitimate consumers, and weed out invalid submissions such as:
- one user submitting many pictures of same receipt
- many users submitting pictures of the same receipt
- receipts from unsupported stores.
How do a tester’s skills apply in this context?
- use your ability to switch perspectives to test against malicious behavior
- the developers might only think of the happy path
Optimizing
Optimizing is taking something that has been built, is achieving its end goals, and making it better.
Example: improving the ‘load to card’ feature
The team thought this data entry task for users could be improved with a new UI. Gabriel wrote tests before the development team started working on the new UI so the devs would know if their new designs and refactored code met existing contracts in the system
How do a tester’s skills apply in this context?
- use your test writing skills to provide a baseline for others test against and prevent regressions
- test functionality
- test performance
Also, extreme couponing courtesy of Flipp
No frills has $.97 toothpaste, and a $2 off 2 items coupon. Combine for free toothpaste