Frage

Wir haben drei Zweige {Dev, Test, Freigabe} und kontinuierliche Integration für jeden Zweig eingerichtet haben. Wir wollen in der Lage seine Qualität zuweisen bauen zu jedem Zweig d Dev - Bereit für Test ...

Hat jemand Erfahrung mit diesem, die einen Rat / Best-Practice-Ansatz bieten kann?

Wir sind mit TFS 2008 und wir sind uns bewusst, dass es Eigenschaften beim Aufbau eingebaut hat. Es ist nur, wenn ein qualitativ hochwertiges und welche Art von Qualitäten Menschen verwenden, um das anzuwenden, was wir suchen.

Danke

:)

War es hilfreich?

Lösung

hier Ihr Ziel ist es, die höchste Qualität möglich in jedem Zweig zu erhalten, ausgewogen gegen die Last dieses Qualitätsniveau zu überprüfen.

Unter Berücksichtigung Qualität in fallen jeder Zweig ist immer schädlich. Denken Sie nicht, Sie der Dev Zweig zur Hölle fahren lassen können und es dann reparieren vor der Verschmelzung. Es funktioniert nicht gut, aus zwei Gründen:

  • Wiederherstellen ist schwieriger als erwartet . Wenn ein Zweig schlecht gebrochen, wissen Sie nicht, wie kaputt es wirklich ist. Das ist, weil jede Ausgabe andere versteckt. Es ist auch keine Fortschritte zu jedem Thema zu machen schwer zu, weil Sie auf dem Weg in zu anderen Problemen führen werden.

  • Letting Qualitätsabfall spart Ihnen nichts . Die Leute sagen manchmal „Qualität, Kosten, Zeitplan - wählen Sie jede mögliche 2“ oder so ähnlich. Die falsche Annahme ist, dass Sie „Speichern“, indem sie Qualität rutschen. Das Problem ist, dass, sobald die Qualität sinkt, so bedeutet „Geschwindigkeit“ - die Geschwindigkeit, mit der Sie Arbeit zu erledigen. Die gute Nachricht ist, dass die Qualität hoch zu halten nicht wirklich kostet extra, und jeder genießt mit einer qualitativ hochwertigen Code-Basis zu arbeiten.

Der Kompromiss Sie machen müssen, ist, wie viel Zeit verbringen Sie Verifizieren Qualität.

Wenn Sie gut Test Driven Development tun, werden Sie mit einer umfassenden Reihe von extrem schnellen, zuverlässigen Unit-Tests am Ende. Aufgrund dieser Eigenschaften können Sie einigermaßen Entwickler verlangen, daß sie vor dem Check-in, zu laufen und sie regelmäßig in jedem Zweig laufen, und verlangen, dass sie 100% jederzeit passieren. Sie können auch Refactoring halten, wie Sie gehen, in dem Sie Geschwindigkeit über die gesamte Lebensdauer des Projekts hoch zu halten.

Und falls Sie Integration / Kundentests gut automatisiert zu schreiben, so laufen sie schnell und zuverlässig, können Sie verlangen, dass sie oft ausgeführt werden, als auch, und immer weiter.

Auf der anderen Seite, wenn Ihre automatisierten Tests sind flockig, wenn sie langsam laufen, oder wenn Sie regelmäßig mit „bekannten Fehlern“ arbeiten, dann müssen Sie wieder aus, wie oft Menschen, die sie ausführen müssen, und Sie werden eine Menge Zeit damit verbringen, über diese Fragen zu arbeiten. Es nervt. Gehen Sie nicht dort.

Im schlimmsten Fall werden die meisten Ihrer Tests nicht automatisiert. Man kann sie nicht oft laufen, weil die Leute diese Dinge wirklich langsam sind. Ihre Nicht-Release-Zweig Qualität negativ beeinflussen, ebenso wie die Verschmelzung Geschwindigkeit und Entwicklungsgeschwindigkeit.

Andere Tipps

Die Beurteilung der Qualität eines Builds in einer deterministischen und reproduzierbar ist definitiv eine Herausforderung. Ich schlage vor, wie folgt vor:

  1. Wenn Sie eingerichtet sind automatisierte Regressionstests zu tun, dann sollten alle diese Tests bestehen.
  2. Entwickler sollte Integrationstest jeder ihrer Änderungen offiziell mit Dev neu auf einem offiziellen und sauberen Prüfstand installiert bauen und ihre persönliche Zustimmung geben.

Wenn diese beiden Elemente erfüllt sind für einen bestimmten Dev bauen Sie können ziemlich sicher sein, dass dieser Build Förderung wird Test nicht die Zeit Ihres QA Team verschwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top