Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM

Similar presentations


Presentation on theme: "© Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM"— Presentation transcript:

1 © Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM paki@hive-studios.com http://msforge.net/blogs/paki http://twitter.com/ipavlovi

2 © Hive Studios 2011 2 A little bit of slides and a lot of examples What is BDD Language Tools Examples

3 © Hive Studios 2011 3 Unit testing Acceptance / Customer testing Integration testing Performance testing Regression testing

4 © Hive Studios 2011 4 One of agile tehniques Improves communication between developers and domain experst Example driven specification BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well- defined outputs, resulting in the delivery of working, tested software that matters. - Dan North (http://dannorth.net/)

5 © Hive Studios 2011 5 Domain Specific Language Razumljiv je poslovnim korisnicima Simple syntax Feature Background Scenario, Scenario Outline Given, When, Then Localized to 35+ languages https://github.com/aslakhellesoy/cucumber/wiki/gherkin

6 © Hive Studios 2011 6 1: Feature: Some descriptive text of what is desired 2: In order to realize a named business value 3: As an explicit system actor 4: I want to gain some beneficial outcome which furthers the goal 5: 6: Scenario: Some determinable business situation 7: Given some precondition 8: And some other precondition 9: When some action by the actor 10: And some other action 11: And yet another action 12: Then some testable outcome is achieved 13: And something else we can check happens too 14: 15: Scenario: A different situation 16:...

7 © Hive Studios 2011 7 Feature: Serve coffee In order to earn money Customers should be able to buy coffee at all times Scenario: Buy last coffee Given there are 1 coffees left in the machine And I have deposited 1$ When I press the coffee button Then I should be served a coffee

8 © Hive Studios 2011 8 Tools are file generators that consumes *.feature files and creates test fixtures Cucumber – Ruby, http://cukes.info/http://cukes.info/ SpecFlow –.NET, http://specflow.orghttp://specflow.org Nunit, MSTest, MBUnit… …and many others

9 © Hive Studios 2011 9 1.BA or user writes a feature and scenarios and agree with dev that it is doable 2.SpecFlow generates one test per scenario 3.Developer implements step definitions 4.Developer writes just enough code to make tests green 5.Move on to the next scenario

10 © Hive Studios 2011 10 … 7: Given some precondition 8: And some other precondition 9: When some action by the actor 10: Then some testable outcome is achieved [Given(@„some precondition")] public void SomePrecondition() { … do something… } [Given(@„some other precondition")] public void SomePrecondition() { … do something… } [When(@„some action by the actor")] public void SomePrecondition() { … do something… } [Then(@”some verifiable result”)] Public void VerifyResult() { … do assert… }

11 © Hive Studios 2011 11 … 7: Given I have 5 apples 8: And I eat 2 of them 9: When someone asks how many apples I do have 10: Then I should answer “3 apples” [Given(@„I have (.*) apples")] public void SomePrecondition(int numberOfApples) { … do something… } [Given(@„ I eat (.*) of them")] public void SomePrecondition(int numberOfEatenApples) { … do something… } [When(@„ someone asks how many apples I do have")] public void SomePrecondition() { … do something… } [Then(@” I should answer \“(.*) apples\””)] Public void VerifyResult(int expected) { … do assert of expected … }

12 © Hive Studios 2011 12 Scenario: Posting a valid entry Given I am on the posting page And I have filled out the form as follows | Label | Value | | Your name | Jakob | | Your comment | Das ist gut! | When I click the button labelled "Post" Then I should be on the guestbook page And the guestbook entries includes the following | Name | Comment | Posted date | | Jakob | Das ist gut! | (within last minute) | [Given(@"I have filled out the form as follows")] public void FillFormAsFollows(TechTalk.SpecFlow.Table table) { foreach (var row in table.Rows) { ….. Do something … } }

13 © Hive Studios 2011 13 Scenario: TC1 Add two numbers Given I have entered 1 into the calculator And I have entered 2 into the calculator When I press add Then the result should be 3 on the screen Scenario: TC2 Add two numbers Given I have entered 2 into the calculator And I have entered 2 into the calculator When I press add Then the result should be 4 on the screen

14 © Hive Studios 2011 14 Scenario Outline: TC5 Given I have entered into the calculator And I have entered into the calculator When I press add Then the result should be on the screen Scenarios: addition | x | y | result| | 1 | 2 | 3 | | 2 | 2 | 4 | | 3 | -3 | 0 |

15 © Hive Studios 2011 15 It is your call Depend on what you want to test 1.Public Interfaces / Components 2.WebUI using browser automation WatiN, Selenium 3.WebUI using Request/Respons Http Get/Post 4.Win UI using automation White / Windows UI Automation

16 © Hive Studios 2011 16 Specflow http://specflow.org Gherkin https://github.com/aslakhellesoy/cucumber/wiki/gherkin White http://white.codeplex.com/ WatiN http://watiN.sourceforge.nethttp://watiN.sourceforge.net

17 © Hive Studios 2011 17 Šta je MS Forge? MSForge.net je lokalni web portal i mesto okupljanja svih Windows, SQL Server i.NET fanova, kao i svih onih koji žele da rade sa ovim tehnologijama. MSForge.net daje podršku i omogućava Web prisustvo lokalnim User grupama.lokalnim User grupama Ko čini MS Forge? MSForge.net okuplja ljude koji se profesionalno ili iz hobija bave Microsoft tehnologijama. Člansto na portalu i u User grupama je besplatno i dobrodošli su svi koji žele da saznaju nešto novo i da svoja znanja podele sa drugima. Kako MS Forge može da pomogne Pokretačka ideja koja stoji iza MSForge.net i user grupa je razmena znanja. Odgovore na pitanja možete potražiti kako online (na blogivima ili na forumu) tako i na sastancima User grupa o kojima ćete biti obavešteni putem MSForge portala. Priključi se! Radu MSForge.net portala i User grupa možete i sami da doprinesete. Deljenjem znanja i iskustava na blogovima ili forumima doprinećete ne samo napretku naše online zajednice, već ćete mnogima omogućiti da unaprede svoja znanja. Ukoliko imate interesantnu ideju za predavanje kontaktirajte moderatora User grupe.User grupe


Download ppt "© Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM"

Similar presentations


Ads by Google