functional testing - carlos vences

20
Functional Testing @cvences Thursday, April 24, 14

Upload: carlos-vences

Post on 27-Jun-2015

275 views

Category:

Software


2 download

DESCRIPTION

Functional Testing for Symfony2

TRANSCRIPT

Page 1: Functional Testing - Carlos Vences

Functional Testing@cvences

Thursday, April 24, 14

Page 2: Functional Testing - Carlos Vences

About Me

• Carlos Vences

[email protected]

• WebOps Engineer @ Semantic Weapons

• 12+ yo experienced troublemaker

• #DrupalCampMX #dcmx14 #SymfonyDay

Thursday, April 24, 14

Page 3: Functional Testing - Carlos Vences

TDD Quick Intro

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 4: Functional Testing - Carlos Vences

Test, test, test...• Product Backlog

• Poker Planning

• User Stories!

• Acceptance Criteria

• Task Estimation

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 5: Functional Testing - Carlos Vences

Test Automation• Decoupling!

• Mocks define expectations

• Stubs replace behavior

• I&T

• Verification & Validation

• System Testing

• ...validates against requirements

• Describes what the system does...

• ...verifies against specification

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 6: Functional Testing - Carlos Vences

Why?

• Best Test Coverage

• Mimics Functional QA

• Write against client approved User Stories

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 7: Functional Testing - Carlos Vences

Symfony2 Functional Testing

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 8: Functional Testing - Carlos Vences

• Test URL’s

• Assert on HTTP responses

• extends WebTestCase

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 9: Functional Testing - Carlos Vences

Behavior Driven DevelopmentLet’s Spice it up!

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 10: Functional Testing - Carlos Vences

Behat Extension• Describes a feature

• Can be estimated

• Inspired by Cucumber & Gherkin

• Feature, Scenario, Conditions

• In Order to [BV]

• As a [Role]

• I need to [Feature]

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 11: Functional Testing - Carlos Vences

Behat Scenarios• Given [Initial context]

• And [initial state]

• When [Action]

• Then [Result]

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 12: Functional Testing - Carlos Vences

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 13: Functional Testing - Carlos Vences

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 14: Functional Testing - Carlos Vences

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 15: Functional Testing - Carlos Vences

Epic Fail!

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 16: Functional Testing - Carlos Vences

Tools

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 17: Functional Testing - Carlos Vences

Tools• BrowserKit

• Guzzle HTTP client

• DOM Crawler

• XPath

• TestComplete

• Gherkin

• Mink

• Selenium

• Watir

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 18: Functional Testing - Carlos Vences

Hints

http://semantic.mx SymfonyDay DF, 2014

Thursday, April 24, 14

Page 19: Functional Testing - Carlos Vences

Hints

http://semantic.mx SymfonyDay DF, 2014

• followRedirect

• Test DOM not Visual Designs

• In memory SQLite

• Shared DB connection

• DBUnit

• More Setup less TearDown

• Authentication

Thursday, April 24, 14

Page 20: Functional Testing - Carlos Vences

Thanks!Do nothing until you test first!

[email protected] SymfonyDay DF, 2014

Thursday, April 24, 14