4. Testing

In this project phase, it is important to check the system as a whole to make sure everything works as intended. Verification of individual development tasks should be already part of the developing phase.

Regression testing

When testing the implementation, you should:

  • There are plenty of handful tools you can use for troubleshooting, for example debug etc.
  • Perform all tests in a production-like environment.

Non-functional testing

When running performance, load, and capacity tests, there are several things you need to consider:

  • What are the results of your tests and what is the goal?
  • Depending on the type of tests you would like to perform and what area are you testing (front-end, back-end, environment), select the most suitable testing tool (e.g. loadimpact.com, Visual Studio, Web Capacity Analysis Tool).
  • Perform one change at a time and measure the impact of the change when addressing performance issues.
  • Focus on the optimizations or areas that can bring you the most significant results.
    • The results of running tests on your local environment won't reflect how the website performs under heavy load on a hosting server. There are multiple variables involved, which may influence the performance, such as network connectivity between web and database server, hardware configuration of the server or file system options (e.g. blob storage) to name a few.
  • Keep the testing environment consistent so that you can compare test results directly.

Functional testing

When testing functionality of your web site, following are some important things to consider:

  • Automated browser testing - SeleniumHQ
  • Unit testing
  • Integration testing
  • Validate website code and accessibility for devices and browsers you are planning to support.
    • Check configuration, user accounts with empty passwords etc. on application level (KInspector).
    • Use 3rd party tools and services to perform penetration testing from the outside (e.g. Burp Suite).
  • Scenario: Avoid site outages

  • Scenario: Use case testing

  • Scenario: Security vulnerabilities