Testing Techniques on Web

Testing is one of the important phases in a software development cycle. A product released without bugs will make your users trust in using your products. However, in reality, it is not easy to detect all bugs in a software. And there are no products released without bugs / errors, even big software developed by famous companies. Nothing is perfect!!!

Today, I would like to share with you some basic testing methods on a web site or a web application.

At first, we should find out what a software testing is and why we must do testing.

What is Software testing?

  • Firstly, To check the web application / web site for potential bugs before go-live. 
  • Secondly, in order to verify if actual results match the expected results or requirement / specification.
  • To help identify errors, gaps, missing requirements
  • Software testing done by manually or automated tools

Why test ?

In the past, there were many software failures happened & caused accidents including finance & human.

  • Bugs causes monetary & human loss
  • Bugs are expensive and dangerous
  • High quality product
  • Save costs

So, testing is very important.
Keep in mind: 7 testing principles

Now, we discover 6 testing methods for a web application / web site:

1. Functional testing

  • To check if the functionalities of the product match the specification
  • Activities / checklist:
    • UI workflow testing :
      • to verify GUI meets the specification
      • Design elements: layouts, colors, fonts, font-size, labels, text box, text formatting, buttons, links, icons etc
      • Different screen resolutions on smartphone, desktop
    • Business workflow testing
    • Hyper links
    • Input field validation
    • Cookie testing
    • HTML / CSS validation
  • Tools: Selenium, QTP, Browserstack, usernap

2. Usability testing

  • To test user experience
  • Activities / Checklist:
    • Navigation testing: 
      • Easy understandable & easy to use
      • Buttons, Titles, shapes, fields are convenient for usage
      • ..
    • Content testing:
      • Grammar / spelling ?
      • Color / font size optimized ?
      • Clear, structured, logically, informative ?
    • Analyzing the usability of one website to another (peer or competitors website).
    • Evaluating the usability (pre-post launch project): get awareness of new design to make sure that it is easy to use and brings positive user experience
  • Tools: User Zoom, Reflector, Loop
  • Audience: end user, customer, tester 

3. Compatibility testing

  • To test if the web design is compatible with different browsers/ devices
  • Activities / Checklist:
    • Browser compatibility 
      • to test if web site / web app work on different browsers well.
      • popular browser with some latest versions: Chrome, Firefox, Edge, Safari
    • Device compatibility
      • to test if the web site / web application is responsive & work on devices of different shapes and size
      • popular devices (iOS, Android): Samsung, iPhone 5,6,7 or tablets
  • Tools
    • NetMechanic

4. Interface testing

  • To test if the communication between different software systems is correct.
  • Activities / Checklist:
    • Application:
      • verify all methods (GET, PUT, etc) used in the API or web services
      • verify the server & client side error handling with server code including 4xx & 5xx: a user-friendly message ?
      • ..
    • Web server:
      • to verify handling all requests without any services denied
    • Database server
      • in order to verify if the queries sent to database give expected results
      • to check response time of queries
      • In order to check data retrieved from the application is displayed accurately on the web application
      • to check any errors displayed while executing queries
  • Tools: Postman, SoapUI

5. Performance testing

  • To verify the application response time under various load conditions
  • Activities / Checklist:
    • Load testing: 
      • measuring the response time of business critical transactions at different connection speeds
      • to measure capacity of database & server
    • Stress testing: 
      • In order to test the application beyond the expected maximum loads & to determine the threshold limit of the system.
    • Soak testing (endurance testing):
      • to determine the system parameters  under continuous expected load (memory used to detect memory leaks)
      • to discover the system’s performance under sustained use
    • Spike testing:
      • to measure the application performance when there is a increase in the volume of users accessing it. 
      • in order to determine if the system will be able to sustain the work load
    • Make sure that techniques used such as gzip compression, cache on client/server side to reduce the load time
  • Tools: JMeter, LoadRunner

6. Security testing

  • To make sure that the application doesn’t allow unauthorized access to secure resources.
  • To protect data & To ensure that the sensitive information is safe & won’t cause the damage to users
  • Activities / Checklist
    • SQL injection
    • Authorization
    • Authentication
    • URL manipulation
    • Cross site scripting
    • Vulnerability scanning
  • Tools
    • Babel Enterprise