Project Management

Agile Development and Testing

In today’s agile environment, development is getting faster and faster. There are more and more deployments in less and less time. This means that more and more tests have to be carried out in less and less time. If you only have manual test cases in your project, the test effort in the agile project is no longer necessary.
 

Test automation to reduce manual effort

Test automation can be a solution here. The manual test effort in the project can be greatly reduced through automated regression tests. There are different approaches to test automation. There are different tools and procedures depending on the working method in the project and the test type.
 

 
Common types of automation: load and performance tests, unit tests, functional tests, and UI tests
The most common types of automation are, for example, load and performance tests (LuP), unit tests, functional tests, or interface tests. In test automation, the test steps that were previously carried out manually are carried out by an automatic machine. Let’s assume you want to test a login mask. So your manual test case would have steps like “Open website”, “Enter login data”, “Click on login”. The login is probably a precondition for many test cases. The manual tester now carries out the same three steps over and over again. If you convert this test case into an automated test case, the tester can save himself these steps. The machine performs the login with the specified test data and validates the actual results. Once written, you can now reuse your login script in other test cases. In this way, you increase the degree of modularization and reduce the manual time required.
 

The Cohn test pyramid

Depending on how your project is developed, which technical complexity the tests have, and which knowledge the testers have, there are different possibilities of automation.
Maybe you’ve seen Cohn’s test pyramid before. In principle, the earlier errors are found and corrected in the project, the lower the error costs.


On this basis, the test pyramid shows which tests make sense and how many. At the bottom of the pyramid, are the unit tests. You need many of these. They are easy to automate and can be written directly by the developer. Unit tests often have an execution time of a few milliseconds.

The next level is the component and integration tests. Here, too, automation makes sense and is easy to implement. A high degree of automation can usually also be achieved here. Also, component tests have usually a short execution time. They can be integrated directly into the build process without unnecessarily prolonging it.
 

 
At the top of the pyramid are the UI tests. A common mistake is that only UI tests are automated, or too much effort is put into automation here. Development can get complex, and execution usually takes a while. The test pyramid should help us understand this. For each software feature. It is important to carefully consider for each software feature whether the one-time effort of automation offers a significant advantage over manual testing.
 

Automated test case creation

Of course, not only the actual test execution can be automated. There are also tools and methods to simplify the creation of test cases. There are, for example, ALM tools with which test cases can be generated directly from requirements, or approaches such as BDD, in which the requirement is easily transferred directly to an automated test case using keywords.
For good, reusable, automated test cases, you will most likely need test data.
 

Test data generation

Depending on the industry you are in, the data must be anonymized. Often you cannot simply perform a DB export and test it with real data.
There are also various tools on the market for generating test data that either anonymize your data, enrich real data with synthetic data, or generate completely synthetic data according to a given pattern. Most classic automation tools create the test documentation directly during execution. This can often be evaluated directly in the tool.

A test report is often created after each run, with which you can see at first sight how many and which of your tests “went green”, i.e. were successful.
Security is also an aspect of testing that should not be underestimated. Security features should be taken into account when planning tests, especially for web applications.
 

 

Test approach as an example: Behavior Driven Development

An interesting approach to bring test management closer to development is Behavior Driven Development (BDD).
Testing is already included in the creation of the requirements. Test cases can be derived directly from the requirements. Languages like Gherkin specialize in BDD and make test automation very easy.

No deep knowledge of programming languages required
The automation is set up using keywords such as GIVEN, WHEN, THEN. This means that deep knowledge of programming languages is no longer required for test automation. Other automation tools depend on the type of test you want. Unit tests are usually written by the developer. There are frameworks such as JUnit to automate this.
There are tools for API tests, such as SoapUi. REST APIs can also be tested with SoapUi.

Tools to automate tests
There are a number of tools available for automation. Is known, for example, Selenium, Ranorex, or HP UFT.
Programming skills are mandatory for Selenium, but it is free of charge. Ranorex, for example, offers a Capture & Replay functionality with which you can easily record your UI tests. The system behind Last can be tested free of charge with Apache’s JMeter.
If the budget is not a problem, LoadRunner or NeoLoad are also available for LuP tests.

Continuous integration tools
If you use tools for continuous integration, such as Jenkins, some tests can be carried out directly during deployment. If you want to test an app or mobile application, you can do this with a few tools. Ranorex, for example, has integrated an option for mobile testing. Tools like Appium build on other tools or frameworks (in this case Selenium) to extend them for mobile testing.
 

The development is heading towards Continuous Deployment

Test automation is an important step towards continuous deployment. In most cases, test automation is an important addition to manual testing. It can completely replace manual testing, but not yet.
mcqMCQPractice competitive and technical Multiple Choice Questions and Answers (MCQs) with simple and logical explanations to prepare for tests and interviews.Read More

Leave a Reply

Your email address will not be published. Required fields are marked *