The first thing that comes to mind when you think about website testing is a glitch or broken design element. However, testing is a crucial phase that should be applied to each and every stage of web development process.
Make no mistake, despite the fact that testing is generally described as a separate stage between Development and Maintenance, it’s carried within each phase of project’s lifecycle.
For this purpose QA Engineers (testers) are introduced to each project team and conduct testing at all stages of development, starting from the mockup design, and ending with maintenance upon website delivery.
Just like any other software products website testing runs through the same methods and quality assurance rules.
The complexity of software products makes it vital to select the proper and comprehensive testing approach. The choice of the right testing model may directly affect the speed of project delivery and efficiency of testing itself.
Waterfall model. The classical model of test process organization that involves Test phase after Development is done. Waterfall model is used only when the requirements to the project are clear and fixed.
This model is generally criticized because when the testing is started it is hard to go back and make changes. Therefore time spent on the project delivery may greatly increase because of many iterations of redevelopment on each stage.
V-model. In order to eliminate those iterations and time loses the V-model is applied instead.
V-model is an improved version of Waterfall model. Test coverage begins with a requirements stage and is applied to each subsequent development phase. It represents the importance of verification and validation and demonstrates relationship between the development and testing phases.
Software Testing Levels
Since the development life cycle is a complex process, there is a need to identify areas of testing (testing levels). This structuring is used to prevent overlapping while testing and not to miss a testing area.
There are four levels of software testing:
- Unit – the test is performed by coders while creating separate software modules.
- System – the test is performed upon completing the whole module functionality.
- Integration – this level of testing covers interaction between modules.
- Acceptance – this part of testing is made to ensure that all client’s and technology requirements are met.
Things to Test
There are two main kinds of software testing depending on the objectives they pursue: functional and nonfunctional.
Functional Testing refers to tests that examine external system behavior.
- Security and access control Testing. Refers to any malware vulnerabilities and possible backdoors that can be present in the system. This kind of testing examines all the possibilities to Bypass Authorization and to login without a password.
- Functional Testing is performed to confirm the functionality of system and its compliance with client’s requirements.
- Interoperability Testing examines the compatibility of the system and its integrability with other software products and technologies.
- Performance Testing includes stress, load, stability and volume testing. It is executed to determine the speed of system response under the workload.
- Usability Testing includes content checking and localization verification, ease of use and responsiveness.
- Compliance Testing refers to compliance with legal and IT standards (e.g. your website needs to be PCI-DSS certified in order to process users’ credit card information).
- Installation Testing ensures system operation after installation or execution of deployment plan.
- Configuration Testing. This kind of testing is made in order to examine performance and stability of the system while it’s working with different platforms, computers, drivers, etc. Configuration testing includes cross-browser (Chrome, Firefox, Safari etc.) and cross-platform testing (iOS & Android devices, Windows, OS X, etc).
Methods of Testing
- Manual Testing – this method requires a QA Engineer to go through all features and functions the website offers to an end user.
- Automated Testing – involves special software that can execute repetitive or specific actions. Automated tools help to determine the website performance or if certain parts of the code function properly.
Documentation – any graphic and text information that describes the product: test logs, incident reports, manuals, etc.
NOTE: It is crucial to log all results and report on all test. Inconsistent recording can lead to errors and missed areas that may contain bugs and malfunctions.
Prior proceeding to testing, QA team should be provided with the documentation that contains each of the client’s requirements, layouts and user behavior rules (use cases). QA engineers should report all bug, test results and conduct test of project’s functionality of project’s functionality.
The tools we, in GBKSOFT, use to keep records:
Technologies and tools involved in testing
There are more than hundred different software testing tools. Each of them is used for a specific kind of testing (e.g. load testing, graphic user interface testing, security testing, unit testing).
However, it is required to have programming skills and knowledge in programming languages in order to run tools for automated testing.
Testing tools and technologies involved in Quality Assurance:
- Selenium Webdriver
As you may notice, Quality Assurance is a complex and challenging process that should be implemented along all the way of software development. In order to succeed and deliver product in time (and for a reasonable price), QA Engineers should be a part of the project’s team from the very beginning. This is the approach we apply in GBKSOFT which grants us the privilege to be full-stack software development company.