Software-Tests

Why software testing is as important as software development

Tech // Lilli Ahner-Wetzel // Sep 23, 2018
Illus 01 mach learn horizontal 1232px 2x

Software tests are an important component and success factor of software development. If test management is carried out correctly, important software errors can be avoided in advance with the help of testing and the high quality of the software can be ensured.

Können Software-Tests Leben retten?

Wenn man sich Meldungen von spektakulären Rückrufen von Autokonzernen wie Ford, Nissan und GM in Erinnerung ruft, kann man diese Frage durchaus mit ja beantworten.

Aber auch wenn kein Leben auf dem Spiel steht, können Fehler in der Softwareentwicklung hohe Verluste verursachen: Unmittelbar, indem wie bei Starbucks die Preise nicht berechnet wurden, oder mittelbar wenn ein Feature nicht hält, was es verspricht und der enttäuschte Kunde deswegen dem Unternehmen irgendwann den Rücken kehrt.

So ist es kein Wunder, dass in Projekten zur Softwareentwicklung heute immer das Testing mit berücksichtigt wird.

Ziel ist, die Software auf folgende Kriterien zu überprüfen um eine hohe Softwarequalität zu sichern:

  • Korrektheit
  • Vollständigkeit
  • Anwenderfreundlichkeit (Usability)

CAN SOFTWARE TESTING SAVE LIVES?

If you recall reports of spectacular recalls from car companies such as Ford, Nissan and GM, the answer to this question is definitely yes.

But even when no life is at stake, errors in software development can cause high losses: directly, by not charging prices, as is the case with Starbucks, or indirectly, when a feature does not deliver what it promises and the disappointed customer eventually turns his back on the company.

Therefore, it is no surprise that testing is always taken into account in software development projects today.

The goal is to check the software for the following criteria to ensure its high quality:

  • Correctness
  • Completeness
  • User-friendliness (usability)

Methods of software testing

In order to proceed correctly here, it is important that no isolated solutions are tested, but that an overview of all software releases affecting the target group is maintained and a sequence of four steps is observed:

Methoden

Um hier richtig vorzugehen ist es wichtig, dass keine Insellösungen getestet werden, sondern der Überblick über möglichst alle die Zielgruppe betreffenden Software-Releases behalten und eine Abfolge von vier Schritten beachtet wird.

ENVIRONMENT MANAGEMENT

The first step is thorough preparation.

Tallence AG tests in the areas of telecommunications products, member models, and tourism, among others. For this, customer profiles, number ranges, and email addresses must be specifically made available for testing purposes. What sounds simple is a challenge for many companies, but at the very least it requires a certain amount of time.

Yet here the motto applies “By failing to prepare, you are preparing to fail” applies.

Umgebungsmanagement

Zunächst geht es um die gründliche Vorbereitung.

Die Tallence AG testet unter anderem im Umfeld von Telekommunikations-Produkten, Mitgliedermodellen und Touristik. Dafür müssen Kundenprofile, Nummernkreise und eMail-Adressen speziell für Testzwecke zur Verfügung gestellt werden. Was sich einfach anhört, ist für viele Unternehmen eine Herausforderung, zumindest aber ein gewisser zeitlicher Aufwand.

Aber hier gilt das englische Motto: By failing to prepare, you are preparing to fail.

TEST MANAGEMENT (PREPARATION, PLANNING, DESIGN)

This is followed by test management, where test objectives and resulting test cases are defined. It is also important to discuss the time (and thus financial) scope with the software development project managers at this point at the latest.

What type of tests (component test, system test, integration test, E2E test) are necessary and what scope is planned for them must be determined here.

Test-Management (Vorbereitung, Planung, Entwurf)

Danach kommt das Test-Management, bei dem vor allem die Test-Ziele und daraus resultierenden Test-Fälle festgelegt werden. Wichtig ist, auch den zeitlichen (und damit finanziellen) Umfang spätestens an dieser Stelle mit den Projektleitern der Software-Entwicklung zu besprechen.

Hier muss festgelegt werden, welche Art von Tests (Komponententest, Systemtest, Integrationstest, E2E-Test) nötig sind und welcher Umfang dafür eingeplant wird.

TEST EXECUTION – AUTOMATED AND MANUAL

Afterwards it goes to “real” testing. Here we distinguish between automated and manual testing.

In automated testing, for example, robots can be used to imitate the operation of a touch screen, or human user behaviour can be tested by using emulators and sequence scripts.

However, when it comes to newer fields such as error-free speech recognition, it is important that “real” people speak to the machine to test the software and train the algorithms at a young stage.

Whether automated or manual, it is important that the test cases cover the defined requirements. This is where prioritisation coordinated with the software development and the business side proves to be useful.

The goal is to be able to test in the areas of

  • Installation
  • Function
  • Application
  • Maintenance

to achieve the highest possible test coverage.

Test-Durchführung – automatisiert und manuell

Anschließend geht es ins „echte“ Testing. Hier unterscheiden wir grundsätzlich zwischen automatisiertem und manuellem Testing.

Beim automatisierten Testing kann beispielsweise mit Hilfe von Robotern die Bedienung eines Touchscreen imitiert oder auch durch den Einsatz von Emulatoren und Ablaufskripten das menschliche Nutzungsverhalten im Wesentlichen getestet werden.

Wenn es jedoch um neuere Felder wie die fehlerlose Spracherkennung geht, ist es wichtig, dass „echte“ Menschen mit der Maschine sprechen um die Software zu testen und die Algorithmen in einem jungen Stadium zu trainieren.

Ob automatisiert oder manuell, wichtig ist, dass die Test-Fälle die definierten Anforderungen abdecken. Hier erweist sich eine mit der Softwareentwicklung und der Business-Seite abgestimmte Priorisierung als sinnvoll.

Ziel ist, in den Bereichen von

  • Installation
  • Funktion
  • Anwendung
  • Wartung

eine möglichst hohe Testabdeckung zu erreichen.

Bug Fixing / Fehlerbehebung

Schließlich geht es darum, die Testergebnisse zum Bug Fixing weiterzugeben. Wir übertragen unsere Testergebnisse üblicherweise direkt an ein Jira-basiertes Ticketing-System.

Dabei gibt der Tester bereits erste Informationen aus dem Test mit:

  • Was wurde getan?
  • Was wurde erwartet?
  • Was ist das tatsächliche Ergebnis?
  • Wie lautet die erste Einschätzung (z.B. kritisch oder zunächst vernachlässigbar)?

BUG FIXING / BUG FIX

After all, it’s about passing on the test results for bug fixing. We usually transfer our test results directly to a Jira-based ticketing system.

In doing so, the tester already provides initial information from the test:

  • What was done?
  • What was expected?
  • What is the actual result?
  • What is the initial assessment (e.g. critical or initially negligible)?

Testing at Tallence AG

Testing at Tallence AG

Seit fünf Jahren betreut Terence als Senior Consultant bei der Tallence AG die wachsenden Testingaufgaben. Gefragt nach den Fähigkeiten, die ein erfolgreicher Software-Tester mitbringen muss, zögert er nicht lange: Gründlichkeit, Geduld, Technikaffinität sowie eine Portion Kreativität sind unerlässlich. Nur so ist es möglich, auch größere Zusammenhänge im Blick zu behalten und sich in den Kunden als letztendlichen Nutzer hineinzuversetzen.

Als Tallence AG haben wir bereits in mehr als 100 Testprojekten das Ergebnis für unsere Kunden und den Endnutzern optimiert und gesichert. Unsere Tester sind ISTQB-zertifiziert und werden höchsten Anforderungen gerecht.

Gerne besprechen wir mit Euch die Potenziale eures Geschäftes. Sprecht uns an.

Außerdem sind wir stets auf der Suche nach neuen Talenten und bieten u.a. spannende Jobs für angehende und erfahrene Software Tester.

For five years now, Terence has been working as a Senior Consultant at Tallence AG, where he is responsible for the growing testing tasks. When asked about the skills that a successful software tester must have, he doesn’t hesitate for long: thoroughness, patience, an affinity for technology, and a portion of creativity are essential. Only in this way is it possible to keep an eye on larger contexts and to put oneself in the customer’s shoes as the ultimate user.

As Tallence AG, we have already optimised and secured the results for our customers and end users in more than 100 test projects. Our testers are ISTQB-certified and meet the highest standards.

We would be happy to discuss the potential of your business with you. Please do not hesitate to contact us.

We are also always looking for new talent and offer exciting jobs for prospective and experienced software testers.