220 likes | 485 Views
Qualitätsmanagement mit VSTS und TFS. Agenda. Einführung Qualitätsmanagement Ziele eines QM Warum mögen Entwickler QM nicht? Lösungen Integration Qualitätsmanagement in den Prozess Fazit. Vorstellung. Thomas Schissler Software-Architekt und Projektleiter artiso AG
E N D
Agenda • Einführung Qualitätsmanagement • Ziele eines QM • Warum mögen Entwickler QM nicht? • Lösungen • Integration Qualitätsmanagement in den Prozess • Fazit
Vorstellung • Thomas Schissler • Software-Architekt und Projektleiter artiso AG • Blog : http://www.artiso.com/problog • eMail: tSchissler@artiso.com • Mark Bulmahn • Qualitätsmanager und Projektleiter artiso AG • eMail: mBulmahn@artiso.com
Ziele eines QM • Ein Qualitätsmanagement soll die Qualität eines Entwicklungsprozesses und des Endproduktes sicherstellen • Korrektheit • Vollständigkeit • Budget und Zeitplan einhalten • Wartbarkeit • uvm.
Warum mögen Entwickler QM nicht? • Entwickler empfinden QM oft als … • … Umständlich und kompliziert • … Theoretische Angelegenheit • … Einschränkung in ihrer Kreativität • … Eingriff in Ihre Arbeitsweise • … Notwendiges Übel • … Konfliktpotenzial
Warum diese Vorbehalte? • QM und Entwicklung verfolgen teilweise unterschiedliche Ziele • QM und Entwicklung sind meist unterschiedliche Personen • QM berücksichtigt oft die Integration in andere Entwicklungsprozesse nicht genug • Entwickler unterschätzen die Bedeutung von QM
Probleme im QM-Prozess • QM ist mehr als Testen • Requirements und Spezifikationen sind unvollständig • Testability und Testautomatisierung • Qualität ist mehr als nur Korrektheit • Bereitschaft von allen Beteiligten, QM zu „leben“
Lösung • QM muss tiefer in den Entwicklungsprozess integriert werden • Die Nutzung aller relevanten Prozessartefakte und die Kommunikation im Team ist elementar • QM muss durch Toolunterstützung effizienter werden Ein integrierter Ansatz!
Lösung Beispiel für Integration von QM und Entwicklungsprozess
1. Projektplanung • Qualität beginnt bereits beim Kundengespräch • Requirement Management • Spezifikation definieren • Risiken erkennen • Qualitätsniveau festlegen
2. Software-Achitektur • Die Architektur der Anwendung bestimmt wesentlich über • Testbarkeit • Wartbarkeit • Ideal ist Komponentenorientierte Architektur
3. Implementierung • Automatisierte Tests bereits während des Entwicklungsprozess mit Unit-Tests • Nutzung von Codierungs-Standards • Checkin-Policies • Buildmanagement und Continous Integration
4. Testen • Manuelle Tests • Automatisierte UI-Tests • Integrations-Tests • Kommunikation zwischen Tester und Entwickler • Test-Dokumentation
5. Systembetrieb • Branching • Deployment • Abnahme • Behandlung von Fehlern • Aus entstehenden Problemen lernen
Demo • Unser Demoprojekt • Tests planen • Testen mit VSTS live: • Tests umsetzen • Testen mit VSTS im Prozess: • Integration von Tests in den gesamten Lifecycle • Testarten im Überblick • Was gibt es jenseits des Unit-Tests noch? • Was geht (noch) nicht (so gut)?
Weitergehende Möglichkeiten • Load-Testing • Simulation: • Kurzfristige Lastspitzen • Hohe Anzahl paralleler Aktivitäten • Ziel: • Wie verhält sich die Applikation bei vielen parallelen Zugriffen? • Welche Plattformkapazitäten sind erforderlich? • Wie ist das Skalierungsverhalten? • Nicht nur für Webtests, sondern prinzipiell mit jedem Unittest möglich • Test Load Agent für die Ausführung erforderlich
Fazit • Jeder nutzt heute schon Methoden zur Verbesserung der Qualität (hoffentlich) • Das QM verknüpft diese Einzelmaßnahmen • Ein gutes QM betrachtet den gesamten Prozess • Aber es müssen nicht für jeden Prozess-Schritt aufwändige Methoden definiert werden.
Fazit • QM muss nicht kompliziert und aufwändig sein • QM ist notwendig • QM muss an die Anforderungen angepasst sein • QM muss „bezahlbar“ sein