Charles Nurse, a senior architect at DotNetNuke Corporation, presented on using behavior-driven development (BDD) with Visual Studio 2010, SpecFlow, and WATIN. He began with an introduction to BDD and its practices. He then discussed using Gherkin syntax to define tests in natural language and explained how SpecFlow bridges communication between domain experts and developers. Finally, he demonstrated how to automate tests using the WATIN browser automation framework in SpecFlow scenarios.
BDD (Behavior-driven development), also known as ATDD (Acceptance test–driven development) is a software development process that helps Agile teams design, develop, test and deliver software efficiently, it's about how to implement agile acceptance testing and binding business requirements to code. BDD helps to bridge the communication gap between stakeholders and implementation teams, build quality into software from the start, design, develop and deliver systems fit for purpose. SpecFlow is the official tool to implement BDD on the .NET platform.
Behavior Driven development is the process of exploring, discovering, defining and driving the desired behavior of software system by using conversation, concrete examples and automated tests.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
How BDD with tools like Cucumber can create a stronger team, a better quality product, and ultimately a more useable API. Given at the #apistrat SF conference 10/24/2013
BDD (Behavior-driven development), also known as ATDD (Acceptance test–driven development) is a software development process that helps Agile teams design, develop, test and deliver software efficiently, it's about how to implement agile acceptance testing and binding business requirements to code. BDD helps to bridge the communication gap between stakeholders and implementation teams, build quality into software from the start, design, develop and deliver systems fit for purpose. SpecFlow is the official tool to implement BDD on the .NET platform.
Behavior Driven development is the process of exploring, discovering, defining and driving the desired behavior of software system by using conversation, concrete examples and automated tests.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
How BDD with tools like Cucumber can create a stronger team, a better quality product, and ultimately a more useable API. Given at the #apistrat SF conference 10/24/2013
Cucumber is a testing approach/tool and When integrated with Selenium4 forms a great combination as it allows you to write your tests quickly in an English-like language and Selenium allows you to run on various combinations of browsers. In this session, We will learn about BDD, Cucumber, and the advantages of Integrating them with Selenium.
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
Contents:
Behavior Driven Development (BDD)
Features of BDD
BDD Tools
BDD Framework
Examples of Cucumber/SpecFlow/BDD test
Gherkin – BDD Language
The Problem
Example of Gherkin
The Conclusion
SpecFlow Feature File
Keywords for the Feature File creation
This presentation provides an overview of a Test Automation Framework with BDD and Cucumber. It also includes several open-source initiatives that Rhoynar Software Consulting (www.rhoynar.com) has been working on in the fields of QA Automation and DevOps. Lastly, it also includes links to some of the open-source projects that you can use right now for your work.
- Continuous Integration Infra a la OpenStack - https://github.com/Rhoynar/ci-infra
- An Email Verification Library in Java:
https://github.com/Rhoynar/EmailVerify
- Automatic Test Generation using Selenium WebDriver, Java and TestNG
https://github.com/Rhoynar/AutoTestR
- Barebones BDD and Cucumber Framework integrated with Java Maven and TestNG:
https://github.com/Rhoynar/qa-automation
This power point presentation provides details on syntax of Gherkin language and how it can be used to write accurate user acceptance criteria for user stories.
Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a verification and validation process.
TYPES OF TESTING
There are many types of testing like
Unit Testing
Integration Testing
Functional Testing
System Testing
Stress Testing
Performance Testing
Usability Testing
Acceptance Testing
Regression Testing
Beta Testing
Cucumber is a tool which supports development via behavior realization (BDD - Behavior-Driven Development). It is considered to be utilized for creating the tests which can be understood by each and all, even without special technical knowledge.
(by QATestLab)
Cucumber is a testing approach/tool and When integrated with Selenium4 forms a great combination as it allows you to write your tests quickly in an English-like language and Selenium allows you to run on various combinations of browsers. In this session, We will learn about BDD, Cucumber, and the advantages of Integrating them with Selenium.
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
Contents:
Behavior Driven Development (BDD)
Features of BDD
BDD Tools
BDD Framework
Examples of Cucumber/SpecFlow/BDD test
Gherkin – BDD Language
The Problem
Example of Gherkin
The Conclusion
SpecFlow Feature File
Keywords for the Feature File creation
This presentation provides an overview of a Test Automation Framework with BDD and Cucumber. It also includes several open-source initiatives that Rhoynar Software Consulting (www.rhoynar.com) has been working on in the fields of QA Automation and DevOps. Lastly, it also includes links to some of the open-source projects that you can use right now for your work.
- Continuous Integration Infra a la OpenStack - https://github.com/Rhoynar/ci-infra
- An Email Verification Library in Java:
https://github.com/Rhoynar/EmailVerify
- Automatic Test Generation using Selenium WebDriver, Java and TestNG
https://github.com/Rhoynar/AutoTestR
- Barebones BDD and Cucumber Framework integrated with Java Maven and TestNG:
https://github.com/Rhoynar/qa-automation
This power point presentation provides details on syntax of Gherkin language and how it can be used to write accurate user acceptance criteria for user stories.
Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a verification and validation process.
TYPES OF TESTING
There are many types of testing like
Unit Testing
Integration Testing
Functional Testing
System Testing
Stress Testing
Performance Testing
Usability Testing
Acceptance Testing
Regression Testing
Beta Testing
Cucumber is a tool which supports development via behavior realization (BDD - Behavior-Driven Development). It is considered to be utilized for creating the tests which can be understood by each and all, even without special technical knowledge.
(by QATestLab)
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones that the client actually needs.
In this talk, we will discuss what BDD is about, its benefits, and how it affects teams and processes. We will discuss two case studies where BDD practices have been successfully introduced, including the benefits gained and challenges met. We will see how much benefit was gained when BDD was integrated into the broader development infrastructure, including issue tracking systems, requirements management, and project reporting.
We will also see how BDD can be applied to all levels of the development process, from requirements down to low-level coding. We will also look at the principle BDD tools available that can help teams implement executable specifications, BDD-style test automation, and living documentation effectively. Some of the tools discussed will include JBehave, Cucumber, Specflow, Jasmine and Spock.
We will also look at two case studies where BDD practices have been successfully integrated into several projects in large government and financial organizations. Teams that adopted BDD effectively benefited from significantly lower defect rates, much earlier discovery of errors and inconsistencies in the requirements, and better overall communication and collaboration within the team. However, practicing BDD does involve a significant change in mind-set compared to more traditional approaches, a different collaboration model between team members, and a high degree of stakeholder by-in and engagement, all of which should not be underestimated. We will discuss how the teams managed these various challenges during their BDD adoption story.
Annotated slides from my "Behavior Driven Development" course. Released under Creative Commons share-alike, commercial and derivatives allowed: http://creativecommons.org/licenses/by-sa/3.0/
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones the client actually needs.
Learn what BDD is, and what it is not
Understand that the core of BDD is around conversation and requirements discovery, not around tools.
Understand the difference and similarities between BDD at the requirements level, and BDD at the coding level.
Learn what BDD tools exist for different platforms, and when to use them
A common perception of behavior-driven development (BDD) focuses on test automation with Cucumber-style “Given..When..Then” scenarios. But this is just the tip of the iceberg: in fact BDD ranges from requirements discovery and description through to driving technical design and implementation; helping testers focus their testing efforts more effectively; and even providing reliable, useful, and accurate technical documentation.
This session discusses what BDD is about, its benefits, and how it affects development teams and processes. You will see how JVM teams can effectively implement BDD with tools such as JBehave, Cucumber, Thucydides, and Spock. Come learn how much more there is to BDD than just “Given..When..Then.”
Introduction to using SpecFlow tool for testing REST API. For beginners that are at least a bit familiar with test automation, and gives some details and hints.
New SharePoint Features in Visual Studio 2012!SPC Adriatics
Speaker: Paul J. Swider
The Visual Studio team has provided SharePoint developers with new templates and project items in the latest release of Visual Studio. Now developers have new templates and tools to enhance the developer experience within SharePoint 2010 and SharePoint 2013. In this session learn about compatibility, upgrading source code and what’s new with SharePoint development and Visual Studio 2012.
Whats new for developers in Visual Studio 2013Chris Dufour
There is a ton of new features available in Visual Studio 2013. In this session we will take a look at some of the new enhancements to the IDE including a look at the new “connected” IDE. We will then take a look at the editor productivity enhancements such as the new enhanced scrollbar, Peek Definition and CodeLens. In our final section, we’ll show off some of the cool things the .NET Framework 4.5.1 has enabled in Visual Studio 2013.
SSDN Technologies is Microsoft partner training institute of MCSA Windows server 2012 in Gurgaon, Delhi. We also provide mcsa windows server 410 lesson training by certified trainers in India.
Learn how to debug using visual debugger including breakpoints, stepping, skipping, and more with WSO2 Integration Studio. Additionally, the deck explores how to inspect and use wire logs to troubleshoot mediation flows.
Watch the webinar on-demand here - https://wso2.com/library/webinars/2019/06/debugging-integration-flows/
Staying connected: An Overview of Announcements from Microsoft’s Connect();dotNet Miami
On November 12th and 13th, Microsoft held a virtual developer event called Connect();. We'll review all of the highlights from the event and the surprising announcements that were made. And because I'm giving the presentation I'll also give my own unique view on the event.
Converting SAP Business Objects to a New Architecture SolutionDenodo
Watch full webinar here: https://buff.ly/3Lab4YE
Over the years, customers have implemented BI solutions using SAP Business Objects that span from departmental solutions to enterprise-wide deployments. For many customers, these BI solutions have been and are critical to the operations and management of the business. The users, through IT support, have become accustomed to ad-hoc reporting using Universes along tools like Web Intelligence and Crystal Reports. Based on recent news from SAP, these customers will now have to look for a alternate architectures that does not include traditional SAP Business Objects.
Join us for this session with Jose Benavides, Sr. Solutions Consultant, where will explore a modern solution that will provide business users with similar capabilities to what they have with SAP Business Objects. We’ll present a process for converting years of SAP Business Objects maturity to a new solution with minimal impact to your users.
Watch on-demand and Learn:
- Different options for converting SAP Business Objects to a new architecture solution.
- Recommended option for customers.
- Methodology for a conversion that includes acceleration, PoC, and partnerships.
Introduction to Module Development with Appcelerator TitaniumAaron Saunders
VIDEO: http://bit.ly/P1UlGr starts at 1:13
Overview of creating modules with Appcelerator Titanium. We integrate SkyhookWireless location SDK and Card.io mobile card sdk
Source:
Source code for ios cardio module presented at @codestrong http://bit.ly/PQlsW9
Source code for android skyhookwireless module presented at @codestrong http://bit.ly/z4zfdl
The Newest of the New with Visual Studio and TFS 2012Imaginet
By itself, Visual Studio 2012 included many compelling new features not available in prior releases. But Microsoft hasn’t stopped. Since the production release in August 2012, Microsoft has continued to release more new capabilities. In this session we’ll walk through some of the latest and greatest enhancements that you can use in your Visual Studio and TFS 2012 environment.
The Newest of the New with Visual Studio and TFS 2012Imaginet
By itself, Visual Studio 2012 included many compelling new features not available in prior releases. But Microsoft hasn’t stopped. Since the production release in August 2012, Microsoft has continued to release more new capabilities. In this session we’ll walk through some of the latest and greatest enhancements that you can use in your Visual Studio and TFS 2012 environment.
Unit Testing and Why it should be a pillar in your app development process.
This talk is built upon my previous "MVVM/Dependency Injection" talk: https://www.slideshare.net/yahyaSadiiq/mvvm-with-dependency-injection-189397414
Project: https://lnkd.in/giSK_jD
Learn how Acceptance Test Driven Development (ATDD) provides the process for capturing detailed requirements as acceptance criteria and turn them into as test cases before development begins using Behavior Driven Development (BDD). The BDD approach and Gherkin format is the language used to create easy to understand and actionable scenarios that map from the functional level to the components and units. We will discuss the different approaches to TDD including a realistic approach leveraging BDD to a purest standpoint where TDD use the tests to drive the design of the application. Finally understand how the tools in Visual Studio and Team foundation Server to support BDD such as SpecFlow (Cucumber in .NET), Refactoring tools, and Test Cases in MTM.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Bdd and spec flow
1. BDD with Visual Studio 2010,
SpecFlow and WATIN
Charles Nurse
Senior Architect, DotNetNuke Corp.
2. BDD with Visual Studio 2010, SpecFlow and WATIN
Who Am I
• ASP.NET MVP (since Jan 2007)
• ASPInsider (since Jan 2008)
• Senior Architect, DotNetNuke Corporation
• Web: www.dotnetnuke.com
• Blog: www.charlesnurse.com
• Email: charles.nurse@dnncorp.com
• Twitter: @cnurse
3. BDD with Visual Studio 2010, SpecFlow and WATIN
Agenda
• Intro to BDD
• Gherkins
• SpecFlow
• WatiN
4. BDD with Visual Studio 2010, SpecFlow and WATIN
Part I – Behavior Driven Development
• Developed by Dan North
• Response to some issues with TDD
Where to start
What to test and what not to test
How much to test in one go
What to call the tests
How to understand why a test fails
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
5. BDD with Visual Studio 2010, SpecFlow and WATIN
Part I – Behavior Driven Development
• Driven by Business Value
• Realized through the Interface (GUI)
• Tests are defined in a natural language (Gherkins)
6. BDD with Visual Studio 2010, SpecFlow and WATIN
Part I – Behavior Driven Development
• BDD Practices
Establish the goals of different stakeholders
Drawing out features which will achieve those goals using feature injection
Involve stakeholders through outside–in software development
Use examples to describe the behavior of the application
Automate those examples to provide feedback and regression testing
Use 'should' when describing the behavior of software
Use 'ensure' when describing responsibilities of software
Use mocks to stand-in for modules of code which have not yet been written
7. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 2 – Gherkins
• Natural Language definition of tests.
TDD – Arrange, Act, Assert
• Gherkin – Given, When, Then
Given – defines the conditions that must exits for the test to be run
When – defines the action a “user” will execute
Then – defines the expectations of the Test
• Gherkins Frameworks
Cucumber – Ruby
Lettuce – Python
Specflow - .NET
8. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 2 – Gherkins
• Example – "Refunded or exchanged items should be
returned to stock.“
• Customer, Product Manager, Developer or QA engineer
might clarify the requirements by breaking this down into
specific scenarios
• Scenario 1: Refunded items should be returned to stock
• Scenario 2: Replaced items should be returned to stock
9. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 2 – Gherkins
• Scenario 1: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
and I currently have three black sweaters left in stock
When he returns the sweater for a refund
Then I should have four black sweaters in stock
10. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 2 – Gherkins
• Scenario 2: Replaced items should be returned to stock
Given that a customer buys a blue garment
and I have two blue garments in stock
and three black garments in stock.
When he returns the garment for a replacement in black,
Then I should have three blue garments in stock
and two black garments in stock
11. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 2 – Gherkins
• Programmer-domain examples
• Example 1: New lists are empty
Given a new list
Then the list should be empty
• Example 2: Lists with things in them are not empty
Given a new list
When we add an object
Then the list should not be empty
12. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 3 – SpecFlow
• SpecFlow aims at bridging the communication gap between domain
experts and developers by binding business readable behavior
specifications to the underlying implementation.
SpecFlow.org
• Visual Studio Extension – to support Gherkin language
tests
www.specflow.org
https://github.com/techtalk/SpecFlow
• SpecFlow Demo
13. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 3 – SpecFlow
• Demo Summary
• Review of SpecFlow in VS 2010
Reviewed the Extension Manager Addin
Reviewed the Nuget Package (SpecFlow/NUnit) integration)
Added a SpecFlow Feature
Run SpecFlow Scenarios
Added Steps File
Updated Feature
Updated Steps File
14. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 4 – WatiN
• Browser Automation Framework
Web Application Testing in .NET
http://watin.org/
• Inspired by WatiR (Web Application Testing in Ruby)
• Supports IE (6+) or Firefox (2+)
• Licensed under Apache License 2.0
• Available as a Nuget package
15. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 4 – WatiN
• Automate all major HTML elements with ease
• Find elements by multiple attributes
• Native support for Page and Control model.
• Supports AJAX website testing
• Supports creating screenshots of webpages
• Supports frames (cross domain) and IFrames
16. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 4 – WatiN
• Handles popup dialogs like alert, confirm, login etc..
• Supports HTML dialogs (modal and modeless)
• Easy to integrate with your favorite (unit) test tool
• Can be used with any .Net Language
• Downloaded more than 120,000 times.
• Since its open source you can add/contribute new features
yourself!
17. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 4 – WatiN
• Demo
• Finish the Tests
18. BDD with Visual Studio 2010, SpecFlow and WATIN
Part 4 – WatiN
• Demo Summary
• Review of SpecFlow in VS 2010
Reviewed the Nuget Package (WatiN) integration)
Completed the SpecFlow Scenario
Added a second SpecFlow Scenario
Reviewed a real Scenario in a real Application
19. BDD with Visual Studio 2010, SpecFlow and WATIN
Next Steps
• Get Specflow
www.specflow.org
https://github.com/techtalk/SpecFlow
• Get WatiN
• http://watin.org/
20. BDD with Visual Studio 2010, SpecFlow and WATIN
Thank You
• Email: charles.nurse@dnncorp.com
• Blog: www.charlesnurse.com
• Twitter: @cnurse
BDD is driven by business value[6]; that is, the benefit to the business which accrues once the application is in production. The only way in which this benefit can be realized is through the user interface(s) to the application, usually (but not always) a GUI.In the same way, each piece of code, starting with the UI, can be considered a stakeholder of the other modules of code which it uses. Each element of code provides some aspect of behavior which, in collaboration with the other elements, provides the application behavior.The first piece of production code that BDD developers implement is the UI. Developers can then benefit from quick feedback as to whether the UI looks and behaves appropriately. Through code, and using principles of good design and refactoring, developers discover collaborators of the UI, and of every unit of code thereafter. This helps them adhere to the principle of YAGNI, since each piece of production code is required either by the business, or by another piece of code already written.BDD focuses on obtaining a clear understanding of desired software behavior through discussion with stakeholders. It extends TDD by writing test cases in a natural language that non-programmers can read. Behavior-driven developers use their native language in combination with the ubiquitous language of domain-driven design to describe the purpose and benefit of their code. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management, etc
Establishing the goals of different stakeholders required for a vision to be implementedDrawing out features which will achieve those goals using feature injectionInvolving stakeholders in the implementation process through outside–in software developmentUsing examples to describe the behavior of the application, or of units of codeAutomating those examples to provide quick feedback and regression testingUsing 'should' when describing the behavior of software to help clarify responsibility and allow the software's functionality to be questionedUsing 'ensure' when describing responsibilities of software to differentiate outcomes in the scope of the code in question from side-effects of other elements of code.Using mocks to stand-in for collaborating modules of code which have not yet been written