Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Upcoming SlideShare
Loading in...5
×
 

Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls

on

  • 4,165 views

 

Statistics

Views

Total Views
4,165
Views on SlideShare
562
Embed Views
3,603

Actions

Likes
0
Downloads
2
Comments
0

8 Embeds 3,603

http://cocoaheads.fr 3570
http://feedly.com 20
http://feeds.feedburner.com 7
http://www.ekito.fr 2
https://twitter.com 1
http://dbhome.no-ip.biz 1
https://www.google.be 1
http://translate.googleusercontent.com 1
More...

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

Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls Presentation Transcript

  • specification & test avec Calabash / Cucumber
  • ce slide a été testé mais n’est pas présentable
  • Spec et Test agile
 sur un projet Mobile @airfrance • au démarrage : une story qui décoiffe (tableau excel inside) • du destop • et un peu de ruby ... très attirant mois plus tard : demo de • quelques story (avec dance du slip) la même
  • #SbE
  • les tests deviennent une responsabilité collective #SbE les tests sont les spécifications les tests sont automatisés chaque modification est facilement testable test en continue en IC
  • #BDD
  • déclaration comportementale plutot que UI tests compréhensible par tout le monde #BDD faciles à écrire et à maintenir Spécification par l’exemple
  • specify help to design no regression tests learn
  • • Cucumber (cukes.info)! Le standard sur les tests agiles BDD (behavior Driven Development)! Open source, free et très forte communauté! • Calabash (calaba.sh)! Permet cucumber sur mobile iOS et Android! Open Source, free et forte communauté! Lien avec des service pro, ex: tests sur le cloud! (http://xamarin.com/test-cloud)
  • good Feature:(Comments(In(order(to(contribute(to(the(discussion(As(a(reader(I( want(to(be(able(to(add(a(comment( Scenario:(User(not(logged(in(( Given(I(am(not(logged(in(( When(I(go(to(comment(on(a(submission(( Then(I(should(be(prompted(to(log(in!
  • not good Scenario:!User!logged!in,!but!cancels!comment!form!! Given!the!app!is!running!When!I!touch!"Profile"!! Then!I!wait!to!see!"Login"!! Then!I!fill!in!“Username”!with!"my_username"!! Then!I!touch!“Password”!! Then!I!fill!in!“Password”!with!"my_password"!! Then!I!touch!done!! Then!I!wait!to!see!"Logout"!! Then!I!touch!"Home"!! Then!I!touch!list!item!number!1!! Then!I!touch!"reply"!! Then!I!touch!"Cancel"!! Then!I!should!see!"Submission"
  • predefine steps Then!I!touch!"accLabel"! Then!I!go!back! Then!I!touch!the!"login"!button! Then!I!swipe!left! Then!I!touch!button!number!1! Then!I!swipe!left!on!number!2! Then!I!touch!the!"placeholder"!input!field! Then!I!swipe!left!on!number!2!at!x!20!and!y!10! Then!I!touch!list!item!number!1! Then!I!swipe!left!on!"accLabel"! Then!I!toggle!the!switch! Then!I!swipe!on!cell!number!2! Then!I!toggle!the!"accLabel"!switch! Then!I!pinch!to!zoom!in! Then!I!touch!done! Then!I!pinch!to!zoom!in!on!"accLabel"! Then!I!touch!search! Then!I!touch!the!user!location! Then!I!touch!on!screen!100!from!the!left!and!250!from!the!top! Then!I!scroll!down! Then!I!scroll!down!on!"accLabel"! Then!I!playback!recording!"mytouch"! Then!I!enter!"text!to!write"!into!the!"placeholder"!input!field! Then!I!rotate!device!left! Then!I!fill!in!"placeholder"!with!"text!to!write"! Then!I!enter!"text"!into!input!field!number!1! Then!I!clear!"placeholder"! Then!I!wait!to!see!"text!or!label"! Then!I!should!see!"text!or!label"! Then!I!should!see!a!"login"!button! Then!I!should!see!text!starting!with!"prefix"! Then!I!wait!until!I!don't!see!"text!or!label"! Then!I!should!see!text!containing!"sub!text"! Then!I!wait!for!the!"login"!button!to!appear! Then!I!should!see!text!ending!with!"suffix"! Then!I!wait!to!see!a!navigation!bar!titled!"title"! Then!I!see!2!input!fields! Then!I!wait!for!the!"label"!input!field! Then!I!should!see!a!"Username"!input!field! Then!I!wait!for!2!input!fields! Then!I!should!not!see!a!"Username"!input!field! Then!I!wait! Then!I!should!see!a!map! ! Then!I!should!see!the!user!location!
  • pourquoi pas un peu de ruby https://www.google.fr/search?q=ruby
  • step definition Given(/^I(am(logged(in(as("([^"]*)"$/(do(|username|(( macro(I(touch("Profile"(( if(element_exists("button(marked:Logout")(( sleep(1)(( else(( macro(%Q[I(fill(in(“Username”(with("#{username}"](( macro(I(touch(“Password”(( macro(I(fill(in(“Password”(with("my_password"(( macro(I(touch(done(( macro(I(wait(to(see("Logout"(( end( end!
  • exemple...
  • ça demande une personne à 100%