Manual and automated testing
We do both manual and automated testing across our web, app, and other software projects. There are certain advantages and disadvantages to both approaches, depending on the project’s requirements.
Types of testing
- Smoke test - A smoke test is a quick and dirty test to see if a piece of software is still working. It's a way to test the most basic functions of the software.
- Integration test - An integration test is a test that checks the functionality and compliance of two or more parts or modules in the same software (or website). It is also called an integration test when testing an integration between two independent systems, e.g., exchange of email addresses between a website and MailChimp.
- Load test - A load test is a test that checks the performance of a piece of software or website by simulating the number of simultaneous users it would be expected to have.
- Regression test - A regression test is a test that checks the software to see if any new changes have broken existing features or introduced errors.
- Security test - A security test is a test that checks the software to see if any new changes have created a security vulnerability. (Note: We are limited to checking CMS security patches.)
- Speed test - A speed test is a test that checks a site’s loading performance.
- Internationalization and localization test - These tests make sure that the software is adaptable to meet the requirements of specific countries or regions (e.g., language, culture, date formats, etc.) For example, we test if the following are correctly implemented for international sites:
- Correct rendering of characters
- Government numbers (CVR, Social Security Number, etc.)
- Telephone, zip code, and address format
- Currency symbols
- Numbers (grouping of digits, decimal separators, etc.)
- Date and time formats
- User acceptance test - A user acceptance test is a test that checks the software against the user's requirements.
The majority of the testing we do for projects is manual testing. Its main advantage is flexibility — a QA tester can start testing as soon as development is done without having to prepare scripts or use specialized tools.
However, it does come with some drawbacks, such as a higher risk of human errors (compared to automated testing) and being more time-consuming.
Manual testing works best for projects where there are a lot of UI changes (for example, it will be difficult and expensive to maintain an automated testing script for a webpage where the UI constantly changes, because the testing script must be updated each time you make a change), or for projects that need human feedback — such as usability testing or evaluating if a site or app complies with UX best practices.
Automated testing is done by creating and executing scripts that test the functions of a system by comparing the actual outcome with the predicted or intended outcome. While it can be costly to set up, it greatly reduces the time needed to test a project once the script is in place.
Since automated testing does not rely on human intervention, it can be configured to automatically run anytime you wish. This makes it ideal for testing essential functionalities, like contact forms, calculations, or ecommerce sites on a daily basis to make sure everything is working. If there is a problem, the system will automatically notify you, e.g., by sending an email listing the test(s) that failed.
With automated testing, you can make deployments (changes to your site) several times a day if you want without worrying about testing time, because the testing is done automatically by a computer.
Note that if your daily deployments include UI changes, some manual testing will be needed because a computer still can’t do reliable UI testing on its own. Think of automated testing as an additional tool in the testing toolbox.