Testing Progressive
Web Apps
(or how to achieve api-ness)
Hello / Cześć
I am
Elizabeth Fiennes
(she/her/sí/they)
@ElizaFx
The backstory
Falling app store downloads
A PWA MPV
No information on testing
(Gulp…)
What is a PWA?
Native?
Web?
Thick client?
Hybrid?
Under construction!
UI (PWA WebApp Frontend)Local app / file cache
Application/content
for rendering
Server Cache (URLs)Service worker
Datasource Integrated applications
The layers
manifest
Accessible
Secure
Service workers responsive
Properties
General testing advice
(ask ALL the questions!)
Browser or device
Local storage
Configuration
Display modes
The Manifest
Launch URL
icons
devices and
supported UI
sizes
look and
feel
Manifest properties
Testing the manifest
APP NAME / SHORT NAME - Across devices
ICONS - Across devices
LAUNCH URL - Across devices and browsers
INSTALLATION - Options. Cached data and limits // across devices
LOOK AND FEEL - Background. Colour scheme // across devices and browsers
ENTRY & EXIT - URLs // across browsers
Create your
own
Easily done with PWA Starter from:
https://pwastarter.love2dev.com
They are
secure
The Security “bit”
Internet facing Service workers can only be deployed over HTTPS
This is good
Deploy them locally without a TLS certificate for testing (http)
! Repeat testing over HTTPS
Testing for Security
Injecting Data
Progressive web apps are safe to use during interactions.
Looking at Data
They have
service
Workers
Notifications
Offline
content
notification
s
installation
Hardware
integration
SW properties
Testing the service workers
Installs - interrupt them!
Caching - verify static assets
Activations / Updates - attempt an update with SW in use
States - Ensure memory saving termination
DevTools - Fetch new dynamic content!
They are
Progressive
19
Accessibility
Testing Accessibility
Using Audit tools such as
Lighthouse, Axe or WAVE.
Running an accessibility audit using
the WCAG 2.1 criteria.
Progressive web apps have a far reach and are accessible to all.
Lighthouse can be run from the dev tools or as part of the CI to
provide an accessibility score.
Axe can be run from the browser to identify
specific issues and highlight them on the screen.
WAVE run from the browser highlights issues on screen and can
be used to strip the CSS from a site.
They are
Responsive
Sizing
Reordering
Element
Relocation
Page
Orientation
Responsiveness
Testing PWA responsiveness
Lighthouse - Mobile rating
Page transitions - Still usable?
Element changes - Distinguishable?
Testing
Device-ively
Testing for
devices
Android -
WebAPK file
generated
iOS -
Light version of Safari
is installed
desktop - No
tabs or address
bar. Full window
width.
Touchscreen
- Invisible
elements
not
selectable
Device-iveness
Testing for specific devices
App launcher and settings
Application Pack Updates
Intent filters
Hardware permissions
Murder most foul!
Everything
isn’t (exactly)
awesome
Awesome
Not awesome
Keep your users in mind
> 3G - Ukraine and Guyana
- Estimated 4bn people offline
- Not every browser is supported
Point in time truth:
https://jakearchibald.github.io/isserviceworkerready/index.html#moar
Any questions?
Special TY to the awesome SlidesCarnival people who created this slides template
Ask them

Testing PWAs - TestWarez 2019