Projekt kurz vor der Fertigstellung. Zeittests zu beginnen. Welche Methoden sind möglich gegen Ende des Entwicklungszyklus?

StackOverflow https://stackoverflow.com/questions/893059

Frage

Nehmen wir an, man ein Projekt in der Nähe von Ende seines Entwicklungszyklus verbindet. Das Projekt wurde über viele Teams weitergegeben und hat überhaupt stattfindet, entlang der gesamten Zeit eine Gesamt frei für alles ohne Prüfung gewesen. Die anderen Mitglieder dieses Teams haben keine Kenntnis von Tests (schade!) Und Einheit jede Methode testet an dieser Stelle nicht machbar scheint.

Was wäre die empfohlene Strategie zum Testen ein Produkt an dieser Stelle neben Usability-Tests? Ist dies normalerweise der Punkt, an dem Sie mit manuellem Point-and-Click erwarteter Ausgabe / Sind-Ausgang Arbeit stecken?

War es hilfreich?

Lösung

Ich nehme typischerweise einen Bottom-up-Ansatz zum Testen, aber ich denke, in diesem Fall, dass Sie top-down gehen wollen. Testen Sie die größten Komponenten Sie können Komponententests umschlingen und sehen, wie sie scheitern. Diese Ausfälle sollten Sie zeigen, was Subkomponenten müssen Tests ihrer eigenen. Sie erhalten eine ziemlich fleckige Testsuite haben, wenn dies geschehen ist, aber es ist ein Anfang.

Andere Tipps

Wenn Sie das Budget dafür haben, erhalten eine Testautomatisierungssuite. HP / Mercury Quicktest ist der Marktführer in diesem Bereich, ist aber sehr teuer. Die Idee ist, dass man Testfälle wie Makros durch Fahren Ihres GUI durch Use Cases aufzeichnen. Sie füllen Eingaben in einem Formular (Web, .net, schwingen, so ziemlich jede Art von GUI) lernt der Motor die Formularelemente Namen. Dann können Sie für erwartete Ausgabe überprüfen auf der GUI und in der db. Dann können Sie in einer Tabelle oder eine Tabelle verschiedenen Testeingänge anschließen, einschließlich ungültige Fälle, in denen es ausfallen sollte und es durch Hunderte von Szenarien ausführen, wenn Sie möchten. Nachdem die Tests aufgezeichnet sind, können Sie auch die generierten Skripte bearbeiten, um sie anzupassen. Er baut einen ordentlichen Bericht für Sie am Ende zeigt Ihnen genau, was fehlgeschlagen ist.

Es gibt auch einige billige und kostenlose GUI Automatisierung Test-Suiten, die so ziemlich das Gleiche tun, aber mit weniger Funktionen. Im Allgemeinen teureren der Suite ist die weniger manuelle customizition notwendig. Schauen Sie sich diese Liste: http://www.testingfaqs.org/t-gui.html

Ich denke, das ist, wo eine gute Qualitätssicherung Test kommen würde. Altmodisches Testfälle schreiben und auszuteilen an mehrere Personen im Team zu testen.

  

Was wäre die empfohlene Strategie zum Testen eines Produkts an dieser Stelle neben Usability-Tests?

Ich würde Code-Inspektion empfehlen, von jemandem / Leuten, die wissen (oder wer entwickeln kann) das funktionale Spezifikation des Produkts.

Ein extreme, würde puristisch sein, das zu sagen, weil es „ein ohne Prüfung insgesamt frei für alles waren überhaupt“, deshalb kann man nichts davon vertrauen: nicht die bestehenden Tests, noch der Code noch die Entwickler noch der Entwicklungsprozess noch Management, nichts über das Projekt. Darüber hinaus Tests hinzufügen, nicht Qualität Software (Qualität hat Built-in wurde ein Teil des Entwicklungsprozesses). Die einzige Möglichkeit, ein qualitativ hochwertiges Produkt haben, ist ein qualitativ hochwertiges Produkt zu bauen; Dieses Produkt hatte keine Qualität in seinem bauen, und deshalb muss man es wieder aufbauen:

  • Behandeln Sie den vorhandenen Quellcode als Wegwerf-Prototyp oder Dokumentation
  • Erstellen Sie ein neues Produkt Stück-für-Stück, gegebenenfalls geeignete Fragmente (falls vorhanden) des alten Quellcode enthält.

Aber Code-Inspektion zu tun (und Korrektur über Code-Inspektion festgestellten Mängel) könnte schneller sein. Dass zusätzlich zu den Funktionstests sein würde.

Unabhängig davon, ob Sie wollen nicht nur testen, sondern auch die zusätzliche Zeit, Mühe aufwenden automatisierte Tests zu entwickeln hängt davon ab, ob Sie werden die Software zu erhalten (dh in der Zukunft, um sie zu ändern in irgendeiner Weise und dann erneut testen).

Sie werden auch brauchen:

  • Entweder:
    • Die Kenntnis der funktionalen Spezifikation (und nicht-funktionale Spezifikation)
    • Entwickler und / oder QA Menschen mit einem Hinweis
  • Oder:
    • Ein kleines, einfaches Produkt
    • Patient, verzeiht Endnutzern
    • Der kontinuierliche technische Unterstützung, nachdem das Produkt geliefert wird,

Eine Technik, die ich in meine Entwicklung Praxis integrieren, wenn ein Projekt zu diesem Zeitpunkt im Lebenszyklus eintreten, Unit-Tests hinzufügen als Fehler gemeldet werden (von QA oder Endverbraucher). Sie werden nicht vollständige Code-Abdeckung der bestehenden Codebasis, aber zumindest diese Weise kann zukünftige Entwicklung angetrieben und durch Versuche zu dokumentieren. Auf diese Weise sollten Sie auch sicher sein, dass Ihre Tests fehlschlagen, bevor über die Umsetzung zu arbeiten. Wenn Sie den Test schreiben und es nicht scheitern, ist der Test fehlerhaft.

Darüber hinaus, wie Sie neue Funktionalität zum System hinzuzufügen, die mit Tests beginnen, so dass zumindest die Teilsysteme getestet werden. Da die neuen Systeme mit bestehenden interagieren, versuchen Tests um die alten Grenzschichten hinzugefügt und in der Zeit arbeiten Sie sich. Während diese nicht Unit-Tests sein, sind diese Integrationstests besser als nichts.

Refactoring ist noch ein weiteres bevorzugtes Ziel für den Test. ohne Tests Refactoring ist wie ein Drahtseilakt ohne Netz gehen. Sie können erfolgreich auf die andere Seite zu bekommen, aber das Risiko wert ist der Lohn?

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