As the name suggests, PWA or Progressive Web Applications are Web Applications… But better. PWA are web applications that aim to provide an app-like experience to the users and have all the modern web capabilities all in one place. This technology provides all the app like functionalities directly from your browser and saves you from the pain of searching, downloading, and updating as in case of native apps.
So, What all is to be tested in a Progressive Web Application? While testing for a Progressive Web Application, you need to test for these given points:
1. Site is served over HTTPS: Safety is one of the major concerns in a Progressive Web Application, hence you need to make sure that your web application is served over HTTPS.
How to test? You can use Lighthouse by Google Developers, jitbit, seositecheckup, digicert,ssl shopper, ssl labs,etc to test if your website is served over HTTPS or not.
2. Web pages are responsive: Make sure that your web application shows a responsive behaviour across all mobile and desktop devices.
How to test? You can use LambdaTest’s responsive feature to test for your web app’s responsiveness.
3. Offline Loading: All your web pages or at least some of the web pages must work even when your app is offline. You need to make sure that your web app responds with a 200 when it is offline.
How to test? Again, since Google is massively pushing PWA ecosystem, they have some of the best tools for testing PWA apps. For example Lighthouse. Alternative is Wiremock.
3. Cross Browser Compatibility: You need to test your web app for cross browser compatibility to ensure that your web app gives a seamless user experience across all browsers.
How to test? You can use LambdaTest to test for cross browser compatibility testing.
4. Metadata for ‘Add to Homescreen’: You need to test if the web app provides a metadata for ‘Add to Homescreen’.
How to test? You can use Lighthouse to test for metadata for ‘Add to Homescreen’.
5. Page transitions should be smooth and shouldn’t feel like that they block on the network: Transitions are a key to perceived performance hence they shouldn’t feel snappy as you move around, even on slow internet connection.
How to test? This should be done manually on a slow network. When you click on any button or link it should immediately respond either by transitioning immediately to the nest screen and while waiting showing a placeholder loading screen or by a loading indicator till the app waits for the response.
6. Each page must have a URL:
Every page on you web app must have a URL and all the URLs must be unique.
How to test? Test it by checking that every page is linkable by a URL and it is unique to be shared on social media or other platforms. The URLs can also be opened directly in new browsers.
Content should be easily shareable even through full screen mode and it should form cards for all the social media platforms.
How to test?
Test manually by sharing content from full screen mode. Test for cards can be done as:Facebook: Debug the URL by entering the post to be shared and verifying if cards has been generated or not. Test it here. Twitter: Check if the type of card for your content by is added to the given HTML’s HEAD of the page:1
<meta name="twitter:card" content="summary" />
8. Availability of Home - schema.org Metadata wherever needed: Your webapp should be able to create a rich card if applicable. It helps to improve the appearance of your website by different search engines.
How to test?
You can use Google’s Structured data to ensure image, description, title, etc are available or not.
9. Push Notifications: If push notifications are applicable for your web app they should not be overly aggressive.
How to test? Test the push notifications opt-in flow. There should be a clear instruction stating what the site wants permission for and why the user should enable the push notifications. For a detailed overview visit the original source - Testing A Progressive Web Application With LambdaTest
I hope it worked out for you.