Testen zwischen Code und UI?

Alles Rund um SAP®.
6 Beiträge Seite 1 von 1
6 Beiträge Seite 1 von 1

Testen zwischen Code und UI?

Beitrag von rumpumpel (ForumUser / 1 / 0 / 0 ) » 26. Nov 2019 07:57

Hi

Was ist state-of-the-art zum Regression-Testen von ABAP Systemen (Customizations und auch Konfiguration)?
Was gibt es zwischen den wenig verbreiteten Code Level Unit-Tests (ABAP Unit) und den pflegeintensiven Frontend-Tests?
Was hat sich bewährt?

Danke für Hinweise & Links.

Gruss,
rumpumpel


Re: Testen zwischen Code und UI?

Beitrag von jocoder (ForumUser / 96 / 0 / 21 ) » 26. Nov 2019 12:55

Regressionstests lassen sich meines Wissens nur in 3 Kategorien unterteilen:
1. Unit-Tests (zielt auf eine Codekomponente ab),
2. Integrationstests (inkludiert alle Schichten UI<->Anwendungslogik<->Persistenzschicht einer Anwendung)
3. Akzeptanztest: wird vom Nutzer bzw. Auftraggeber durchgeführt.

Integrationstests, die die klassische UI mit einschließen, als auch Unit-Tests
können mit ECATT teilweise automatisiert werden (https://help.sap.com/viewer/c6663103e6 ... 2189c.html. Habe ich auch meinen Buch Qualitätsmanagement in der ABAP-Entwicklung unter SAP beschrieben.
In ECATT können mit dem Kommando SETTAB unterschiedliche Customizing-Einträge simuliert werden.

Zwischen Unit-Tests und Integrationstests kenne ich keine weitere Kategorie und es mir auch schwer vorstellbar, welche Testfälle dadurch abgedeckt werden sollten, die nicht durch Unit-Tests oder Integrationstests abzudecken wären.
Autor von Qualitätsmanagement in der ABAP-Entwicklung,
ABAP, Java, JavaScript, GitHub

Re: Testen zwischen Code und UI?

Beitrag von SaskuAc (Specialist / 306 / 34 / 39 ) » 26. Nov 2019 15:33

Es kommt wirklich drauf an, was du machen möchtest.
Änderungen im Backend? ABAP Unit Tests. Sie müssen richtig designed werden, dann kann man damit auch richtige integrationstests machen.

Änderungen am Frontend? Bewährt ist noch ecatt, allerdings sind sachen wie CBTA auf dem Vormarsch. CBTA ist wie Ecatt, nur mächtiger ( weil nicht nur dynpro, sondern auch web dynpro, BSPs und UI5 oberflächen getestet werden können ).

Zum automatisieren der regressionstests gibt es aber wenig - einfaches - im SAP Standard. Gibt ein paar Add-Ons von 3rd Party Herstellern, oder dergleichen. Es wird wohl immer noch am meisten auf das manuelle testen im regressionsfall vertraut.

Wenn man viel zeit und Sowohl ABAP Unit als auch CBTA / ECatt ordentlich implementiert kann man mal das Testmanagement des Solution Managers mitsamt der solution documentation aufbauen. Wenn man das nämlich ordentlich macht, kann man bei änderungen von einem element alle abhängigkeiten direkt mit CBTA und ABAP Unit testen.
Aber wie schon gesagt, das bedarf einen riesigen initialen Pflegeaufwand. Später wird dann auch noch der Pflegeaufwand recht hoch sein, wenn man alle abhängigkeiten immer weiter pflegen muss... daher weiß ich nicht ob sich das lohnt.

Re: Testen zwischen Code und UI?

Beitrag von tm987456 (ForumUser / 29 / 16 / 8 ) » 27. Nov 2019 08:43

SaskuAc hat geschrieben:
26. Nov 2019 15:33
ABAP Unit Tests. Sie müssen richtig designed werden, dann kann man damit auch richtige integrationstests machen.
Nach Roy Osherove (The Art of Unit Testing), schliesen sich unit tests und integration tests gegenseitig aus. Hier seine beiden Definitionen:

A unit test is an automated piece of code that invokes the unit of work being tested, and then checks some assumptions about a single end result of that unit. A unit test is almost always written using a unit testing framework. It can be written easily and runs quickly. It's consistent in its results as long as production code hasn't changed.

Integration testing is testing a unit of work without having full control over all of it and using one or more of its real dependencies, such as time, network, database, threads, random number generators, and so on.

Zum Thema: https://www.worksoft.com/de/ und oder ECATT sollten das Thema abdecken, wenn es automatisiert sein soll. Ob das noch "state-of-the-art" ist? Keine Ahnung.

Re: Testen zwischen Code und UI?

Beitrag von SaskuAc (Specialist / 306 / 34 / 39 ) » 27. Nov 2019 10:45

Natürlich schließen sich, einzeln betrachtet, Unit Tests und Integrationstests gegenseitig aus. Nur kann man davon ausgehen, das die Integration funktioniert, wenn alle Unit tests ( vorausgesetzt, alles wird zu 100% getestet ) erfolgreich sind.

Wenn du ein programm hast, welches aus 10 Klassen besteht, und alle Klassen ordentlich getestet werden ( heißt also auch wirklich viele input möglichkeiten, ordentliche test doubles, etc. ) dann wird die integration dessen auch klappen. Denn Klasse 2 wird Klasse 3 nix falsches übergeben, weil das die Unit Tests abgefangen hätten, ebenso wüsste Klasse 3 wie es mit so einem Input umzugehen hätte, weil die Unit tests diese Art von Input auch getestet haben.

Wie in meinem vorhergehenden post, geht das eben nur mit richtigem Design und ordentlich Aufwand.

Re: Testen zwischen Code und UI?

Beitrag von deejey (Specialist / 273 / 75 / 20 ) » 27. Nov 2019 13:05

Den angeblichen gegenseitigen Ausschluss kann ich nicht ernst nehmen, das hat was mit der Abnahme und Verantwortung zu tun, dass muss der Fachbereich machen, Unit-Tests hin oder her. Die müssen das Testverfahren und die Ergebnisse im Detail dokumentieren, mit Screenshots von Listen, erzeugten Belegen usw., wenn alles ok ist gilt es als abgenommen.

Seite 1 von 1