Finding a holy grail in a haystack October 7 , 2016 Marjana Shammi, Niels de Keijzer, Arturo Martinez
Story of today First Half • Introduction to IceMobile • Challenges & Solutions Q & A Second Half • Keeping Innovation Alive Q & A
Founded in 2002
T est tool stack T ools we used in the past
The new tester
Simplify - knowledge retention & dispersion - Strategy & Process for Automation - tooling stack fit for purpose
Automation Strategy Exploratory Tests Selenium (web) System Component Semele (mobile) checks Increase of Automation Minosse Front-end API Integration checks checks ( mocked) Client Side Server Side Mocha & Chai Unit Tests Unit Tests
Minosse - API automated checks Minosse Common Steps Support Code Feature File APIs (js) Custom Steps https:/ /github.com/icemobilelab/minosse https:/ /github.com/icemobilelab/gherkin-definitions
Mobile automation Previous Struggles Improve - Revise - Use of global names that needed to be duplicated to make work - Use Native Tooling with both platforms. - Appium asks for using accessibility - More involvement of developers to keep labels that are not mandatory for code & automation consistent iOS. - Keep a similar language convention - App code needed to be modified to work with previous framework - Reduce dependency of external tooling Teseo. - Increase of performance runs - Developers were frustrated to maintain and didn’t. - Appium updates were not too frequent 6 months or so.
Semele - Mobile Automated checks Semele Common Steps iOS Support Code Feature File Mapping (Espresso XCUITest ) Custom Steps And
Minosse Minosse - API automated checks Minosse Common Steps Support Code Feature File APIs (js) Custom Steps https:/ /github.com/icemobilelab/minosse https:/ /github.com/icemobilelab/gherkin-definitions
Monitos A monkey test tool for a mobile app REST API
Mobile app landscape Backend B Backend C Backend A Backend D Middle-layer
Oops
Steps to reproduce Search for Browse Log in stores categories Book a Add products Place order collection slot to basket
Cowboy style
Reproducing the issue with SoapUI
The same set of calls, but then in a Node.js script Search for Browse Log in stores categories Book a Add products Place order collection slot to basket
Enter state machines State diagram of a turnstile
More realistic journeys Search for Browse Log in stores categories Book a Add products Place order collection slot to basket
Search for Browse Log in stores categories Book a Add products Place order collection slot to basket
Monitos
Current usage • Monkey testing for the middle-layer • Find obscure user journeys that lead to errors • Spawn a couple dozens and let them run for some time, hopefully catching some bugs in the process • Reproduction of complex error scenarios • Smoke test alternative • Cache warmup mechanism
• List of endpoints called • Achievements
Monitos core library • State machines meet D&D • http://npmjs.com/package/monitos • https://github.com/dunkelheit/monitos
Demo time
Questions?
Recommend
More recommend