Automated Web Testing: Quality as Service for Rock-Solid Deployment
Everyone knows how grave it is to test the web application or service you develop or your Plone website on the regular basis, and, with luck, everyone actually does perform it. But do they really manage? Even a simple program, written in Python can behave in many different ways, some of which occur solely in a rather uncommon (and hard to stage) scenario. Let's imagine every possible behavior was tested and the web application was validated upon initial release, what about the second release, or even a "slight" modification in the source code? The feature being added or modified will surely be tested, but what about other, seemingly unrelated at first, features that could have been irrevocably broken by that minor improvement? And the answer is …. automated testing.
The principle of automated testing is that there is a program that runs the web application, written in Python or Plone website feeding it the proper input, and checking the output against the expected. Once the automated test suite is written, minimum human intervention is needed, neither to run the web application, nor to analyse the result; the automated test suite does it all, and shows (say, by a message and a results file) which tests succeeded and which failed.
Let's switch for a moment to some example - testing a form. Forms are an integral part of any Plone website and and an excellent means to assess your business. They are used to engage users, provide support, sell products and services, etc. A badly designed form, or one that was poorly tested can and will frustrate your visitors into leaving with a bitter after image of your company. And you definitely don’t want such reaction from, say, payment or order form. To prevent this from ever happening, once the visual check of the form is done, your form must undergo a battery of automated tests to check if everything works as it should under any circumstances and inputs.
WHY PERFORM AUTOMATED TESTING?
AUTOMATED WEB TESTING SAVES TIME AND MONEY
Even though we should be willing to invest time and effort into writing automated test scripts, there's no reason to invest more than we have to. Actually, because test automation in Python might seem at first like such a luxury, and people are therefore not willing to write automated test scripts, creating automated test suites for application testing should be considered as an investment and a risk prevention tool. And just after a few months into a project, the costs of building automated test scripts are paid off not just by detecting hidden defects, but also by the fact that test scripts, once written, save a lot of testing time. It's so much easier to execute an already-written automated test script than to perform manually even a tiny bit of corresponding test cases, especially if they require a complicated set-up. Since web application testing will actually have to be performed a few times before the program finally works, money spent on creating an automated test suite (assuming that it's been written along with the code, or even earlier) can be repaid before the application is even released. Also, a set of automated test scripts tends to have a longer lifespan than the source code. A program can be redesigned -- even re-written in another language -- and, assuming that it was meant to perform the same as before, the test suite will work just as well. Once the up-front costs of writing automated test scripts have been recouped, the pay-offs can pleasantly surprise you.
AUTOMATED WEB TESTING EXPANDS TESTING COVERAGE
Automated web testing increases the depth and the scope of tests to help improve web application quality. Long and more complex application testing that is often avoided during manual testing can be performed with no human intervention. Automated web test scripts, written in Python each time can easily run thousands of different complex test cases providing unimaginable coverage that could take years with manual testing. Testers freed from repetitive manual tests have more time to create new automated test scripts and deal with more complex features.
Furthermore, even the largest QA team cannot simulate even a hundred users simultaneously browsing the website. Automated testing with Python as major scripting language can recreate tens, hundreds or thousands of viewers interacting with network or web services and applications, thus boosting the quality of application.
WEB TEST AUTOMATION WITH QUINTAGROUP
Quintagroup Quality Engineers are well-versed in both commercial and open source test automation tools. We strongly believe that Python web application development is incomplete without thorough automated testing to ensure a sound platform for future reliability. That is why we implement data and keyword-driven automated test scripts, written in Python using robust Robot framework, Selenium and OpenCV.
Test Automation Tools
Robot Framework is a next generation test automation framework that leverages the power of open and extensible architecture, designed for acceptance testing and acceptance test-driven development (ATDD). For maximum coverage our team uses it together with SeleniumLibrary —a Robot Framework test library that uses the Selenium web testing tool internally.
To provide cross-browser testing, Selenium is used with
- Selenium IDE for scripting quick bug reproduction tests and automated exploratory testing
Selenium WebDriver to create complex regression automation test scripts, while driving the browser natively as a user would
OpenCV is widely used for real-time graphics processing. It allows performing a complete check of all the graphical content, including videos, motion graphics, 3D, etc.
py.test is a full-featured testing tool written in Python. This framework can be used for both simple unit and complex functional testing.
With Xaut Python library we are able to simulate keyboard and mouse use, as well as manipulate windows.
Test Automation Services
Our team of Python developers and Quality engineers armed with exceptionally powerful automation tools and more than 10 years of experience can provide you with star-quality performance of your web applications and services by selecting:
- Automation testing of web applications
- Automated testing framework development
- Automated cross-browser testing
- Automation testing of web services
- Automated acceptance testing to ensure the correct performance
- GUI Test Automation
So, invest now to gain all the benefits that come with automated web testing for Plone or contact us to learn more on how we can help you promote and secure your business.