Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Stefan Lieser Wer erstellt regelmäßig Unit Tests?

Ähnliche Präsentationen


Präsentation zum Thema: "Stefan Lieser Wer erstellt regelmäßig Unit Tests?"—  Präsentation transkript:

1 Stefan Lieser http://lieser-online.de

2 Wer erstellt regelmäßig Unit Tests?

3 Wer kennt seine Testabdeckung?

4 Wer erstellt Tests um Bugs zu reproduzieren?

5 Wer erstellt Tests vor der Implementierung ?

6 TDD

7 Test Driven Development

8 Test First

9 Revolution!

10

11

12 Zeit TestCode

13 Test = hinterher

14 Sprache formt das Denken

15 Sapir-Whorf Hypothese

16 ?

17 BDD

18 Behavior Driven Development

19 Evolution

20 Specification First

21

22 Test Specification

23 Testen?

24 Das machen die Tester!

25 Das kostet zu viel Zeit!

26 Mein Code ist fehlerfrei!

27 Dafür sind wir da!

28 Sollen wir arbeitslos werden?

29 Ihr habt keine Ahnung!

30

31 TDD Entwicklung

32 Tests für vorhandenen Code

33 Vertrauen

34 Reduktion

35 Dokumentation

36 Offenbarung

37 Verhalten

38 Mockups

39

40 User Stories

41

42 Als Shopbenutzer möchte ich Bücher in meinen Warenkorb legen um meine Bestellung besser überblicken zu können.

43 Who What Why

44 Role Gole Motivation

45 Technologie

46 Business Domain

47 Sprache der Domain verwenden

48 Business und Technik verwenden die selbe Sprache! It‘s all behavior

49 Gegeben ein MessageBoardController Wenn die Index Action aufgerufen wird und wenn 10 Nachrichten vorhanden sind Dann sollen die 5 neusten Nachrichten aus dem Repository ermittelt werden

50

51 Gegeben ein Nachrichten System Wenn es dargestellt wird Dann zeigt es die 5 neusten Nachrichten

52 Als Benutzer des Nachrichten Systems möchte ich die 5 neusten Nachrichten sehen damit die Nachrichten auf meinen Bildschirm passen

53 BDD = Automatisierte Akzeptanztests

54 Unit Tests: Der Code ist richtig. Akzeptanztests: Es ist der richtige Code.

55 Syntax

56 Assert.AreEqual(5, x); Assert.That(x, Is.EqualTo(5)); x.ShouldBeEqualTo(5); x.should_be_equal_to(5);

57 Arrange/Act/Assert

58 Setup/Exercise/Verify

59 [TestFixture] public class ClassicalTDD { private IEmailService emailService; private AuftragsAbwicklung auftragsAbwicklung; private IAuftrag auftrag; [Test] public void AuftragsAbwicklung_sendet_Email_wenn_der_Auftrag_ausgeliefert_wird() { // Arrange emailService = MockRepository.GenerateMock (); auftrag = MockRepository.GenerateStub (); auftragsAbwicklung = new AuftragsAbwicklung(emailService); // Act auftragsAbwicklung.Liefern(auftrag); // Assert emailService.AssertWasCalled(x => x.Send()); auftrag.AssertWasCalled(x => x.Ausgeliefert()); }

60 Context/Specification

61 [Concern(typeof(AuftragsAbwicklung))] public class Wenn_ein_Auftrag_ausgeliefert_wird : InstanceContextSpecification { private IEmailService emailService; private IAuftrag auftrag; protected override void establish_context() { emailService = dependency (); auftrag = dependency (); } protected override AuftragsAbwicklung create_sut() { return new AuftragsAbwicklung(emailService); } protected override void because() { sut.Liefern(auftrag); } [Observation] public void wird_eine_Email_gesendet() { emailService.was_told_to(x => x.Send()); } [Observation] public void wird_der_Auftrag_in_den_Status_Ausgeliefert_versetzt() { auftrag.was_told_to(x => x.Ausgeliefert()); }

62 BDD Frameworks

63 JP Boodhoo http://blog.jpboodhoo.com http://blog.jpboodhoo.com xunit.bddextensions (Björn Rochel) http://code.google.com/p/xunitbddextensions http://code.google.com/p/xunitbddextensions SpecUnit (Scott Bellware) http://code.google.com/p/specunit-net/ http://code.google.com/p/specunit-net/

64 NBehave (Dan North) enthält Behave# und NSpec http://nbehave.org/ http://code.google.com/p/nbehave/http://nbehave.org/http://code.google.com/p/nbehave/ MSpec (Aaron Jensen) http://codebetter.com/blogs/aaron.jensen/archive/2008/09/02/mspec-v0-2.aspxhttp://codebetter.com/blogs/aaron.jensen/archive/2008/09/02/mspec-v0-2.aspx

65 Bildnachweis http://flickr.com/photos/hurleygurley/4338767/sizes/o/ http://flickr.com/photos/nitram75/2532252156/sizes/l/ http://flickr.com/photos/igelchen/228253414/sizes/o/ http://flickr.com/photos/lincolnblues/1413187481/sizes/l/ http://flickr.com/photos/c-o-d/553155111/sizes/l/ http://flickr.com/photos/thesteinbergs/165513589/sizes/l/in/photostream/ http://flickr.com/photos/julianbleecker/426323201/sizes/l/ http://flickr.com/photos/peterpanter/2381811041/sizes/o/ http://flickr.com/photos/mail2pete/3146580621/sizes/l/ http://www.erdgasfahren.ch/fileadmin/user_upload/01_News/Pressebereich/Pressedownloads/ Sonstige/Zafira_Crash_Test.jpg http://flickr.com/photos/moe/8322628/sizes/l/ http://flickr.com/photos/wklemp/2210135334/sizes/l/ http://www.jetbrains.com/resharper/features/unit_testing.html#Unit_Test_Sessions http://flickr.com/photos/dalmet/496531540/sizes/l/ http://flickr.com/photos/alfreddiem/231306790/sizes/o/ http://a.abcnews.com/images/Health/apg_crash_test_070517_ms.jpg http://flickr.com/photos/hisebuse/2148222331/sizes/l/ http://flickr.com/photos/londonannie/2231592618/sizes/l/in/set-72157603821699832/ http://flickr.com/photos/kid_schoko/2542422970/sizes/l/ http://flickr.com/photos/prettydaisies/2369449704/sizes/l/ http://flickr.com/photos/alphachimpstudio/43818104/sizes/l/

66


Herunterladen ppt "Stefan Lieser Wer erstellt regelmäßig Unit Tests?"

Ähnliche Präsentationen


Google-Anzeigen