Slide 1

Slide 1 text

Complex clientside apps and legacy browsers (a story of frustration) ! @Joe8Bit  –  Friday  19th  of  Apr  2013  

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

•  Frameworks and tools"

Slide 4

Slide 4 text

•  Frameworks and tools" •  Refining User Experience"

Slide 5

Slide 5 text

•  Frameworks and tools" •  Refining User Experience" •  The JScript JavaScript engine (and why I want to stab it with a fork)"

Slide 6

Slide 6 text

•  Frameworks and tools" •  Refining User Experience" •  The JScript JavaScript engine (and why I want to stab it with a fork)" •  Testing, testing and more testing"

Slide 7

Slide 7 text

•  Frameworks and tools" •  Refining User Experience" •  The JScript JavaScript engine (and why I want to stab it with a fork)" •  Testing, testing and more testing" •  The role of jQuery and other libraries"

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

•  Frameworks and tools" •  Refining User Experience" •  The JScript JavaScript engine (and why I want to stab it with a fork)" •  Testing, testing and more testing" •  The role of jQuery and other libraries"

Slide 10

Slide 10 text

•  Frameworks and tools" •  Refining User Experience" •  The JScript JavaScript engine (and why I want to stab it with a fork)" •  Testing, testing and more testing" •  The role of jQuery and other libraries"

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Part one: Testing" Joe  Pe:ersson  –  Friday  19th  of  Apr  2013  

Slide 16

Slide 16 text

Part one: Testing" •  Local testing and development environments" •  Distributed unit and integration testing"

Slide 17

Slide 17 text

Part one: Testing – Ruby, *nix et al" •  Ruby/Rails" •  *nix dev environment"

Slide 18

Slide 18 text

Two approaches…" Buy or Build!

Slide 19

Slide 19 text

Part one: Testing" Local testing and development environments!

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

IE  VM’s  from  @xdissent   h:ps://github.com/xdissent/ievms  

Slide 22

Slide 22 text

PROTIP   Put  downloaded  raw  disk  images  in  ~/.ievms/     on  any  device  to  prevent  having  to  download   them  again  on  that  machine  

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Part one: Testing - Local testing and development environments
 " Pseudo-­‐distributed  browser  tesIng  with  Selenium  and   Virtual  Machines  !

Slide 27

Slide 27 text

“Selenium is a suite of tools to automate web browsers across many platforms.”" http://www.seleniumhq.org/!

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Starting stand alone Selenium in ‘hub’ mode:" $  java  -­‐jar  selenium-­‐server-­‐standalone.jar  -­‐role  hub     Starting stand alone Selenium in ‘hub’ mode:" $  java  -­‐jar  selenium-­‐server-­‐standalone.jar  -­‐role   webdriver  –hub  http://0.0.1.1    

Slide 30

Slide 30 text

Part one: Testing - Local testing and development environments
 " Pseudo-­‐distributed  browser  tesIng  with  Selenium  and   Virtual  Machines  ! Running  Tests!

Slide 31

Slide 31 text

Not  an  official  project  logo.  But  it  should  be.   h:ps://github.com/jnicklas/capybara  

Slide 32

Slide 32 text

Configuring Capybara!

Slide 33

Slide 33 text

Integration tests take a while, especially when running them in multiple environments’ ! Unfortunate truth!

Slide 34

Slide 34 text

Local  TesEng    

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Selenium  Jenkins  plugin   h:ps://wiki.jenkins-­‐ci.org/display/JENKINS/Selenium+Plugin    

Slide 37

Slide 37 text

?"

Slide 38

Slide 38 text

So,  what  if  that  is  too  much  effort?  What  if  I   don’t  have  the  Eme  or  the  desire?  

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

•  Easy, fast setup" •  Loads of easy integrations " •  Scalability and parallelisation" •  Great support"

Slide 42

Slide 42 text

Integrating Saucelabs distributed testing in a Rails project ! 1.  Add jasmine-sauce to your Gemfile   2. bundle  install   3. bundle  exec  sauce  config   4. rails  generate  sauce:jasmine   5. rake  jasmine:ci:sauce  

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

Part one: Testing" Joe  Pe:ersson  –  Friday  19th  of  Apr  2013  

Slide 45

Slide 45 text

“1.3.1  should  support  IE6  (we  dropped  our  IE  test  suite  awhile  ago   because  it  was  difficult  to  maintain,  and  we  lost  a  bit  of  insight  into   whether  or  not  IE6  would  run  without  errors).  I  think  we  dropped  IE6   support  in  the  upcoming  2.0  branch  as  IE6  has  been  EOLed.”     h:ps://github.com/pivotal/jasmine/issues/327    

Slide 46

Slide 46 text

Part two: The role of jQuery and other libraries" Joe  Pe:ersson  –  Friday  19th  of  Apr  2013  

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

Thanks!!

Slide 52

Slide 52 text

@Joe8bit!