Close

Geautomatiseerd testen van software

There is a difference between creating software that works and software that works well. To ensure that software falls into the latter category, developers generally prefer benchmark testing.

This methodology stands out among the different types of software testing to identify where a project stands relative to rival solutions and which aspects need improvement.

This article will explain how benchmark testing achieves that, how it helps ensure software applications meet performance expectations, and which best practices to consider when implementing the technique.


Wat is geautomatiseerd testen?


What is automated testing?

Geautomatiseerd testen is de toepassing van softwaretools om een door mensen aangestuurd handmatig proces voor het beoordelen en valideren van een softwareproduct te automatiseren. De meeste moderne agile en DevOps-softwareprojecten omvatten nu vanaf het begin geautomatiseerde tests. Maar om de waarde van geautomatiseerd testen volledig te begrijpen, helpt het om te begrijpen hoe het leven was voordat dit testen op grote schaal werd toegepast.

Types of benchmark software testing

Toen handmatig testen de norm was, was het gebruikelijk dat softwarebedrijven een voltijds QA-team in dienst hadden. Dit team ontwikkelde een verzameling 'testplannen' of stapsgewijze checklists die bevestigen dat een kenmerk van een softwareproject zich gedraagt zoals verwacht. Het QA-team voerde deze checklists vervolgens telkens handmatig uit wanneer er een nieuwe update of wijziging in het softwareproject werd doorgevoerd, en stuurde de resultaten van de testplannen vervolgens terug aan het technische team voor beoordeling en eventuele verdere ontwikkeling om problemen op te lossen.

Dit proces was traag, duur en foutgevoelig. Geautomatiseerd testen levert enorme voordelen op voor de efficiëntie van het team en de ROI van de QA-teams.

Geautomatiseerd testen legt de eigendomsverantwoordelijkheid in handen van het technische team. De testplannen worden ontwikkeld in combinatie met de reguliere ontwikkeling van functies in de roadmap en worden vervolgens automatisch uitgevoerd met behulp van tools voor continue integratie van software. Geautomatiseerd testen bevordert de omvang van het lean QA-team en stelt het QA-team in staat om zich te richten op gevoeligere functies.


Developers can consider a range of benchmarks for measuring software performance during development, depending on the functionality they are most interested in perfecting. Let’s look at the four most common areas of benchmark testing:

Performance benchmarks

Performance benchmark testing measures the speed and efficiency of a software application under typical usage scenarios. By simulating real-world scenarios and user interactions, developers can gather valuable data on response times, transaction processing speeds, and resource utilization (CPU, memory, disk I/O). This information helps pinpoint areas where code optimization or hardware upgrades might be necessary to eradicate performance issues.

Load benchmarks

Load benchmarks assess how the software performs under different user loads. By simulating various concurrent users, developers can identify performance bottlenecks that may emerge when the application is at maximum capacity. This is crucial for applications that expect high traffic or are subject to seasonal peaks in usage. Analyzing metrics like response times, error rates, and throughput under different load conditions helps ensure the software can handle the expected user demand.

Oplossing bekijken

Software bouwen en gebruiken met Open DevOps

Gerelateerd materiaal

Geautomatiseerd testen in DevOps

Why is testing automation important to continuous delivery?

Bij continue levering (CD) draait alles om het zo snel mogelijk leveren van nieuwe codereleases aan klanten. Geautomatiseerde tests zijn van cruciaal belang om dat doel te bereiken. Er is geen manier om de levering aan gebruikers te automatiseren als er een handmatige, tijdrovende stap is in het leveringsproces.

CD maakt deel uit van een grotere implementatiepipeline. CD is een opvolger van en ook afhankelijk van continue integratie (CI). CI is volledig verantwoordelijk voor het uitvoeren van geautomatiseerde tests op nieuwe codewijzigingen en om te controleren of deze wijzigingen bestaande functies niet onderbreken of nieuwe bugs introduceren. CD wordt geactiveerd zodra de continue integratiestap het geautomatiseerde testplan heeft doorstaan.

Deze relatie tussen geautomatiseerd testen, CI en CD levert veel voordelen op voor een snel softwareteam. Geautomatiseerd testen garandeert kwaliteit in elke ontwikkelingsfase door ervoor te zorgen dat nieuwe commits geen bugs veroorzaken, zodat de software te allen tijde klaar is voor implementatie.

Scalability benchmarks

While load benchmarking tests the software's behavior under specific conditions, scalability benchmarks evaluate the ability to transition between those conditions. This could involve increasing the number of users, data volume, or transaction volume. All businesses aim to grow, and governments must prepare their platforms for mass adoption. Still, outside those realms, many other applications with high growth potential exist - such as multi-user online games, social networks, and IOT applications.

Welke soorten softwaretests moeten eerst geautomatiseerd worden?


1. End-to-end-tests

De meest waardevolle tests om uit te voeren zijn ongetwijfeld end-to-end-tests (E2E). E2E-tests simuleren een ervaring op gebruikersniveau in de volledige stack van een softwareproduct. E2E-testplannen omvatten over het algemeen story's op gebruikersniveau, zoals: 'een gebruiker kan inloggen', 'een gebruiker kan een storting doen', 'de gebruiker kan de e-mailinstellingen wijzigen'. Deze tests zijn zeer waardevol om uit te voeren, omdat ze garanderen dat echte gebruikers een probleemloze ervaring hebben, zelfs als er nieuwe commits worden gepusht.

E2E-testtools leggen acties van gebruikers vast en spelen ze opnieuw af, zodat E2E-testplannen opnames worden van belangrijke stromen van gebruikerservaringen. Als een softwareproduct geen enkele vorm van geautomatiseerd testen omvat, krijgt het de meeste waarde door E2E-tests van de meest kritieke bedrijfsstromen uit te voeren. E2E-tests kunnen vooraf duur zijn om de gebruikersstroomvolgorde vast te leggen. Als het softwareproduct geen snelle dagelijkse releases uitbrengt, kan het voordeliger zijn om dit handmatig te laten uitvoeren door een menselijk team met de E2E-testplannen.

Welke soorten softwaretests moeten handmatig worden uitgevoerd?


Het is een goed discussiepunt of alle tests die geautomatiseerd kunnen worden, ook geautomatiseerd moeten worden. Het betekent een enorme stijging in productiviteit en bespaart medewerkers tijd. Dat gezegd hebbende, zijn er momenten waarop het rendement van de ontwikkeling van een geautomatiseerde testsuite niet de moeite waard is ten opzichte van het uitvoeren van een handmatige test.

1. Verkennende testen

Geautomatiseerde tests zijn gescript en volgen een reeks stappen om gedrag te valideren. Verkennende tests zijn willekeuriger en proberen ongescripte volgordes te vinden om bugs of onverwacht gedrag te vinden. Hoewel er softwaretools zijn om een suite voor verkennende softwaretests op te zetten, zijn deze nog niet volledig ontwikkeld en worden nog niet op grote schaal toegepast. Het kan veel efficiënter zijn om een handmatige QA-tester toe te wijzen en menselijke creativiteit te gebruiken om te ontdekken hoe je een softwareproduct kunt ontplooien.

2. Visuele regressietests

Een visuele regressie vindt plaats wanneer er een visuele ontwerpfout wordt geïntroduceerd in de gebruikersinterface van de software. Dit kunnen verkeerd geplaatste UI-elementen, een verkeerd lettertype, verkeerde kleuren of meer zijn. Net als bij verkennend testen zijn er hulpmiddelen beschikbaar om geautomatiseerde tests te schrijven om deze regressies vast te leggen. Deze tools maken screenshots van verschillende versies van een softwareproduct en gebruiken vervolgens OCR (optische tekstherkenning) om ze te vergelijken met de verwachte resultaten. Het ontwikkelen van deze tests is duur en de tools worden niet algemeen ingezet. Het kan veel effectiever zijn om een persoon iets te laten bekijken om te kijken of er visuele problemen zijn.

3. Een kader voor testautomatisering bouwen voor je DevOps-team

Er is geen allesomvattende oplossing voor geautomatiseerd testen. Bij het plannen van een geautomatiseerde testoplossing voor je team zijn er een paar belangrijke overwegingen die je moet maken.

Geautomatiseerd testen onderdeel van je CD-pipeline maken


Geautomatiseerd testen is een standaardwerkwijze voor moderne softwareontwikkeling. De beste teams en bedrijven gebruiken geautomatiseerde tests. CI/CD is afhankelijk van geautomatiseerde tests en is van groot belang om de beste teams te helpen betrouwbare en robuuste software aan hun klanten te leveren.

Bovendien biedt Open DevOps van Atlassian een open toolchain-platform waarmee je een CD-gebaseerde ontwikkelingspipeline kunt bouwen met je favoriete tools. Ontdek hoe Atlassian en tools van derden testen kunnen integreren in je workflow met onze DevOps-testtutorials.

Jira darkmode backlog view screenshot.

Jira Backlog: Use the backlog to plan and prioritize benchmark testing activities alongside other development tasks.

Try Jira’s Backlog Feature

Jira darkmode overview view screenshot.

Jira Reports: Use Jira’s out-of-the-box reports to help teams track project progress, visualize trends, and predict future performance. These reports can also be used to communicate results to stakeholders.

Use free project report template

By integrating benchmark testing into Jira, teams can ensure that performance optimization is an integral part of the development process, leading to better software quality.

Common challenges in benchmark software testing


The above list of best practices highlights the importance of exercising caution when setting up and managing a benchmark testing program.  Here are some common pitfalls of benchmark software testing and how to deal with them:

  • Resource Limitations: Benchmark testing can be resource-intensive, requiring significant hardware and software resources. One benefit of using Jira is that it has built-in resource management software that helps teams free up and allocate the necessary resources for testing.
  • Maintaining Test Data: Creating and managing realistic test data can be time-consuming and challenging. Developers can use Test Data Management (TDM) tools to generate, mask, and manage test data. These tools can extract subsets of data from production databases, use masking to protect data privacy, or create synthetic data that mimics the statistical properties of the original datasets.   
  • Variability in Test Environments: Aligning the test environment with the production environment can be complex, and minor differences can lead to inaccurate results. Once again, Jira offers a solution. Creating a test environment management system in Jira helps developers track and manage test environments, ensuring consistency and reducing variability.

Integrate benchmark software testing in Jira for better software development


Beyond using Jira for specific tasks like resource management and test environment management, the platform has several features that can be integrated into the benchmark testing workflow. Here are some areas where Jira integration can help streamline the entire process:

  • Tracking Performance Trends: Jira’s Issues and Custom Fields functionalities allow teams to flag and register performance-related bugs, improvements, and tasks. These are basic requirements for monitoring performance metrics over time, identifying areas for improvement, tracking the resolution of anomalies, and measuring the impact of optimizations.
  • Managing Benchmarking Activities: In Jira, teams can create Agile workflow plans and Agile software development boards to prioritize and transition between specific phases of the benchmark testing process.
  • Effective Collaboration: Facilitate communication and collaboration among developers, testers, and stakeholders regarding performance issues and improvements. A key aspect of this functionality is Jira’s scope for generating custom reports to visualize performance data, track progress, and communicate findings. In parallel, the Issues feature links performance testing notifications to related development tasks, bugs, or user stories. Also, the Attachments feature leverages centralized access to include performance test results, reports, and analysis documents with relevant issues.
  • Backlog: Jira’s backlog structure is worth reiterating since it facilitates task tagging and prioritization within benchmark testing. By creating user stories specifically for performance tests, teams can leverage the backlog's features for detailed planning, scheduling sprints, and tracking progress. This is particularly useful for teams that like to work iteratively because they can plan all tasks in the backlog and visualize the project’s scope.

By integrating free benchmark software testing into Jira, development teams can foster a culture of performance optimization, leading to higher-quality software, improved user satisfaction, and a more efficient development process. 

Get Jira Free


Deel dit artikel

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Toelichting DevOps

DevOps-community

Afbeelding van kaart

Gratis aan de slag

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up