Mastering test automation in software development

Test automation in software development: what are the benefits, challenges and what role does artificial intelligence play?
Advantages, challenges and the transformative role of artificial intelligence

In today’s software development, short development cycles are a prerequisite for meeting the demands of the market. Test automation is therefore essential to ensure the quality of the software in the long term. With automated tests, companies can develop faster and at the same time ensure higher software quality. As a result, savings of up to 30 and 90% respectively can be achieved in both test costs and test time. In addition, a return on investment (ROI) of up to 100% is possible within two years of test automation.

Advantages of test automation

The introduction of test automation has many advantages:

  • Savings of up to 30-50% of test costs
  • Return on investment (ROI): ROI of up to 100% within the first two years after the introduction of test automation.
  • Reduction of test time by up to 90%, especially for recurring regression tests
  • Quality assurance
  • More frequent releases: shortening release cycles from months to weeks or even days
  • Accelerated further development: through faster feedback to developers and the associated bug fixing.
  • High level of standardisation through defined, proven processes and responsibilities
  • Flexibility through short iterations and retros
  • Clear communication and status reports
  • Transparency of processes and those responsible
  • Performance measurement thanks to reports

Challenges of test automation

The challenges of test automation are manifold and require careful planning and execution. One fundamental challenge is to build up the expertise of employees so that they can effectively develop and maintain automated test cases. No less important is defining the right test cases. Here, it is often more realistic to aim for 70% coverage of functionalities rather than pushing for full coverage, which is often neither practical nor cost-effective. In addition, the adaptation and maintenance of test cases requires continuous attention in order to keep pace with changes in the software applications.

The integration of the test team into the development process and the early planning of new features into the test concept are also crucial. This includes considering the impact of new features on existing test cases, which increases complexity and requires a well-thought-out test strategy and precise test planning.

Other critical aspects are the quality and maintainability of the test data and the test artefacts themselves. Guaranteeing valid test data for every scenario and ensuring a consistent structure and utilisation of the test libraries are essential for effective test runs. High maintenance efforts,

especially the editing and customisation of test scripts, are often challenging. Artificial intelligence (AI) can offer a solution here by supporting automated processes for the maintenance and optimisation of test cases, which can improve the efficiency and effectiveness of test automation overall.

Integration Test Automation

Integration test automation

In order to meet these challenges, precise planning of the automation of tests for the development of a product is necessary. It is helpful to bundle the activities and roles in a test hub with the following steps:

1. Discovery Phase

The goals of the discovery phase are:

  • Understanding the context, challenges and needs: Only with a full understanding of the specific context of the project can customised solutions be developed that cover the actual needs.
  • Recognising and minimising risks: By proactively analysing risks negative impacts on the project can be avoided and a stable basis for development can be created.
  • Holistic illumination of the project environment: A comprehensive illumination of the project environment with regard to both technical and organisational processes ensures a comprehensive understanding of the project landscape.
  • Make the start of development as simple as possible: Clear processes, easy-to-understand instructions and a well-prepared infrastructure make it easier for everyone involved to get started.

2. Managing and planning

Issues such as the right test automation tools, definition of roles and responsibilities and the use of an appropriate test architecture must be clarified in advance.

Only then can the actual planning and control begin. The following aspects need to be considered during planning:

  • Development of automation strategies

  • Ensuring seamless integration of the tests in the build pipeline

  • Creation of a test concept

  • Specification of tests, taking into account the layer architecture (test pyramid)

The diagram shows that the costs, complexity, maintenance effort, duration/performance and fragility for GUI tests are far higher than for unit or API tests. Therefore, a sensible distribution taking into account the criteria mentioned above is absolutely essential:

Test Pyramid
  • Layered architecture makes it possible to define test-specific layers that cover different aspects of the system
  • Lowest level: Unit tests that test individual code sections and functions. By finding errors early on in this phase, problems can be rectified cost-effectively before they affect higher layers.
  • Middle level: API tests that test the interfaces between the various components. Here it is checked whether the data is sent to the server and processed correctly, which ensures the integrity of the communication paths.

Requirements for test automation tools

  • Ease of use of the tools, as this makes it easier to get started and shortens the learning curve for the test team.
  • Comprehensive log output for detailed logging to analyse the test results in order to draw conclusions about the quality of the tested system.
  • Recording of user tests to simplify the creation of test scenarios by recording user actions.
  • Recording of test scripts and test activities for the systematic and repeatable execution of software tests.
  • Recording of test execution through screenshots or videos for visual documentation of process steps.
  • Simple programming language or low-code options to make it easier for less experienced team members to create and maintain the tests, thereby increasing the productivity of the team.
  • Parameterisation to keep maintenance efforts low and achieve greater flexibility in the execution of test scripts

Roles and responsibilities

  • The test manager is responsible for the test concept. He ensures that the software meets the quality standards and fulfils all requirements.
  • The test engineer is responsible for defining the test cases and executing the test cycles as well as analysing the test reports

3. Project phase: realisation and implementation

In the project phase, the infrastructure and the tool chain are set up on the basis of the analyses and definitions carried out in the previous phases.

Piloting and stabilisation as part of a proof of concept (PoC) is also useful.

The implementation of a critical workflow (standard use case) is crucial in order to gain initial experience, avoid errors and be able to react quickly. It is equally important to adapt and create an operating manual and technical documentation.

Comprehensive training of all project members is essential to enable the test team to implement automated tests quickly. Training and know-how transfer sessions are crucial elements in enabling the test team to act quickly.

Test automation with artificial intelligence

In order to fully utilise the benefits of test automation, the use of AI is essential. AI offers numerous support approaches for carrying out test automation in a cost- and resource-efficient manner. It can support the following tasks, among others:

  • Creation of test cases (guided test case design)
  • Determination of test coverage
  • Creation & implementation of the Gherkin tests
  • Visualisation of test cases (test-based modelling)
  • Determination of standard case deviation (GUI test)
  • Analysing errors (classification)

Conclusion

Test automation is particularly important for long-term and medium-sized to large software development projects. With well thought-out structuring and planning, it offers numerous advantages: it speeds up the development process, reduces costs and significantly improves the quality of the software. However, successful test automation requires careful planning, a comprehensive test concept and the use of modern test tools and technologies.

Blue Print für your Test Automation

Easily integrate and implement test automation. How can you do this? Find out more in our e-paper!

Content:

Revolutionary development: How AI is changing software test automation

Artificial intelligence (AI) is influencing and enriching our daily working lives in many areas. Software testing is also being revolutionised by AI.

The exponential development of software also leads to an exponential increase in complexity and costs. This can be impressively observed in the development of video games. While the development costs for GTA 5 (2013) amounted to 200 million dollars, the costs for GTA 6 (2025) have already risen to over 2 billion dollars. Obviously Moore’s Law also applies here, but in terms of costs: a doubling roughly every two years!

One of the main cost drivers is quality. Software quality is largely dependent on a good test system, which is why professional manufacturers have been setting up highly automated test factories for years.

The next revolutionary step: AI-supported test methods and software

Thanks to artificial intelligence (AI), the next revolutionary step is now imminent: autonomous, AI-driven test methods and software. AI can recognise patterns in large amounts of data and automatically generate and optimise test cases from these findings, which significantly increases efficiency and accuracy. Another area of application is automatic error detection: AI systems can recognise and identify anomalies and errors that human testers can overlook. This leads to faster and more precise troubleshooting.

More than just detection: optimization and troubleshooting with AI

However, AI test software goes beyond mere error detection. It actively helps to eliminate vulnerabilities and optimises the code through direct interventions. AI-supported test automation tools can also simulate user behaviour in order to test user-friendliness and performance under realistic conditions. Machine learning allows these systems to continuously learn and improve their testing strategies, resulting in increasingly accurate and comprehensive test coverage.

Simplified creation and maintenance of test scripts

The creation and maintenance of test scripts is also made easier by the use of AI, as intelligent algorithms can automatically make adjustments when the application changes. AI-based test software also supports performance tuning and improves documentation through professional test methods.

Deeper insights through AI-supported analysis

In addition, the AI-supported analysis of test data and test results enables deeper insights into vulnerabilities, especially with regard to penetration risks. AI test methods help to visualise test cases and determine the delta of GUI tests. This enables targeted prioritisation and efficient use of resources.

An evolutionary step for software development

AI in software test automation is a logical evolutionary step and will be indispensable for professional software development in just a few years. This applies not only to large software houses, but also to small companies and software projects. AI has the wonderful characteristic that it hardly needs any economies of scale to be profitable.

The need for quality assurance

Software projects often neglect the aspect of testing. However, this is urgently required for quality assurance. AI offers numerous possibilities for this.

The future: convergence of AI-based code development and testing

A look into the future shows that AI-based code development and AI-based testing will converge, potentially reducing the number of coders required. Especially in areas where low-code or no-code methods are used, AI testing software will be indispensable. The designer of the software themselves will no longer be able to test their product and will be reliant on independent AI testing software, which should be built into the no/low-code tools.

Governance and Compliance

This development requires additional governance to ensure that the software meets a company’s general compliance rules and legal requirements, which are also growing exponentially. In addition, the independence of AI developers and AI testers must be guaranteed to avoid conflicts of interest.

Content:

The suitable integration platform for your company and your customers

Integrationsplattfo
Increasing customer demands, shorter time-to-market and higher requirements for information security and data protection are becoming ever more important. An integration platform provides the solution to many of these challenges.

Information security and data protection are key issues

Not only have customers’ expectations of their providers’ services increased, but environmental influences, which require a greater customer focus and the associated shorter time-to-market, also make it necessary for companies to react ever more flexibly to changes. In addition, at a time when information security and data protection are becoming increasingly important, it is essential to protect one’s own business processes and the data processed in them as securely as possible against unauthorised access. An integration platform provides the solution to many of these challenges.

It can effectively connect data and applications to increase efficiency, improve responsiveness and thus offer a competitive advantage. IT landscapes with complex, poorly networked systems and applications, on the other hand, often represent an obstacle in this context, as their adaptability and scalability are very low.

Integration platform: A definition

But what does an integration platform actually mean? An integration platform is a software solution that enables seamless connection and communication between different components, applications, systems and data sources. It serves as a central interface for collecting, integrating, transforming and exchanging information from different sources.

The main task of an integration platform is to overcome the heterogeneity of data formats, protocols and different technologies. It offers a comprehensive range of tools and functions to harmonise data.

Integration platforms in enterprise architecture management

Ultimately, an integration platform plays a decisive role in modern enterprise architecture management. It is the centrepiece from which all services and applications can be controlled, maintained and exchanged.

The importance of integration platforms lies primarily in the fact that they help companies to manage the complexity of their IT landscape and enable seamless integration and networking of their systems. By using an integration platform, companies can improve interoperable communication between their systems and thus exchange data seamlessly. This enables them to optimise operational processes and workflows, increase efficiency and make better business decisions based on up-to-date and consistent data.

This also makes a significant contribution to improving the quality and consistency of data. By centralising the collection, transformation and validation of data, companies can ensure that all systems have access to up-to-date and error-free data and applications and that data loss can be avoided.

Advantages of an integration platform

There are many examples of the advantages of integration platforms. Here are just a few:

  • Simplifying the integration of applications and data
  • Reduction of complexity and pre-processing of data
  • Increased transparency and visibility of data flows
  • Reduction of integration costs and time
  • Increasing the scalability of the IT landscape
  • Improving the efficiency and speed of business processes
  • Increasing the possibility of automating many business processes
  • Flexibility for rapid adaptation to changing business requirements
  • Better integration of cloud and on-premise solutions
  • Increased security through centralised control and monitoring of data exchange processes
  • Improving data quality and consistency
  • Reduction of time and costs for maintenance and development of interfaces

Choosing the right integration platform / solution

When choosing an integration platform/solution, companies should consider a number of things to ensure that it meets their requirements. Above all, the requirements and functionalities should take centre stage. Which features do the individual stakeholders need, which data formats, interfaces, transaction capability, etc. are involved? It is important to get all specialist departments on board right from the start.

The chosen solution should be flexible and scalable to ensure the easy integration of additional systems and applications. It should also be cloud-capable to further increase scalability and flexibility.

The security of company data and systems should also be a top priority. Accordingly, the platform should have sufficient security mechanisms in place to protect the data from unauthorised access and threats. Compliance requirements also play a major role here.

Last but not least, user-friendliness plays a major role for users in the company. This should always take centre stage when integrating a new solution.

Combination of different integration solutions

Often, a combination of different approaches to implementation can deliver better success than committing to one approach.

By using microservices, individual components of the solution can be scaled independently of each other and are very flexible. The combination of approaches also makes it possible to quickly drive forward the development and provision of new functions and services. In this way, the use of third-party providers offers the opportunity to fall back on proven solutions and save time and development effort.

Microservices can be developed, provided and scaled independently of each other, which enables efficient utilisation of resources. API interfaces also facilitate integration with other systems and services, both internally and externally. By distributing functionality across microservices, failures in individual components can also be isolated and rectified without affecting the entire solution.

The implementation of a solution can be both cloud-based and on-premise.

Application example: Integration along the customer life cycle

Especially for companies that offer their services and products online, an integration platform tailored to the needs of customers is a good way to improve the customer experience and thus increase their satisfaction. As a first step, it is particularly important to take a look at the customer life cycle and all of the steps required to optimise the customer experience. This is because covering all customer-related business processes with the help of a single platform solves several problems at once. On the one hand, the services and products are accessible via a “front door”, and on the other, the processes are easier to customise.

In our case, we are looking at the property universe with its various service areas.

Step 1: Integration of all external and internal stakeholders

In this case, it is important that by analysing the needs of all users and partners involved a system is created that meets everyone where they are. In the case of a property platform, both external and internal stakeholders must be taken into account, each of whom has a different view of the application.

Step 2: Automation of processes along the value chain

After analysing all of the stakeholders’ needs, it is possible to break down very precisely which service they require at each step of their customer journey. The integration platform with a front end to the customer is a best practice example of customer centricity.

Step 3: Initial situation IT infrastructure and IT systems

Companies often still struggle with data silos or disconnected applications. On the one hand, this prevents a smooth process, there is a risk of data loss and security gaps, and on the other hand, it is not possible to guarantee a satisfactory customer experience.

Step 4: Combination solution for integrating systems

The solution to this problem is obvious: with the help of microservices, applications can be replaced step by step and connected to the front end via API interfaces if a service or process needs to be customised. This significantly shortens time-to-market cycles, allowing the company to react flexibly to new challenges.

This is also in line with the principles of agility, which provides for an incremental approach and continuous adaptation of services in the interests of a high level of customer centricity and further contributes to ensuring a company’s competitiveness. In addition, the automation of many processes and the high scalability of the application make it possible to utilise the resources freed up to expand business activities, for example by entering markets in other countries and adding further services to the range, and to generate more revenue.

Enterprise architecture with an integration platform for greater customer satisfaction

The example of the real estate platform along the customer life cycle has made it very clear that it makes sense to take a closer look at your own IT landscape in order to find a better solution if necessary. It can also be valuable to take a closer look at which platform actually suits the company in order to use the technologies and developments that are best suited to its own business processes and thus possibly even play a pioneering role in terms of customer centricity on the market.

Content:

Nearshoring in Tunisia: Is it possible?

Nearshoring in Tunis

Six reservations reassessed

A lack of skilled IT staff and lower costs are only two of the reasons why many companies outsource their software development to a nearshoring partner. The choice often falls on Ukraine or Poland. There are still reservations about countries like Tunisia. Are these justified?

Many companies in Europe are now using nearshoring partners to outsource their software development or entire business processes due to the lack of skilled IT staff and high labour costs. The classic choice is Poland, Bulgaria or Ukraine. But locations such as Tunisia are also becoming increasingly important in this context. However, there are still reservations about non-European partners, which can easily be refuted, because nearshoring in Tunisia also offers many advantages.

Quality training and geographical proximity

Quality: In Tunisia, higher education is of high quality and absolutely comparable with Western European countries. 240,000 students graduate from higher education each year, of which 20,000 are engineers and scientists and 9,000 are information and communication technology graduates. Tunisia has more than 50 engineering schools that teach computer science, among other subjects. This guarantees high quality in the implementation of software projects.

Distance: Even though Tunisia is located on another continent, the time difference is a maximum of one hour in summer and a flight takes only a little more than two hours. Thus, in contrast to offshoring in countries like India, it is guaranteed that contact persons are available during European business hours to make arrangements or solve problems.

Multilingualism and stable infrastructure

Communication: Large parts of the Tunisian population speak fluent French, English is taught at school from grade 4 and there are certified as well as professional language institutions for the German language. In the technical professions, French and English can be assumed, and German and Italian are often added. The local distance can be bridged without problems thanks to digital means of communication, which have developed even further during the Corona pandemic. The good telecommunications infrastructure, in which Tunisia is a leader in the southern Mediterranean, also contributes to this.

Mentality: Without question, there are differences between the German and Tunisian mentality. However, companies like think tank Business Solutions now have decades of experience in implementing numerous projects with European partners. A German bridgehead consisting of product owners and IT consultants additionally guarantees that the cooperation with the customers runs smoothly.

Hands-on mentality and cost savings

Management: Managing a project is always challenging, especially when a hybrid, multinational team has to be managed. To ensure the smooth running of a project, an agile working model is a good choice, which has also become popular in Tunisia, especially in the development and implementation of software in companies like think tank. By having German colleagues manage the projects, it is ensured that the customer’s requirements are always in focus. The developers in Tunisia also have a “get the job done” mentality just like their colleagues in other countries and act in a goal-oriented manner.

The best of both worlds

Costs: Tunisia is also a very good alternative in terms of costs. The hourly rates for a Tunisian employee are attractive and competitive. Despite the good quality of the labour market, the average wage costs for a full-time employee, for example, are very low compared to Eastern European countries, making Tunis an attractive North African location for business process outsourcing. It should not be forgotten that with Tunisia we are in a politically stable area, whereas in the Eastern European area there have been tensions and uncertainties in recent times.

Overall, it can be said that Tunisia as a nearshoring partner is a good alternative to the classic Eastern European countries. In combination with a German bridgehead, which can act as a translator not only of culture but also of mentality if necessary, one is relying on the best of both worlds: Availability of skilled labour, cost savings and German know-how and quality.

Content:

Do you need a Blockchain?

Blockchain
Blockchain technology has the potential to profoundly change all areas of our society. As a construct of the concepts of the digital signature, proof of work or proof of stake and the consensus algorithm, it combines previously incompatible concepts:

Do you need a Blockchain?

  • Decentralisation,
  • security and
  • trust.

In order to get a better overview of the different areas of application, the categories to which most use cases can be assigned, regardless of the industry, are listed below:

Digital Identity Management: Many people have certainly come up with the idea of managing digital identities. Not least Facebook and Google, which are integrated as registration services in many online services. From the user’s point of view, this is both convenient and questionable, as it is not always obvious when which data is passed on to third parties and for what purpose. The decisive factor in this category is the purpose, namely the storage of personal data that can be validated and thus used for authentication for other services.

Market creation and digital currencies: This category refers to the creation of new markets. Usually, this is a blockchain-based market on which goods or services can be traded. All cryptocurrency applications are examples of this category. Initial Coin Offerings (ICOs) in which investor funds are collected in an initial funding phase are also examples of market development.

Origin and tokenisation: In tokenisation, a real object that represents an asset is converted into a digital asset. The value is transferred to tokens and uniquely assigned to an owner. The tracking mechanism can be used to prove the origin and ownership of an object at any time (provenance).

Meta-consensus: Meta-consensus is one of the fundamental paradigms of the blockchain, as all participants must agree on a “chain”. This use case category is about finding and reaching consensus on a specific issue without being able to manipulate the outcome of the election. Examples are parliamentary elections, referendums or the votes of shareholders or contracts between several parties.

Tracking. Tracking is about the transparent, permanent storage and traceability of information that is relevant for several organisations. A good example is use cases from supply chain management, as data on transport goods is necessary both for individual suppliers and for checking adherence to laws and guidelines (compliance).

IoT – Internet of Things: Machines that interact on the blockchain like we humans do in real life and exchange goods and services via a wallet are part of the IoT category. An example is the automatic payment of tolls or parking fees, which can be paid by the car, which has a unique ID. Smart contracts, which are executed automatically without external intervention, also belong to this category.

Intermediary trust: Due to the characteristics outlined at the beginning, the blockchain has the potential to reduce the participants in a value chain to those that are really necessary, i.e. only those that actually contribute to an increase in value. Services and goods can thus be offered much more cheaply. One example is the energy sector, where it is possible to directly connect producers and consumers thanks to the blockchain.

We don't need a Blockchain!

The use of a blockchain solution should be viewed critically if it involves the storage of large amounts of data, there are many write accesses and a real-time data set is necessary or only a few participants are involved.

Conclusion

The applications of blockchain are as diverse as our lives. Nevertheless, it is often difficult to judge when its use really makes sense. “If trust or robustness are not important, then there is nothing which a blockchain offers that can’t be done with a regular database.” Gideon Greenspan – Founder of Coin Science.

Quellen: Ulrich Gallersdörfer Masterthesis: Analysis of Use Cases of Blockchain Technology in Legal Transactions https://wwwmatthes.in.tum.de/pages/z0tgbukmqlbr/Master-s-Thesis-Ulrich-Gallersdoerfer, zuletzt geprüft am: 05.02.2020

Cathy Mulligan (April 2018) These 11 questions will help you decide if blockchain is right for your Business https://www.weforum.org/agenda/2018/04/questions-blockchain-toolkit-right-for-business, zuletzt geprüft am 05.02.2020

T. Koens & E. Poll 2018 What Blockchain Alternative Do You Need? http://tommykoens.com/wp-content/uploads/2018/09/blockchain-alternative.pdf, zuzletzt geprüft am: 05.02.2020

DHS model (~end 2017) Dylan Yaga Peter Mell Nik Roby Karen Scarfone Blockchain Technology Overview https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf , zuletzt geprüft am: 05.02.2020  

Scaling frameworks Nexus, LeSS and SAFe

agile frameworks safe less nexus
Megatrends such as digitalisation, globalisation and flexibilisation are rapidly changing our working world today.

Tabular comparison

Megatrends such as digitalisation, globalisation and flexibilisation are rapidly changing our working world today. The expectations and demands of customers are adapting to digital possibilities at ever shorter intervals. New demands are also constantly being placed on products. Teams can be scattered all over the world and still work together excellently. Everything is becoming faster, more interactive and more agile – accordingly, product development cycles are also becoming shorter and shorter.

One method that meets these requirements – today on everyone’s lips – is Scrum. However! What do you do when the product is so large and comprehensive that many teams, different departments or even the whole organisation has to work together on it? The right scaling for efficient and satisfying collaboration provides orientation and support for the teams. But: how do you decide which scalable framework is best? Which framework can be used when the processes of Scrum for 3, 4, 5, … teams are too small? The search for the most optimal approach is a big challenge for many.

To give you a rough overview of the common scalable frameworks, I have summarised an overview that highlights the differences of each framework: Nexus (Framework for Scaling Scrum), LeSS (Large-Scaled Scrum) and SAFe (Scaled Agile Framework).

Nexus

The father of the Nexus framework, Ken Schwaber, describes it as an exoskeleton that connects three to nine Scrum teams to develop a product. It is a process framework based on the agile manifesto and Scrum.

Nexus captivates through its simplicity. Scrum is scaled in its roles, events and artefacts. It focuses on cross-team dependencies and integration issues that arise when scaling across multiple teams and emphasises transparency.

LeSS

LeSS aims to impress with its simplicity (more with less) and relies on clear principles. The teams under a product owner are responsible for the complete product development and bear a great responsibility, which also includes communication towards customers and the environment. If there are more than eight teams, the system is expanded to LeSS Huge in an additional scaling phase.

SAFe

SAFe is economically oriented and has the continuous improvement of value streams in mind. With its hierarchical structure, it looks beyond the team to the programme, solution and portfolio levels as well as the overall embedding in the organisation. Roles, methods and artefacts are clearly described and support the introduction to scaled agile working.   

Agile scaling frameworks Nexus, LeSS and SAFe × This comparison is intended to provide you with an orientation to make it easier for you to take the first steps regarding the decision in which direction you want to go – Nexus, LeSS or SAFe. The advantages, disadvantages and limitations of these frameworks have deliberately not been discussed here.

However, before you can choose one of the scaling frameworks, you need to think carefully about which one fits your company culture and values. Check what your goal is, what do you want to achieve? What is the environment like and which agile methods are already used in your company?

My recommendation is to take the elements that best fit your organisation from the known frameworks and adapt an agile scaling framework.

Sources:

SAFe – https://www.scaledagileframework.com

LeSS – https://less.works/de

THE NEXUS™ GUIDE – https://www.scrum.org/resources/nexus-guide

Agile Skalierungsframeworks: Safe, Less und Nexus im Vergleich – https://t3n.de/news/agile-skalierungsframeworks-safe-less-nexus-1150190/

Das beste agile Framework – 5 Large-Scale Ansätze im Überblick – https://www.mosaiic.com/agile_framework/

Test automation

Testautomatisierung
The iterative approach in agile software development requires new approaches to testing. Test automation is necessary in order not to run into time constraints.

An indispensable part of agile development

Agile work promotes flexible, dynamic and uncomplicated work with as little bureaucracy as possible. The focus is on people and communication. Results mean more than documentation. Establishing a direct line to the customer and always reacting flexibly is more important than stubbornly sticking to a plan. Agile software development means constantly improving the end product in short iterations, together with colleagues and customers. In this article I would like to explain why automated tests are an integral part of software development. 

The importance of testing

Testing occupies an important position in software development. A high-quality product must go through different levels of testing, such as component tests, integration tests and functional tests. In Agile work, as mentioned above, the focus is on short development iterations, which also require short test iterations. In order to be able to carry out the various test stages without getting into a time crunch, it is necessary to execute various tests faster and with easy repeatability. The more complex the software, the greater the importance of test automation. Test automation alone can ensure that both test coverage and test depth are within a satisfactory range once the development reaches a certain complexity. 

The fallacy of automated tests

The pitfall of automated tests is that they can only take over the manual task part of a software tester. Behind clean and reliable tests, however, there is just as much creative intuitive thinking and clever action. Under no circumstances should test automation be seen as a rationalisation of a tester’s work, but rather as a tool for the tester that can hardly be imagined without. While he no longer has to spend hours working through new developments of his company through automated processes, he has more time for the intellectual part of software testing. He can test better and in a more concentrated way instead of getting lost in a huge amount of tests. Of course, test automation does not always make sense, such as with small transitional programmes. However, the longer-lived and more complex the software, the more costs and effort test automation saves in the long run. 

Selenium as a general-purpose tool

There are many tools for test automation. Selenium is probably one of the best known, especially in the area of websites and their user interface. Selenium offers various tools for projects of different sizes and requirements. 

Selenium as a browser plug-in

The Selenium IDE is a browser add-on that allows you to record clicks, keystrokes and movements on the website. Later, you can replay the recorded actions and thus obtain a test that can be executed as often as you like. However, since the recording is very time-consuming manually, the add-on is only available for the browsers Chrome and Firefox and there is no possibility to document the tests, the browser plug-in is only suitable for smaller projects or for beginners. 

Selenium WebDriver - When websites suddenly become self-sufficient

The Selenium WebDriver, on the other hand, acts as a programming interface for the browser, is compatible with the most common browsers and supports many different programming languages, including JavaScript, Python, Ruby, and many more. Tests can be programmed in any code editor, e.g. Visual Studio, and the browser is then addressed via the WebDriver. Each time the written test is called up, a new window opens in which the website runs itself through the test. A major advantage over the add-on is that the test can be parameterised. The test coverage can be increased much more quickly and easily. 

Cucumber, anything but a cucumber

Since this testing does not provide a clear documentation of the work done, there is a tool for various programming languages (Ruby, Java, C++, …) called Cucumber, which makes it very easy to write and read the test cases and also produces easily readable documentation when the tests are executed. In Cucumber, tests are written in the language Gherkin and then translated into the corresponding programming language. Gherkin essentially contains the commands Given, When and Then, through which the optimal functionality of the software is described by conditions (Given), executed actions (When) and desired result (Then). Since the desired behaviour of the software is directly formulated, Cucumber is a very good tool for Behaviour-Driven-Development. The documentation then contains the simple sentences of the Cucumber programming and is thereupon comprehensible for everyone. 

Selenium-Cucumber a reliable double pack

The Ruby extension Selenium-Cucumber takes over the translation of the Cucumber tests into the corresponding programming language. Instead of arbitrary sentences, as previously in Cucumber, there is now a defined set of commands that is independently “translated” into an executable test case. The writing effort on the part of Cucumber naturally becomes greater and more incomprehensible, but the programming elsewhere is omitted altogether. Through this interaction of Selenium-Cucumber it is possible to write automated test cases without in-depth programming knowledge. This way, product owners can pack the requirements for the end product itself into the test without any loss. 

Our first steps are done

The combination of Selenium WebDriver, Selenium-Cucumber and Ruby or others allows us to take the first steps towards test automation. Besides the easy writing of the tests and the good documentation in html format, the Selenium WebDriver also allows a wide test coverage in different browsers. 

What's next: test automation a must

Test automation is a must in an agile environment. The simpler the tests and the more frequently they have to be performed, the more important automation is. However, automation does not replace a tester but facilitates and improves his work, giving him more freedom for tests that cannot be automated (e.g. UX/UI tests). In the course of continuous improvement, every software company should use automated tests. This is the only way to succeed in meeting the high demands and time pressure of today’s world.

Sources: Buch: Seidl, Richard/Baumgartner, Manfred/Bucsics, Thomas (2011), Basiswissen Testautomatisierung (2. Auflage), Heidelberg, dpunkt.verlag

https://agilemanifesto.org/iso/de/manifesto.html https://de.slideshare.net/MaibornWolff/universum-der-testautomatisierung-von-sven-schirmer-maibornwolff

Content: