June 1, 2017

Moshe Milman, COO of Applitools, speaks to the Ministry of Testing - Boston (5/23/2017)

We had a special guest on Tuesday, May 23rd, 2017 coming to speak to the Ministry of Testing - Boston!

Moshe Milman, COO and co-creator of Applitools gave a talk to the Ministry of Testing - Boston called "Advanced Test Automation Techniques For Responsive Apps And Sites". The event was sponsored by Cengage Learning, a twelve minute walk from South Station in Boston, MA, at 20 Channel Center Street, Boston, MA.



From 6:00 pm to 6:30 pm, members gathered and talked over pizza & beer provided by Cengage. Thank you, Colin, Director of QA for Cengage Learning for setting it up!

About the Speaker:

"Moshe brings over 15 years of experience in leadership, engineering and operational roles in public and private companies. Prior to founding Applitools, Moshe held leadership roles at Wave Systems Corp., Safend, Amdocs (NASDAQ:DOX) and Sat-Smart Ltd. Moshe holds a Bachelor’s degree in Information Systems from the Technion Israel’s Institute of Technology and MBA from IDC (Wharton Business School GCP program)"



About Applitools:

"Applitools was founded by software developers on a mission to shorten the release cycles of their product. Despite having good unit test coverage and automated end-to-end functional tests, a full manual regression of the UI, covering multiple operating systems, web browsers, screen resolutions and localizations, took days to complete.

"Back at the time, there were plenty of excellent commercial and open-source tools that allowed you to test the functionality of your app through the UI, but there were no tools that allowed you to automatically test the look & feel and user experience of your app. That is, verifying that each UI element in each page appears in the right color, shape, position and size, and that it does not overlap or hide other UI elements.

"After years of hard work carried out by experts, we successfully built a vast tech-stack that solved the automated visual testing problem". -Applitools.com, About

More about the event is at https://www.meetup.com/ministry-of-testing-boston/events/239823300/

About The Talk


Moshe Milman's talk was about "Advanced Test Automation Techniques For Responsive Apps And Sites".

What is responsive web design? Moshe showed us the Wikipidia Entry at https://en.wikipedia.org/wiki/Responsive_web_design

"Responsive web design (RWD) is an approach to web design aimed at allowing desktop webpages to be viewed in response to the size of the screen or web browser one is viewing with. In addition it's important to understand that Responsive Web Design tasks include offering the same support to a variety of devices for a single website. As mentioned by the Nielsen Norman Group: content, design and performance are necessary across all devices to ensure usability and satisfaction".

Responsive Web Design is aimed at crafting sites to provide optimal viewing and interaction experience across a wide range of devices.

Go to the Wikipedia page above. Make it full screen. Then make it the size of an iPad. An iPhone. The look and feel of the page changes, depending on the size of the screen.

... Well, it's not perfect. When the screen is as small as an iPhone the images start overlapping the far left column, where the left menu is.

Compare that with Github.com: Full View

All the web elements accounted for!
But if we start narrowing the screen...

Where did the Sign In and Sign Up button go?
The Sign In and Sign Up button start disappearing. In its place is the "Hamburger" icon, the three lines stacked like two bun halves and a hamburger patty, all the way in the far right corner.

If we narrow the screen even more...

The Screen! It readjusted!
... All the page elements shifted!

Why is this important? ... Now, instead of having to have four or five different bodies of code, for each size web or mobile screen, if you code it to be a Reactive Web and Mobile site the layout will automatically adjust to be the perfect fit!

Though, this does have problems when it comes to automation. What if the automated test expects you to click "Sign In" or "Sign Up" in the upper right hand corner, and oops! It is not visible. It's the hamburger icon!

Browser windows have properties. You can set the widths of the window using "window.innerwidth" and "window.innerlength". If you, the tester know that at width (1) there is a button and width (2) there is the hamburger icon, you can in the Page Object handle both widths.

Moshe's presentation was quite similar to the one he used a few years ago at #SeleniumCamo 2015.


Moshe also ran a few demos of Applitools, demoing reports shown in the above presentation.

Here are a few pointers Moshe gave for writing automated tests:

Headless vs Non-Headless Browsers?

  • Moshe: Headless browsers such as PhantomJs or Headless versions of Chrome are good for basic sanity tests, since they run faster. Without the UI displaying or a waiting for a full version of a browser to spin up, it is a lot quicker. Need to check responsive web sites? Use a real browser, not a headless browser.

“Look and feel is always better with real devices".

Emulators vs Actual Devices?

  • Moshe: Emulators are great for general tests, but for accepting tests, it is better to use real devices. Emulator screen size and performance doesn’t always match actual devices. Not always the perfect result

Assert or Verify?

Let's say you have a five step procedure to place an order on an eCommerce site, and you need to check, say, Order Number, Item Number, Item Quantity, Sales Tax, etc, Moshe recommends NOT stopping the test with an error. Let the entire test run, errors and all to get a baseline. You can do this with the softAssert command (something we used at Fitbit).

Make sure though that if you are doing an extensive test, only do it once. Don't duplicate tests.

Thank you so much, Moshe for speaking with us at the Ministry of Testing - Boston!


Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"
Post a Comment