[JAVA] Memo der JSUG-Studiengruppe 2018 Teil 2 - Bemühungen um Arbeitsspezifikationen im Frühjahr und in der API-Ära

Einführung

Es ist die Rückseite der Packungsbeilage.

Frühlingsprogrammmodell und Arbeitsspezifikationen-Testausgabe-

Präsentationsmaterial des ersten Herrn Terashima ↓ Modell des Frühjahrsprogramms und Arbeitsspezifikationen - Testausgabe -

Fall:

  1. Das Testobjektdokument ist kompliziert und das Flaggenverwaltungsverfahren ist unklar. Bedienen Sie die DB manuell und setzen Sie ein Flag?
  2. Der Testinhalt kann mit der Testmethode nicht ermittelt werden. ↓ Setzen Sie den Namen der Testmethode auf "Geben-Wann-Dann".

Die Berichterstattung über Besprechungen ist nicht der Zweck des Testens! Die Story auf Spezifikationsebene wird als Kommentar hinterlassen, und es ist nicht erforderlich, nicht wesentliche Operationsmethoden anzugeben (auszublenden). Der Teil, der nicht mit den Spezifikationen zusammenhängt, wird auch aus dem Produktcode übertragen (Ist die Serviceklasse eine Story, die sich auf die Geschäftsabwicklung konzentriert?).

Mit dem DI-Container ist es möglich geworden, andere Teile als den Teststandpunkt mit Stub und Mock zu lösen.

Mock wird immer mehr in dem Teil eingeführt, der nicht der Teststandpunkt ist.

  1. Zustandszentrierter Test Wie er sich vor und nach dem Test geändert hat
  2. Interaktionszentrierter Test Welche Art von Interaktion wird durchgeführt?

Das durch ein Modell ersetzte Teil wird separat getestet, und die Hierarchie wird auf eine Ebene gesenkt, die nicht endgültig durch ein Modell ersetzt werden kann. Offensichtlich ist es NG, sich über die testorientierte Methode lustig zu machen!

Es kann vom E2E-Test / Szenariotest auf den Test einer Methode angewendet werden. Es ist notwendig, auf die Granularität der Spezifikationen zu achten. Es ist wichtig, die Verwendung des Testziels zu testen = die Spezifikationen zu testen.

Als Einschränkung beim Schreiben der Granularität ist das Ausdruck-XX-Flag programmatisch und weit vom Geschäft entfernt. Verwenden Sie daher den im Geschäft verwendeten Begriff.

Ich habe tatsächlich einen manuellen Test im eigenen Haus mit Give-When-Then geschrieben.

Zukunftsaussichten So testen Sie eine große Menge an Produktcode. Um die Qualität zu gewährleisten, ist auch das Refactoring teuer.

――Ich möchte verstreute Testspezifikationen zentral verwalten. ――Ich möchte ein Beispiel mit automatisierten Spock- und E2E-Tests erstellen. ―― Abgesehen von Ansätzen wie BDD und ATDD ist es eine wichtige Voraussetzung, dass der Code lesbar ist.

Vorschläge und Tools für die Entwicklung der Hypothesenüberprüfung in der API-Ära-API-Edition

↓ Präsentationsmaterial der zweiten Person, Herrn Otomori Vorschläge und Tools für die Entwicklung der Hypothesenüberprüfung in der API-Ära-API-Edition-

Traditionelle Entwicklung: Zu Beginn "Es gibt eine Überarbeitung, wenn Sie diese in der Phase des Auslassens der Prüfung oder Implementierung überprüfen. Spezifikationen und" Codeversionsverwaltung sind erforderlich

Fall 1: Entworfen für ein halbes Jahr, Proto und später für ein Jahr entwickelt. Benötigt die Zusammenarbeit mit mehreren Anbietern. Jeder Anbieter hat unterschiedliche Eigenschaften (ob es ein Designdokument gibt, ob die Quelle gelesen werden kann usw.). Es ist wichtig zu wissen, auf welcher Ebene die Person, die die API verwendet, und die Person, die sie erstellt, kommunizieren können. Entwurfsdokument, Umgebung, Quelle (Umgebung: bereitgestellt und bereit, die API zu treffen).

Wenn der Anbieter den Rückgabewert ändert, ist die Zusammenarbeit wichtig. Möglicherweise besteht eine Diskrepanz zwischen dem vom Anbieter bereitgestellten Konstruktionsdokument und der tatsächlichen Quelle.

Fall 2: Es besteht die Möglichkeit, dass eine Erkennungsdiskrepanz auftritt, da diese nicht von Angesicht zu Angesicht erklärt werden kann.

Daher Entwicklung der Hypothesenverifizierung

-Ist Ihre Anfrage richtig? -Ist die Spezifikation korrekt? -Ist das Ergebnis korrekt?

Hypothese, Bestätigung der Eingabe / Ausgabe, vorläufige Implementierung und Hauptentwicklung. Werkzeug zur Überprüfung jedes ↓.

Swagger Swagger kann verwendet werden, um die Diskrepanz in der Korngröße zu beheben. Der Ersteller kann die API nur durch Schreiben von yml mit dem Swagger-Editor aufrufen. Der Benutzer muss nicht auf die Quelle schauen. Da es jedoch nicht mit der Quelle verknüpft ist, muss yml auch geändert werden, wenn die Quelle geändert wird.

SpringFox Spezifikationen können aus dem Quellcode generiert werden. Erkennungsdiskrepanzen werden reduziert, da die Spezifikationen denjenigen angezeigt werden können, die die API verwenden. Ob Sie es tatsächlich treffen können oder nicht, ist eine andere Sache.

Spring REST Docs Wenn der Test ausgeführt wird, wird das Dokument des erfolgreichen Tests an AsciiDoc ausgegeben. Gradle kann auch für HTML und PDF verwendet werden, wodurch die Lücke zwischen dem Dokument und der Quelle beseitigt wird. Das Dokument des fehlgeschlagenen Tests wird nicht ausgegeben und ist daher kein Ersatz für das Entwurfsdokument.

Schließlich ist das Gleichgewicht zwischen Geschwindigkeit und Korngröße wichtig.

Recommended Posts

Memo der JSUG-Studiengruppe 2018 Teil 2 - Bemühungen um Arbeitsspezifikationen im Frühjahr und in der API-Ära
[Memo] JSUG Study Group 2019 Teil 7 Nutzung des Frühlings in Bizreach
[Memo] JSUG-Studiengruppe 2020 Teil 1 Frühling x Kotlin
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
JSUG Study Group 2018 Teil 4 Spring 5 & Spring Boot 2 praktische Eindrücke
Bis zur Verwendung von Spring Data und JPA Part 2
Bis zur Verwendung von Spring Data und JPA Part 1
Betrachten wir die Bedeutung von "Stream" und "Collect" in der Stream-API von Java.
Die Frühjahrsvalidierung war in der Reihenfolge von Form und BindingResult wichtig
Stellen Sie die Anzahl der Sekunden für den schnellen Vor- und Rücklauf in ExoPlayer ein
Ein Teil der Klasse, der von der zu testenden Klasse im JMockit Mock-Methodenmemo aufgerufen wurde