2012 regina TC - 103 quality driven
Upcoming SlideShare
Loading in...5
×
 

2012 regina TC - 103 quality driven

on

  • 516 views

Presentation done at Regina Technical Community

Presentation done at Regina Technical Community

Statistics

Views

Total Views
516
Views on SlideShare
516
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

2012 regina TC - 103 quality driven 2012 regina TC - 103 quality driven Presentation Transcript

  • AMIR BARYLKO QUALITY DRIVEN USING BDD + TDDAmir Barylko - Quality Driven MavenThought Inc.
  • TESTING Why Testing? Unit tests TDD Integration Tests Acceptance TestsAmir Barylko - Quality Driven MavenThought Inc.
  • REALITY CHECK • It is impossible to gather all the requirements at the beginning of a project. • Whatever requirements you do gather are guaranteed to change. • There will always be more to do than time and money will allow.Amir Barylko - Quality Driven MavenThought Inc. View slide
  • NO MORE EXCUSES • It works on my computer! • It was like that when I got here! • The previous developer didn’t know XXXX! • We need a satellite connection in order to run it! • We can’t reproduce the error! • We can’t test that!Amir Barylko - Quality Driven MavenThought Inc. View slide
  • UNIT TESTING • Test for a class or method • No dependencies • Should use mocking • Small • ClearAmir Barylko - Quality Driven MavenThought Inc.
  • TDD • First write a test that fails (RED) • Write code to make it pass (GREEN) • Check if code can be improved (REFACTOR) • Start again until it’s doneAmir Barylko - Quality Driven MavenThought Inc.
  • BENEFITS OF TDD • Prove that your code • Regression tests as works byproduct • Avoid waste • Makechanges with (debugging) confidence • Increment code quality • Bring back the joy of coding! • Better designAmir Barylko - Quality Driven MavenThought Inc.
  • WHEN TDD IS NOT ENOUGH •Legacy Code •Refactoring is not viable •Verify functionality across layers •Validate feature end to endAmir Barylko - Quality Driven MavenThought Inc.
  • INTEGRATION TEST •More than one class •Still some parts can be mocked •Partial functionality of subsystemAmir Barylko - Quality Driven MavenThought Inc.
  • ACCEPTANCE TEST •Black box testing •Crossing all layers •Should cover all scenarios •External subsystems may be mockedAmir Barylko - Quality Driven MavenThought Inc.
  • SOFTWARE QUALITY What is it? Low Quality Classic QAAmir Barylko - Quality Driven MavenThought Inc.
  • WHAT DOES IT MEAN? • Better code? • Faster delivery? • Less bugs? • Make sure we deliver the right thing? • Better Processes?Amir Barylko - Quality Driven MavenThought Inc.
  • LOW QUALITY • Lack of testing • Lack of communication • Lack of metrics • Lack of traceability • Wrong toolsAmir Barylko - Quality Driven MavenThought Inc.
  • CLASSIC QA • Team separated from developments • Follow scripts or requirements • Done after the feature is implemented • May have more than one project in the queue • Feedback cycle may take weeks • Manual (no automation)Amir Barylko - Quality Driven MavenThought Inc.
  • DOES IT WORK? •Your opinion here......Amir Barylko - Quality Driven MavenThought Inc.
  • A NEW CONCEPT Feature First Benefits Outside In Approach Runnable features RolesAmir Barylko - Quality Driven MavenThought Inc.
  • FEATURE FIRST • Write the feature before implementation • Developers will implement feature using TDD • QA will validate against feature • Repeat until all features are doneAmir Barylko - Quality Driven MavenThought Inc.
  • BENEFITS • Focus on the feature • Testing all the way • Traceability • Quality every step of the processAmir Barylko - Quality Driven MavenThought Inc.
  • OUTSIDE IN APPROACH Red BDD Red Refactor Refactor TDD Green GreenAmir Barylko - Quality Driven MavenThought Inc.
  • RUNNABLE FEATURES • Features describe functionality • What if we could run them? • Then features would validate functionality • Becoming live documentationAmir Barylko - Quality Driven MavenThought Inc.
  • ROLES • Who writes the feature? • Who implements the feature? • Who validates the feature? • What’s the role of QA, PM, etc?Amir Barylko - Quality Driven MavenThought Inc.
  • WRITING FEATURES Gherkin Syntax Feature Scenario StepsAmir Barylko - Quality Driven MavenThought Inc.
  • GHERKIN DSL • Business readable DSL • Flush out requirements • Documentation • Automated testing • Used by Cucumber, SpecFlow, jBehaveAmir Barylko - Quality Driven MavenThought Inc.
  • SYNTAX Feature: Listing movies As a User I want to list movies So I can see the contents of the library Scenario: Browse available movies Given I have the following movies When I go to "Movies" Then I should see in the listingAmir Barylko - Quality Driven MavenThought Inc.
  • FEATURES • Keyword Feature • The rest is free text Feature: Listing movies As a User I want to list movies So I can see the contents of the libraryAmir Barylko - Quality Driven MavenThought Inc.
  • SCENARIOS • Each feature file can have multiple scenarios • Each scenario can contain multiple steps • Keywords: • Given When Then • And Not ButAmir Barylko - Quality Driven MavenThought Inc.
  • STEPS Scenario: Browse available movies Given I have some movies When I go to the listing page Then I should see all the moviesAmir Barylko - Quality Driven MavenThought Inc.
  • DEMOAmir Barylko - Quality Driven MavenThought Inc.
  • QUESTIONS?Amir Barylko - Quality Driven MavenThought Inc.