We’re now living in a time where users expect as much functionality,
reliability and flexibility from Web apps as desktop programs. All our
data is slowly but surely moving into the cloud, and businesses are
looking to the Web for software to easily implement and deploy across
the board – whether it’s accounting, CRM or inventory management. That
puts a lot of pressure on developers to deliver rock-solid Web apps that
users can genuinely depend on for work and play.
That’s why it’s so important to thoroughly test your Web app before
launch. Presenting a quality app that doesn’t break, works efficiently
and delights users naturally builds a foundation of trust between you
and your customers, and they’ll be happy to use it more often and even
refer it to peers. Plus, you’ll have far fewer customer support issues
to deal with, leading to savings on costs and manpower.
Let’s take a look at how we can test our web apps to ensure that we’re on track for a successful opening day.
What should you test?
Whether your app helps users edit photos, send invoices, connect with
friends or track social influence, you’ll generally need to look at
four broad areas while testing your app:
Functionality testing
Users expect apps to function accurately, quickly and consistently.
That means you have to kick the tires on everything that helps a user
achieve a result of some sort. Some common functional elements that
require thorough testing include:
Forms: everything from feedback surveys to creating
new to-dos, to subscribing to a newsletter. Check that submissions work
correctly and are properly connected to your database, and that all
fields accept input as necessary.
File manipulation and calculations: image and
document uploads, editing and computation functionality and correct
output. Ensure that you try as many scenarios as you can think of in
which users might try your app, and accommodate them as far as possible.
Also, look at how efficient your app is at computing and displaying
results, to allow for a smooth user experience.
Search: if your app allows users to search through
content, files or documentation, ensure that your search engine
comprehensively indexes this information, updates itself regularly and
is quick to look up and display relevant results.
Media components: test for smooth and seamless audio
and video playback, animations and interactive media (like games and
graphics tools). These components should function as expected and not
break or slow down the rest of the app while loading or running.
Scripts and libraries: ensure that your scripts
(say, for image display or Ajax page loads) are compatible with all the
various browsers your audience may use to access your app, and measure
their load times to help optimize performance. If your scripts are only
compatible with certain browsers, make sure they degrade gracefully on
others so that all users get the best possible experience of your app.
Other elements you should check for complete functionality in,
include notification systems, user profiles, and administration
dashboards.
User interface and usability testing
Not only should your Web app run like a well-oiled machine, but it
should also provide a quality front-end experience for all your users.
To achieve this, you’ll need to consider all the visual and textual
elements that your users encounter, and test them to ensure they are
displayed correctly and efficiently. What should you keep your eye on?
Navigation: all links to and from your homepage should be prominent and pointed to the right destination pages.
Accessibility: ensure, as far as possible, that your
app is easy to use even for those with disabilities or impairments of
vision or motor functions. The
W3C‘s
Web Content Accessibility Guidelines should help you identify and approach ways to make your app more universally user-friendly.
Cross browser testing: users will likely access your
site from numerous combinations of browsers and operating systems, and
your app may not display the same way across all of them. Be sure to
test as many of these combinations as possible to ensure that your app
works as intended, for as wide a user base as possible.
Error messages and warnings: your app is bound to
break at some point, even if it’s not your fault. Make sure that your
app is descriptive and helpful when users encounter an issue such as a
404 page or an unsuccessful upload.
Help and documentation: not all users will be
equally comfortable using your app; some may need assistance the first
few times, while others might experience an issue even though they’re
familiar with the product. Run through your app to check that
documentation and/or support channels are easily found and accessible
from any module or page.
Layouts: test your app to make sure it displays correctly and consistently in as many browsers and viewport sizes as possible.
You’ll also want to go over all animations, interactions (such as
drag-and-drop features and modal windows), fonts and glyphs (especially
web fonts) and of course, front-end performance (page render speeds, and
image and script load times) while you’re at it.
Security testing
Most Web apps capture and store data from users, including their
personal details, billing information and work/personal files — and
these users trust you to keep that data secure. Your app should:
- Keep private data private
- Insist on authentication before granting access to data, and limit/allow access data as necessary
- Ensure that data integrity isn’t compromised.
Hackers can target your app at any time and from anywhere, so it’s a
good idea to familiarize yourself with their methods and the kinds of
vulnerabilities they look for. The most common attacks launched on web
sites and apps include:
Cross-site scripting: when a website is tricked into accepting malicious code, which it spreads to visitors)
SQL injection: when a hacker, through a user input
vulnerability, runs an SQL command on the app’s database, leading to
damage or theft of user data. These generally occur due to the improper
neutralization of special elements used in SQL commands or OS commands.
DDoS (Distributed Denial of Service) attacks: when
an app is rendered unavailable to users, usually by flooding the target
server with requests so that it slows to a crawl or becomes
unresponsive.
Be sure to test for common programming errors that could expose your
app to such attacks. Some examples of these errors include missing
authentication checks, using hard-coded credentials which hackers can
find in source code, leaving sensitive data unencrypted and not locking
down web server directory access.
You can test for the above and more, with the help of white-hat
security experts or any of a number of web tools designed for automated
security probes and tests.
Load testing
Users will expect your app to run as fast as the day they first tried
it, whether you’ve got 10 customers or 10,000. Plus, you might
experience spikes in traffic at certain times of the day, month or year,
or when your promo went viral or you were featured in a prominent
publication.
Test your app and its server environment to ensure that your product
works well regardless of how many users are logged in (within reason, of
course). Most quality Web hosts offer solutions that can scale up to
handle additional traffic in real-time, so be sure to look into that
when shopping around for a host.