Wie nennen Sie die Testsuite-Entwickler, die vor dem Einchecken ausgeführt werden? [geschlossen]

8

Ich arbeite an einem Projekt, bei dem wir einem vorhandenen Projekt automatisierte Tests hinzufügen. Wir beginnen mit einer zentralen Komponente und richten sowohl Komponententests auf Code-Modulebene als auch Tests ein, die für die gesamte Komponente ausgeführt werden, wenn auch in der Entwicklerumgebung. Diese Testsuite muss vor dem Einchecken des Codes bestanden werden und wird von einem kontinuierlichen Integrationssystem in jedem Entwicklungszweig ausgeführt.

Wie sollen wir das nennen? Im Moment nennen wir es "Dev Unit Tests", aber die pedantische Seite von mir sagt, dass das nicht ganz richtig ist, weil es mehr als Unit Tests enthält. Unsere Vision ist es, dass diese Suite im Laufe der Zeit um vollständige Produktakzeptanztests erweitert wird.

Irgendwelche Eingaben hier? Oder sollten wir aufhören, über Namen zu streiten und Tests schreiben?

Aktualisieren

Vielen Dank für die gute Diskussion! Ich denke, die Schlussfolgerung, zu der ich komme, ist, dass es nicht wirklich eine "gemeinsame" Definition gibt - jedes Projekt / Team hat Namen, die für dieses Projekt abhängig von den Technologien (Java, C #, Ruby usw.) am sinnvollsten sind. und verwendete Methoden (Old-Skool-Wasserfall, Scrum, XP usw.).

dpassage
quelle
+1 Da Muster wertvoll waren, um gemeinsame Formulierungen für Konzepte zu definieren , ist eine gute Formulierung für XxxxxCeckins eine gute Idee. Vielleicht hat die Community auch eine Idee für eine gute Formulierung für das Einchecken von Release Candidate , die durchgeführt werden muss, wenn Sie einen neuen Release Candidate erstellen möchten. Diese Tests enthalten auch Langzeittests , die mit jedem üblichen Entwickler Xxxxcheckin nicht praktikabel sind.
k3b

Antworten:

10

Sie werden in MSFT TFS als "Gated Check-Ins" bezeichnet. http://blogs.msdn.com/b/patcarna/archive/2009/06/29/an-introduction-to-gated-check-in.aspx

Job
quelle
1
Selbst wenn Sie kein TFS verwenden, halte ich es für eine gute Idee, sie "Gate-Tests" zu nennen. Sie regeln den Fortschritt von einem Staat in einen anderen. Das ist etwas anderes, als nur zu sehen, ob Ihr neuer Code funktioniert.
Kate Gregory
1
Oder Pre-Commit- Tests, wenn Sie Subversion verwenden.
Rwong
1
@rwong, das kann eine Antwort sein.
Job
2

Nennen Sie sie, wie Sie wollen, es spielt keine Rolle. Was zählt, ist die Qualität der Tests und dass sie durchgeführt werden.

Unsere Tests sind automatisierte Abnahmetests, aber wir nennen sie hier bei meiner Arbeit einfach "Tests". Wie in:

  • Repariere deine "Tests"
  • Sie haben die "Tests" gebrochen
  • Hast du einen "Test" geschrieben?
  • Dieser "Test" ist scheiße, also habe ich ihn umgeschrieben
Dietbuddha
quelle
0

Ich nenne sie "die Tests" mit der Implikation, dass ich über die "automatisierten Komponententests" spreche, und mit der Folgerung, dass diese schnell sind (einige Sekunden bis einige Minuten sind das, was ich häufiger erlebt habe.

Manchmal gibt es andere Tests, die beim Einchecken automatisch ausgeführt werden, beispielsweise einmal nachts. Diese dauern in der Regel länger. Etwas zwischen 30 Minuten und ein paar Stunden. Typischerweise nennen wir diese "Funktionstests" oder "Regressionstests" oder sogar "langsame Tests".

Julio
quelle
0

Aus meinen Erfahrungen:

Ein Komponententest ist ein Test oder eine Reihe von Tests, die ein bestimmtes Modul abdecken. Bei der OO-Programmierung ist ein Modul normalerweise eine Funktion oder Klasse. Unit-Tests sind in Testsuiten zusammengefasst. Unit-Tests sind die Bausteine ​​für Regressions- und Rauchtests und können in einigen Fällen als Dokumentation für das beabsichtigte Verhalten eines Systems oder von Teilen eines Systems dienen.

Beim Regressionstest werden die meisten oder alle Komponententests auf einem geänderten Modul ausgeführt. Dadurch wird sichergestellt, dass das geänderte Modul nach den Änderungen weiterhin wie erwartet funktioniert.

Bei der Rauchprüfung wird eine (kleine - Sie möchten, dass die Rauchprüfung relativ schnell durchgeführt wird) Anzahl von Komponententests an unveränderten Modulen durchgeführt, um sicherzustellen, dass eine Änderung an einem Modul keine unbeabsichtigten Nebenwirkungen auf andere Module hatte. Der Fokus liegt normalerweise auf Klassen, die Assoziationen mit der geänderten Klasse haben, sowie auf den Modulen, die der Anwendung wichtige Funktionen bieten.

Abhängig von Ihrer Build-Umgebung kann eine dieser Umgebungen vom Entwickler automatisiert oder ausgeführt werden. Ein festgeschriebener Änderungssatz sollte klein genug sein, damit Regressionstests nicht unannehmbar lange dauern, und Rauchtests sind so konzipiert, dass sie ziemlich schnell sind. Normalerweise führe ich mindestens Regressions- und Rauchtests für Code durch, bevor dieser überhaupt eingecheckt wird, damit ich den Build nicht kaputt mache. Ich habe normalerweise gesehen, dass das Build-System so konzipiert ist, dass es regelmäßig den Status aller Testfälle ausführt und darüber Bericht erstattet, je nach Entwicklungsrate und Zeit zum Erstellen und Ausführen der Tests von täglich bis wöchentlich.

Thomas Owens
quelle
0

Wenn Sie es vor dem Einchecken über die Codebasis ausführen, handelt es sich um einen Regressionstest.

Wenn Sie nur das Bit testen, das Sie geändert haben, handelt es sich um einen Komponententest.

Wenn Sie einen Test für einen Fehler auf Systemebene hinzufügen und dann beheben, ist dies ein Regressionstest.

Seine Tests, wenn Sie sich zurückbilden: rückwärts gehen.

Es lohnt sich, Regressionstests durchzuführen, da sich Fehler an bestimmten Stellen häufen und einige Fehler erneut auftreten.

Wenn Sie die Disziplin von Tests auf Systemebene aushalten können, zahlt es sich aus, dort Regressionstests hinzuzufügen. Alle spröden Subsysteme werden in Regressionstests kokoniert.

Wahre Geschichte.

Tim Williscroft
quelle
-1

Automatisierte Unit-Tests habe ich immer so genannt.

Adam Crossland
quelle
Ein Teil des Problems hier ist, dass diese Organisation viele Dinge "Unit-Tests" genannt hat. Ich versuche, sie dazu zu bringen, eine Definition nach Industriestandard zu verwenden. Daher möchte ich wirklich vermeiden, den Begriff "Komponententest" für diese automatisierten, aber übergeordneten Tests zu verwenden.
Passage
-1

Ich bin mir nicht sicher, ob es einen offiziellen Begriff gibt oder nicht, aber ich würde sie als automatisierte Tests bezeichnen. Ich stimme Ihnen zu, dass die Worteinheit dort nicht korrekt ist.

mpenrow
quelle
-1

Der Begriff "automatisierte Tests" umfasst das Spektrum von Unit-Tests, Regressionstests, Integrationstests, Abnahmetests usw.

Mike Rosenblum
quelle
-1

Wir nennen sie normalerweise Rauchtests, Gesundheitstests oder Tests der Priorität 1. Tests der Priorität 2 werden nach dem Einchecken durchgeführt, und dann werden Tests der Priorität 3 für die geplanten Builds ausgeführt. Unsere letzten Tests, Tests der Priorität 4, finden statt, wenn wir einen speziellen Build haben, der über ein Wochenende ausgeführt wird - da die Ausführung ungefähr so ​​lange dauert.

Steven Evers
quelle