Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Rainer Stropek, cubido business solutions gmbh Bug Busters Qualitätssicherung in der Softwareentwicklung.

Ähnliche Präsentationen


Präsentation zum Thema: "Rainer Stropek, cubido business solutions gmbh Bug Busters Qualitätssicherung in der Softwareentwicklung."—  Präsentation transkript:

1 Rainer Stropek, cubido business solutions gmbh Bug Busters Qualitätssicherung in der Softwareentwicklung

2 Alle Samples inkl. Erklärungen… …sind unter architects.com/TechnicalArticles/TestDrive nDevelopment/tabid/83/language/de- AT/Default.aspx nachzulesen.http://www.software- architects.com/TechnicalArticles/TestDrive nDevelopment/tabid/83/language/de- AT/Default.aspx Rainer Stropek, cubido business solutions gmbh

3 Ziele des Vortrags Qualitätssicherung Ihre Einstellung zu Qualitätssicherung im Softwareentwicklungsprozess verändern Testen Wissen zum Thema Testen vermitteln Beispiel Konkrete Lösungsansätze und Werkzeuge an einem Beispiel präsentieren Rainer Stropek, cubido business solutions gmbh

4 Qualitätssicherung Wozu? Rainer Stropek, cubido business solutions gmbh

5 Kontra Zeitaufwand Kosten Qualität kommt von Qual (Felix Magath) U.v.m. Pro Gesetzliche Vorschriften Produkthaftung Verantwortung gegenüber Kunden Qualität besteht, wenn der Preis längst vergessen ist. (Henry Royce) U.v.m.

6 Qualitätssicherung vs. Testen Qualitätssicherung Qualitätssicherung sind Maßnahmen die sicherstellen sollen, dass ein Produkt oder eine Dienstleistung ein festgelegtes Qualitätsniveau erreicht. (Wikipedia) Testen Ein Test ist ein Versuch, mit dem größere Sicherheit darüber gewonnen werden soll, ob ein technischer Apparat oder ein Vorgang innerhalb der geplanten Rahmenbedingungen funktioniert oder nicht. (Wikipedia) Rainer Stropek, cubido business solutions gmbh

7 Qualitätssicherung vs. Testen Qualitätssicherung Qualitätssicherung sind Maßnahmen die sicherstellen sollen, dass ein Produkt oder eine Dienstleistung ein festgelegtes Qualitätsniveau erreicht. (Wikipedia) Testen Ein Test ist ein Versuch, mit dem größere Sicherheit darüber gewonnen werden soll, ob ein technischer Apparat oder ein Vorgang innerhalb der geplanten Rahmenbedingungen funktioniert oder nicht. (Wikipedia) Rainer Stropek, cubido business solutions gmbh Testen … Prozess- begleitende Maßnahmen

8 Auswirkung von Qualitätssicherung auf Entwicklungsprozess Rainer Stropek, cubido business solutions gmbh Spezifikation - Breadth first vs. Depth first –If you are faced with time constraints, cut features instead of unit-testing code Over-Engineering Stellenwert von QA und Testen –Ist der Praktikant der richtige Qualitätsmanager? Rollenverteilung Entwickler vs. Tester –Aufgabenverteilung, Schnittstellen Commander Data –Lernen, lernen, lernen U.v.m.

9 Ziele des Vortrags Qualitätssicherung Ihre Einstellung zu Qualitätssicherung im Softwareentwicklungsprozess verändern Testen Wissen zum Thema Testen vermitteln Rainer Stropek, cubido business solutions gmbh

10 Fehlertypen Regressions- tests, diversi- fizierende Tests Re- gressions- fehler Usability Tests Fehler im Bedien- konzept Schwierig! Fuzzing? Design- fehler Rainer Stropek, cubido business solutions gmbh Funktions- orienterte Tests, diversifizierende Tests Logische Fehler Systemtests, Struktur- orientierte Tests Laufzeit- fehler Compiler Syntax- fehler

11 Automatisierung von Tests Anwendungsbereiche Regressionstests Funktionsorientierte Tests –Voraussetzung: Testalgorithmus ist fachlich richtig System- und strukturorienterte Tests Ziele Der Softwarealterung entgegenwirken Echte Qualitätssicherung statt zufälliger Tests Kostenersparnis –Ein Bug, der nach Auslieferung entdeckt wird, kostet ca. 20x soviel wie ein Bug, der im Rahmen der Entwicklung bzw. des Tests gefunden wird U.v.m. Rainer Stropek, cubido business solutions gmbh

12 Softwarealterung Rainer Stropek, cubido business solutions gmbh

13 Testauto- matisierung Entwicklungs- prozess Test Driven Development

14 Rainer Stropek, cubido business solutions gmbh Verstehen Test entwickeln Test schlägt fehl! Funktion entwickeln Test erfolgreich Refactoring

15 Variante von Pair Programming Rainer Stropek, cubido business solutions gmbh Spezifikation Lösungs- entwicklerin Test- entwicklerin Anwendungs- programm Unit Tests Verifizieren des Anwendungs- programms

16 Ziele des Vortrags Qualitätssicherung Ihre Einstellung zu Qualitätssicherung im Softwareentwicklungsprozess verändern Testen Wissen zum Thema Testen vermitteln Beispiel Konkrete Lösungsansätze und Werkzeuge an einem Beispiel präsentieren Rainer Stropek, cubido business solutions gmbh

17 Demo Implementation Data Access Layer nach Test Driven Development-Prinzipien –Spezifikation Werkzeuge –Visual Studio 2008 Unit Test Funktion (jetzt Professional Edition!) –Linq Zur Umsetzung der Data Access Layer Rainer Stropek, cubido business solutions gmbh

18 Testinitialisierung Methoden über Attribute markieren –ClassInitialize [ClassInitialize()] public static void MyClassInitialize(TestContext testContext) –ClassCleanup [ClassCleanup()] public static void MyClassCleanup() –TestInitialize [TestInitialize()] public void MyTestInitialize() –TestCleanup [TestCleanup()] public void MyTestCleanup() Rainer Stropek, cubido business solutions gmbh

19 Tests Testmethoden mit Attribut [TestMethod] markieren –[TestMethod] public void AddSingleRow() Ausführen –Mit Test – Run/Debug –Mit dem Test List Editor Prüfungen mit Assert -Methoden Rainer Stropek, cubido business solutions gmbh

20 Demo Implementation UI nach Test Driven Development-Prinzipien –Spezifikation Werkzeuge –Visual Studio 2008 Unit Test Funktion (jetzt Professional Edition!) –WatiN Zur UI-Testautomatisierung Rainer Stropek, cubido business solutions gmbh

21 WatiN vs. VS Web Tests WatiN Open Source Layer über IE Objekt- modell –Test simuliert die Aktionen eines Benutzers direkt in IE Build-Automatisierung inkl. Tests schwierig Web Tests Kommerziell (VS Tester Edition) Capture & Replay von HTTP-Requests –Keine Ausführung von Logik in UI (JavaScripts) Build-Automatisierung inkl. Tests einfach (TFS) Rainer Stropek, cubido business solutions gmbh

22 Pro und Cons WatiN Pro Funktioniert einwandfrei Viele Empfehlungen –Scott Guthrie (GM Microsoft Developer Division) –Scott Hanselmann –U.v.m. Recorder verfügbar –Ideal zum Einstieg Kostenlos TDD möglich Cons Schlecht dokumentiert Wenige Beispiele –Blogs! Interaktive Anmeldung notwendig –Schwierig in Daily Build zu integrieren Firefox (noch) nicht unterstützt Rainer Stropek, cubido business solutions gmbh

23 WatiN Basiskonzepte Zentrale Klasse IE –new IE( url ) –IE.AttachToIE( AttributeConstraint ) Klassen je HTML-Element –Details siehe Suche über Klasse AttributeConstraint –ie.Link(Find.ById("testlinkid")).Url Rainer Stropek, cubido business solutions gmbh

24 UI-Test Helper Classes Design Goals –Kapseln von häufig geänderten Elementen (z.B. Control-IDs, etc.) –UI-Tests lesbarer machen –Effizienzsteigerung bei der Testentwicklung Rainer Stropek, cubido business solutions gmbh

25 Object Model for UI-Test Rainer Stropek, cubido business solutions gmbh Screen IDisposable OverviewScreen IAssertable AddEntryScreen

26 Template for Helper Class Rainer Stropek, cubido business solutions gmbh class OverviewScreen : Screen, IAssertable { private const string url = "http://localhost/BugBustersWeb"; private const string Control_WindowsLoginFilter = "lstUsers"; // Constants for all control IDs // … public OverviewScreen() : base(url) { } public void AssertControls() { var loginFilter = ie.SelectList(Control_WindowsLoginFilter); Assert.IsTrue(loginFilter.Exists); // check that all other necessary controls are present … } public SelectList LoginFilter { get { var loginFilter = ie.SelectList(Control_WindowsLoginFilter); Assert.IsTrue(loginFilter.Exists); return loginFilter; } class OverviewScreen : Screen, IAssertable { private const string url = "http://localhost/BugBustersWeb"; private const string Control_WindowsLoginFilter = "lstUsers"; // Constants for all control IDs // … public OverviewScreen() : base(url) { } public void AssertControls() { var loginFilter = ie.SelectList(Control_WindowsLoginFilter); Assert.IsTrue(loginFilter.Exists); // check that all other necessary controls are present … } public SelectList LoginFilter { get { var loginFilter = ie.SelectList(Control_WindowsLoginFilter); Assert.IsTrue(loginFilter.Exists); return loginFilter; } IDs zentral angeben für leichtere Wartbarkeit Assert-Methode prüft konsistenz der Maske Read-only properties zum einfacheren Zugriff

27 Object Model for UI-Test Rainer Stropek, cubido business solutions gmbh Dialog IDisposable HelpScreen IAssertable

28 Popup-Dialoge window.open Alle Browser IE.AttachToIE( ) window.showModelessDialog Nur IE Grundproblem busy-state IE.HtmlDialog(, ) Rainer Stropek, cubido business solutions gmbh Var dialog = parentScreen.ie.HtmlDialog( Find.ByUrl(url), 2); Var dialog = IE.AttachToIE( Find.ByUrl(url));

29 WaitForComplete, Click, ClickNoWait IE.WaitForComplete –Wartet, bis IE meldet, dass die Seite komplett geladen ist –Wichtig für Script, die dynamisch Daten nachladen Click vs. ClickNoWait –Click ruft intern WaitForComplete auf –Manchmal unerwünscht (z.B. wenn Dialog geöffnet wird) –ClickNoWait ruft WaitForComplete nicht auf Rainer Stropek, cubido business solutions gmbh

30 Javascript Confim-Boxes Rainer Stropek, cubido business solutions gmbh using (var overviewScreen = new OverviewScreen()) { … var confirm = new ConfirmDialogHandler(); using (new UseDialogOnce(screen.ie.DialogWatcher, confirm)) { screen.CancelLink.ClickNoWait(); confirm.WaitUntilExists(); confirm.OKButton.Click(); overviewScreen.ie.WaitForComplete(); } } using (var overviewScreen = new OverviewScreen()) { … var confirm = new ConfirmDialogHandler(); using (new UseDialogOnce(screen.ie.DialogWatcher, confirm)) { screen.CancelLink.ClickNoWait(); confirm.WaitUntilExists(); confirm.OKButton.Click(); overviewScreen.ie.WaitForComplete(); } }

31 Zusammenfassung Qualitätssicherung ist wichtig! Entscheiden Sie sich für das für Sie passende Qualitätsniveau und erreichen sie es! Testen ist ein Teil der Qualitätssicherungsmaßnahmen Integrieren Sie das Testen z.B. mit TDD in Ihren Entwicklungsprozess Sie werden sehen, es zahlt sich aus! Rainer Stropek, cubido business solutions gmbh

32 Ressourcen WatiN –http://watin.sourceforge.net/http://watin.sourceforge.net/ Case Complete –http://www.casecomplete.com/http://www.casecomplete.com/ Test Driven Development –Guter Einstieg bei Persönlicher Kontakt Rainer Stropek, cubido business solutions gmbh


Herunterladen ppt "Rainer Stropek, cubido business solutions gmbh Bug Busters Qualitätssicherung in der Softwareentwicklung."

Ähnliche Präsentationen


Google-Anzeigen