Software Quality Management at VCC LiveReading Time: 4 minutes
To maintain the quality of our software, it is crucial to have an outstanding software testing process. Find out below how we test our products as part of our quality management system.
Every so often we receive feature requests from our clients, that they want to see in our products. Although the majority of these requests are simple, turning a single idea into a fully functional part of the application can be a challenge. This is because with every new feature added, our software gets more and more complex, and even a modest change to the code can have a serious impact on other functions. So, whenever we implement a new feature, we also need to repeatedly test every other function in the application.
What is the purpose of software testing?
The purpose of software testing is always the same: to help us find any bugs (errors and defects) in the application before our clients do. Of course, no new feature is ever released without being tested. Whenever a bug is reported by our clients, it is automatically included in our test cases so that the same issue does not occur again. If a major change to the code causes issues at a later stage of the development, we can always do a rollback to the previous version. Our developers and software testers work closely together, so the majority of errors are fixed before they get any further down the development cycle. We also use the TDD concept (also known as Test-driven Development), meaning that we initially create test units, and do the coding afterwards.
What are testing methodologies?
Testing methodologies are approaches to testing that embrace every important aspect of the software testing cycle, from the testing of each individual module to the integration of functions into the full ecosystem. Our development process consists of very short iteration cycles, with only a relatively small amount of code written at one time, allowing our testers to continuously test pieces of the software. We carry out:
- Automated tests
- Manual tests
- Alpha and beta tests
So far, more than 2,600 unit, 2,500 functional and 600 integration tests, along with 690,000 asserts and an average 63 releases per month, have made sure that everything in VCC Live’s application is working flawlessly. We are committed to providing a standardized quality of excellence at all times, while evolving VCC Live’s capabilities to continually deliver the best product yet to our clients.
What is automated testing and what tests do we run?
Automated software testing –as its name suggests– is a testing process whereby software tools execute tests on a software application. It significantly increases the effectiveness and speed of testing as it requires less human input than manual testing. Automated tests can also be run repeatedly, and literally at anytime. Our automated tests include the following:
- Unit testing: our automated tools test specific units in the code, to help us to find out if individual functions work properly.
- Integration testing: automated tools test multiple components in the application and examine how the different features function together. They also examine how other systems interact with our application, and see if data flow is uninterrupted.
- Functional testing: used to examine if a single function is working as expected or not. If multiple tests of this kind fail, it means that the software does not meet functional requirements and will not function correctly.
- Stress testing (also known as stability testing): where we test how the software behaves under extreme circumstances by examining if our application can continuously work well within a given period, or can run without interruptions under heavy duress.
What is manual software testing?
During manual testing, our testing team manually test the software to find bugs. Our testers utilise most of our products’ features to ensure they are behaving correctly. We run the following type of manual tests:
- Smoke tests: performed after a software build. Their purpose is to examine if critical functionalities of the program are working as expected. If the main functions of the application are broken, the software testers stop testing the application until the critical bugs are fixed by the developers.
- Usability tests: these tests allow our testing team to examine how easily and intuitively users can learn to use the software, in another words how usable the product is. They also test the generic user interface, to make sure that control elements on the interface, such as buttons, text fields, captions and lists work properly and perform the tasks they are expected to do (Complex functional test). In addition, during this test the testers also examine GUI-related concerns, including clarity, expected behaviour of certain interactions (clicking on a button brings up a loading animation), and overall look and feel, that otherwise could not be checked by automated tools.
What is alpha and beta testing?
Alpha and beta tests are also called user acceptance testings. These take place in the final stages of the testing process.
- Alpha testing: our software is tested by non-engineers and testers (usually our customer services team). They report found issues to the developers, who fix the bugs before the product moves on to the software for beta testing.
- Beta testing: performed by end users, its goal being to test the usability of our products in real-life production environments. Once this phase has ended, developers fix any found defects before final release.