Absolutely all projects need testing, because without tests it is impossible to understand whether the product has critical errors, whether it meets the requirements, whether the services provided are secure, etc.
Various types of testing are used for checks. One of them is regression testing, in which you need to check whether old defects have returned when new functionality is added. For such and a number of other checks, automated testing is better suited.
Why do we need test automation? Key tasks
Automation implies the simplification of physical labor. Processes that are performed by a person are replaced by processes that are performed by a program or equipment. This approach has an important goal in software development — increasing productivity, reducing task execution time, and significantly improving the quality of the product.
Test Automation Tools
test automation tools are various programs that are used to analyze, create and execute automated tests. Depending on the requirements for which the test will be passed, the choice of a particular tool is determined. When choosing a tool, you need to analyze and look for a more suitable one, since one selected tool is not able to provide a comprehensive check. In most cases, QA engineers prefer these automated testing tools:
- SELENIUM;
- JUnit;
- TestNG;
- JENKINS.
Test Automation Principles
Automation of test processes is usually presented as an ordinary pyramid, namely: the base is unit testing involves checking individual parts or modules of the product. Above is integration testing — at this level, various parts of the product or modules are combined into large groups or combined into one whole. An order of magnitude higher is acceptance testing, which can show the suitability of a product for use. Next is the user interface, which can be carried out both manually and automatically. At the very top, in the form of a cloud, there is manual testing, which usually takes place either as beta testing or on its own.
Automating web application testing from scratch involves going through the entire pyramid from start to finish. But this is quite rare, since web application testing automation does not imply the development of large projects for more than 1500 hours in order to have time to apply and further support all processes.
Thus, automated testing of sites from scratch can only be suitable for large unique projects with a sufficient budget, otherwise it will not bring sufficient profit.
Tools for test automation
Leading companies that develop automated testing tools such as HP, IBM, Borland, AutomatedQA provide a large selection of products for various purposes, which can be viewed at www .stijit.com. These are ready-made solutions (already written auto-tests) that can be used to implement the project and achieve results in a faster way. The question of speed is only in price.
Pros and cons of test automation
Among the advantages can be identified:
- speed of execution (for large projects it is faster than with manual verification);
- low cost (with reusable use cheaper than manual);
- versatility (checking in hard-to-reach places);
- cyclicality (a clearly set goal is being fulfilled — what was programmed for);
- indefatigability (work at night, start at the appointed time).
Of the shortcomings:
- development (a lot of time is spent on writing and debugging tests);
- support and creation costs — development and modification of auto-tests is more expensive when the project is quite complex and is updated frequently;
- coverage (auto-tests cannot fully cover the visual display of the GUI);
- monotony — tests always work the same way — this is not always bad, but it allows you to skip an error that a person can notice;
- skipping minor flaws;
- checks for which auto-tests are not configured do not cover the entire project — you can miss minor errors.
Despite the pros and cons in the general situation, with the right approach and having the right resources, you can achieve a result close to the ideal.
QA/QC testing
Today, the concepts of qa testing and qc are often confused, but everything is quite simple: testing is part of qc, and in turn qc is part of qa. QC is compliance control for software development (before a project is created). QA — compliance and correctness of the process development processes (during the creation of the project). Testing — checking the health of the project (after creation).