Ross Boucher - Quality Control: Testing and debugging your apps

1,724 views

Published on

Developers have long been able to use an array of debugging, profiling and other testing tools to ensure application quality and performance. More recently, web developers have started to rely on increasingly sophisticated tools to help test their web sites and applications. But particularly in the mobile space, when developing sophisticated applications with web technologies, testing presents significant challenges.

Ross Boucher, one of the developers of Objective-J, the Cappuccino web application framework, the visual development tool Atlas, and 280 slides knows a thing or two about testing sophisticated applications developed using web technologies. In this session, he’ll share some of those secretes, and help you better test and debug your applications.



Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,724
On SlideShare
0
From Embeds
0
Number of Embeds
473
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ross Boucher - Quality Control: Testing and debugging your apps

  1. 1. TESTING & DEBUGGING MOBILE WEB APPS<br />WEB DIRECTIONS <br />UNPLUGGED<br />SEATTLE, 2011<br />
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7. UNIFIED WORKFLOW<br />
  8. 8. alert()<br />
  9. 9. I suspect that most JavaScript developers out there are a lot like me... We want to be able to pause our scripts, look at the call stack, and step through them one line at a time, but it's easier to just use "alert debugging" than to fire up a big clunky debugger.<br />- JOE HEWITT, 2006<br />
  10. 10. console.log()<br />
  11. 11.
  12. 12. <ul><li>console.
  13. 13. log()
  14. 14. warn()
  15. 15. error()
  16. 16. copy()
  17. 17. inspect()
  18. 18. $0, $1, $2, $3</li></li></ul><li>ELEMENT INSPECTOR<br />
  19. 19. RESOURCE INSPECTOR<br />
  20. 20. NETWORK INSPECTOR<br />
  21. 21. JAVASCRIPT DEBUGGER<br />
  22. 22. PAGE<br />TIMELINE<br />
  23. 23. JAVASCRIPT PROFILER<br />
  24. 24. F0<br />1<br />aFunction<br />F1<br />9<br />1<br />F2<br />7<br />1<br />1<br />78<br />8<br />
  25. 25. F0<br />1<br />aFunction<br />F1<br />9<br />1<br />F2<br />7<br />1<br />1<br />78<br />8<br />
  26. 26. aFunction<br />88<br />8<br />78<br />1<br />1<br />aFunction<br />F2<br />F1<br />F0<br />78<br />1<br />8<br />8<br />
  27. 27. aFunction<br />88<br />8<br />1<br />1<br />78<br />F1<br />78<br />1<br />8<br />8<br />
  28. 28. MEMORY PROFILER<br />
  29. 29. PAGE AUDITS<br />
  30. 30. STILL NOT A MOBILE DEVICE<br />
  31. 31. USER AGENT FAKING<br />
  32. 32.
  33. 33. WINDOW RESIZING<br />
  34. 34. TOUCH EVENT FAKING<br />
  35. 35. TRANSFORM ON DEVICE<br />
  36. 36. TRANSFORM ON DESKTOP<br />
  37. 37. MULTI-TOUCH FAKING<br />
  38. 38. STILL NOT A MOBILE DEVICE<br />
  39. 39. MOBILE SIMULATORS<br />
  40. 40. DASHCODE<br />
  41. 41. STILL NOT A MOBILE DEVICE<br />
  42. 42. OK, LET'S TRY ON A REAL DEVICE<br />
  43. 43. console.log()<br />
  44. 44.
  45. 45. WEINRE<br />
  46. 46. http://github.com/<br />senchalabs/android-tools<br />
  47. 47. CHARLES PROXY<br />
  48. 48. AUTOMATED TESTING<br />
  49. 49. CONTINUOUS INTEGRATION<br />
  50. 50. TIERED APPROACH<br />
  51. 51. 1) LOGIC ONLY<br />
  52. 52. 2) SELENIUM (etc) + DESKTOP BROWSERS<br />
  53. 53. 3) SELENIUM (etc) + MOBILE SIMULATORS<br />
  54. 54. 4) SELENIUM (etc) + MOBILE DEVICES<br />
  55. 55. ALL OF THE OTHER THINGS<br />
  56. 56. Thanks.<br />@boucher • rboucher@gmail.com<br />

×