Testing Blog

Taming the Beast (a.k.a. how to test AJAX applications) : Part 1

sexta-feira, junho 13, 2008
Share on Twitter Share on Facebook
Google
Etiquetas: John Thomas , Markus Clermont

6 comentários :

  1. Shrini Kulkarni15 de junho de 2008 às 10:19:00 GMT-7

    Somehow, personally I am disppointed with Part 1 - that aims at explaining philosophies around web application testing in "right" way and ended up in making very generic statements/suggestions like

    (Looked more like a FAQ about Testing (not even web app testing))


    " Explore the system's functionalityIdentify the system's architectureIdentify the interfaces between componentsIdentify dependencies and fault conditionsFor each function:Identify the participating componentsIdentify potential problemsTest in isolation for problemsCreate a 'happy path' test

    Invest in integration tests (identify the smallest sub-system)Separation of Concerns (don't do the set-up through the interface you are testing)Test each interface separately (mock out everything that you are not testing)Consider dependencies in production (figure out how dependencies can fail, and test that)

    May be articulation was not appropriate ...

    Hope to see something really "thought" provoking in Part 2 (in line with what techies normally expect with Google)

    Shrini

    ResponderEliminar
    Respostas
      Responder
  2. Kristian J.16 de junho de 2008 às 08:20:00 GMT-7

    Interesting. I look forward to seeing more regarding your example application and how to test it.

    ResponderEliminar
    Respostas
      Responder
  3. Unknown20 de junho de 2008 às 05:16:00 GMT-7

    Could you eventually provide a downloadable pdf document as you did with previous posts :) ?
    Thanks

    ResponderEliminar
    Respostas
      Responder
  4. eValid22 de junho de 2008 às 12:40:00 GMT-7

    Interesting post, and yes we certainly agree that AJAX web applications can be quite difficult to test.

    But the picture you seem to paint is rather bleak, and it need not be.

    The situation for testing an AJAX application is actually easier than you may think, provide that you have the right tools and by using their underlying technology base can "do the right things" at the right time.

    * To overcome the expense of creating functional tests it makes sense to have a good test recorder, which takes away most of the pain of creating tests.

    * Tests can be brittle, so you should have some kind of functional test playback feature than automatically adapts the bahavior of the playback engine to overcome inconsequential changes in the pages tested.

    * To split out tests of individual features you need some kind of CallScript capability that lets you organize your tests easily into groups of related functionality.

    But you are dealing with AJAX -- and it seems that you left out the most important aspect of all: test synchronization. Tests of AJAX type applications scream out for playback synchronization -- but not by adding Waits or Delays or Sleeps that never work in practice. There has to be a way built into your playback engine to interact with the DOM of the page and sense when it is OK to continue playback.

    We believe if you have the right facilities in the test engine the functional testing job for an AJAX application can produce very good results.

    ResponderEliminar
    Respostas
      Responder
  5. Shrini Kulkarni3 de julho de 2008 às 01:01:00 GMT-7

    When is Part 2 coming ...?

    Waiting ...

    Shrini

    ResponderEliminar
    Respostas
      Responder
  6. Kristian J.17 de julho de 2008 às 10:29:00 GMT-7

    It might also be good to mention other test categories as well that relate to this such as: security, performance, etc... I look forward to Part II.

    ResponderEliminar
    Respostas
      Responder
Adicionar comentário
Carregar mais...

The comments you read and contribute here belong only to the person who posted them. We reserve the right to remove off-topic comments.

  

Labels


  • TotT 114
  • GTAC 61
  • James Whittaker 42
  • Misko Hevery 32
  • Code Health 31
  • Anthony Vallone 27
  • Patrick Copeland 23
  • Jobs 18
  • Andrew Trenk 13
  • C++ 11
  • Patrik Höglund 8
  • JavaScript 7
  • Allen Hutchison 6
  • George Pirocanac 6
  • Zhanyong Wan 6
  • Harry Robinson 5
  • Java 5
  • Julian Harty 5
  • Adam Bender 4
  • Alberto Savoia 4
  • Ben Yu 4
  • Erik Kuefler 4
  • Philip Zembrod 4
  • Shyam Seshadri 4
  • Chrome 3
  • Dillon Bly 3
  • John Thomas 3
  • Lesley Katzen 3
  • Marc Kaplan 3
  • Markus Clermont 3
  • Max Kanat-Alexander 3
  • Sonal Shah 3
  • APIs 2
  • Abhishek Arya 2
  • Alan Myrvold 2
  • Alek Icev 2
  • Android 2
  • April Fools 2
  • Chaitali Narla 2
  • Chris Lewis 2
  • Chrome OS 2
  • Diego Salas 2
  • Dori Reuveni 2
  • Jason Arbon 2
  • Jochen Wuttke 2
  • Kostya Serebryany 2
  • Marc Eaddy 2
  • Marko Ivanković 2
  • Mobile 2
  • Oliver Chang 2
  • Simon Stewart 2
  • Stefan Kennedy 2
  • Test Flakiness 2
  • Titus Winters 2
  • Tony Voellm 2
  • WebRTC 2
  • Yiming Sun 2
  • Yvette Nameth 2
  • Zuri Kemp 2
  • Aaron Jacobs 1
  • Adam Porter 1
  • Adam Raider 1
  • Adel Saoud 1
  • Alan Faulkner 1
  • Alex Eagle 1
  • Amy Fu 1
  • Anantha Keesara 1
  • Antoine Picard 1
  • App Engine 1
  • Arham Jain 1
  • Ari Shamash 1
  • Arif Sukoco 1
  • Bartosz Papis 1
  • Benjamin Pick 1
  • Bob Nystrom 1
  • Bruce Leban 1
  • Carlos Arguelles 1
  • Carlos Israel Ortiz García 1
  • Cathal Weakliam 1
  • Chris Kennelly 1
  • Christopher Semturs 1
  • Clay Murphy 1
  • Dagang Wei 1
  • Dan Maksimovich 1
  • Dan Shi 1
  • Dan Willemsen 1
  • Dave Chen 1
  • Dave Gladfelter 1
  • David Bendory 1
  • David Mandelberg 1
  • Derek Snyder 1
  • Diego Cavalcanti 1
  • Dmitry Vyukov 1
  • Eduardo Bravo Ortiz 1
  • Ekaterina Kamenskaya 1
  • Elliott Karpilovsky 1
  • Elliotte Rusty Harold 1
  • Espresso 1
  • Felipe Sodré 1
  • Francois Aube 1
  • Gene Volovich 1
  • Google+ 1
  • Goran Petrovic 1
  • Goranka Bjedov 1
  • Hank Duan 1
  • Havard Rast Blok 1
  • Hongfei Ding 1
  • Jason Elbaum 1
  • Jason Huggins 1
  • Jay Han 1
  • Jeff Hoy 1
  • Jeff Listfield 1
  • Jessica Tomechak 1
  • Jim Reardon 1
  • Joe Allan Muharsky 1
  • Joel Hynoski 1
  • John Micco 1
  • John Penix 1
  • Jonathan Rockway 1
  • Jonathan Velasquez 1
  • Josh Armour 1
  • Julie Ralph 1
  • Kai Kent 1
  • Kanu Tewary 1
  • Karin Lundberg 1
  • Kaue Silveira 1
  • Kevin Bourrillion 1
  • Kevin Graney 1
  • Kirkland 1
  • Kurt Alfred Kluever 1
  • Kyle Freeman 1
  • Manjusha Parvathaneni 1
  • Marek Kiszkis 1
  • Marius Latinis 1
  • Mark Ivey 1
  • Mark Manley 1
  • Mark Striebeck 1
  • Matt Lowrie 1
  • Meredith Whittaker 1
  • Michael Bachman 1
  • Michael Klepikov 1
  • Mike Aizatsky 1
  • Mike Wacker 1
  • Mona El Mahdy 1
  • Nimit Khandelwal 1
  • Noel Yap 1
  • Palak Bansal 1
  • Patricia Legaspi 1
  • Per Jacobsson 1
  • Peter Arrenbrecht 1
  • Peter Spragins 1
  • Phil Norman 1
  • Phil Rollet 1
  • Pooja Gupta 1
  • Project Showcase 1
  • Radion Khait 1
  • Radoslav Vasilev 1
  • Rahul Singal 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roman Govsheev 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Saicharan Nimmala 1
  • Sam Lee 1
  • Sean Jordan 1
  • Sebastian Dörner 1
  • Shahar Roth 1
  • Sharon Zhou 1
  • Shiva Garg 1
  • Siddartha Janga 1
  • Simran Basi 1
  • Stan Chan 1
  • Stephen Ng 1
  • Tejas Shah 1
  • Test Analytics 1
  • Test Engineer 1
  • Tim Lyakhovetskiy 1
  • Tom O'Neill 1
  • Vojta Jína 1
  • Zhe Lu 1
  • automation 1
  • dead code 1
  • iOS 1
  • mutation testing 1


Archive


  • ►  2026 (8)
    • ►  out. (1)
    • ►  jul. (1)
    • ►  jun. (1)
    • ►  mai. (2)
    • ►  abr. (1)
    • ►  mar. (2)
  • ►  2025 (3)
    • ►  out. (1)
    • ►  set. (1)
    • ►  jan. (1)
  • ►  2024 (13)
    • ►  dez. (1)
    • ►  out. (1)
    • ►  set. (1)
    • ►  ago. (1)
    • ►  jul. (1)
    • ►  mai. (3)
    • ►  abr. (3)
    • ►  mar. (1)
    • ►  fev. (1)
  • ►  2023 (14)
    • ►  dez. (2)
    • ►  nov. (2)
    • ►  out. (5)
    • ►  set. (3)
    • ►  ago. (1)
    • ►  abr. (1)
  • ►  2022 (2)
    • ►  fev. (2)
  • ►  2021 (3)
    • ►  jun. (1)
    • ►  abr. (1)
    • ►  mar. (1)
  • ►  2020 (8)
    • ►  dez. (2)
    • ►  nov. (1)
    • ►  out. (1)
    • ►  ago. (2)
    • ►  jul. (1)
    • ►  mai. (1)
  • ►  2019 (4)
    • ►  dez. (1)
    • ►  nov. (1)
    • ►  jul. (1)
    • ►  jan. (1)
  • ►  2018 (7)
    • ►  nov. (1)
    • ►  set. (1)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  mai. (1)
    • ►  fev. (1)
  • ►  2017 (17)
    • ►  dez. (1)
    • ►  nov. (1)
    • ►  out. (1)
    • ►  set. (1)
    • ►  ago. (1)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  mai. (3)
    • ►  abr. (2)
    • ►  fev. (1)
    • ►  jan. (2)
  • ►  2016 (15)
    • ►  dez. (1)
    • ►  nov. (2)
    • ►  out. (1)
    • ►  set. (2)
    • ►  ago. (1)
    • ►  jun. (2)
    • ►  mai. (3)
    • ►  abr. (1)
    • ►  mar. (1)
    • ►  fev. (1)
  • ►  2015 (14)
    • ►  dez. (1)
    • ►  nov. (1)
    • ►  out. (2)
    • ►  ago. (1)
    • ►  jun. (1)
    • ►  mai. (2)
    • ►  abr. (2)
    • ►  mar. (1)
    • ►  fev. (1)
    • ►  jan. (2)
  • ►  2014 (24)
    • ►  dez. (2)
    • ►  nov. (1)
    • ►  out. (2)
    • ►  set. (2)
    • ►  ago. (2)
    • ►  jul. (3)
    • ►  jun. (3)
    • ►  mai. (2)
    • ►  abr. (2)
    • ►  mar. (2)
    • ►  fev. (1)
    • ►  jan. (2)
  • ►  2013 (16)
    • ►  dez. (1)
    • ►  nov. (1)
    • ►  out. (1)
    • ►  ago. (2)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  mai. (2)
    • ►  abr. (2)
    • ►  mar. (2)
    • ►  jan. (2)
  • ►  2012 (11)
    • ►  dez. (1)
    • ►  nov. (2)
    • ►  out. (3)
    • ►  set. (1)
    • ►  ago. (4)
  • ►  2011 (39)
    • ►  nov. (2)
    • ►  out. (5)
    • ►  set. (2)
    • ►  ago. (4)
    • ►  jul. (2)
    • ►  jun. (5)
    • ►  mai. (4)
    • ►  abr. (3)
    • ►  mar. (4)
    • ►  fev. (5)
    • ►  jan. (3)
  • ►  2010 (37)
    • ►  dez. (3)
    • ►  nov. (3)
    • ►  out. (4)
    • ►  set. (8)
    • ►  ago. (3)
    • ►  jul. (3)
    • ►  jun. (2)
    • ►  mai. (2)
    • ►  abr. (3)
    • ►  mar. (3)
    • ►  fev. (2)
    • ►  jan. (1)
  • ►  2009 (54)
    • ►  dez. (3)
    • ►  nov. (2)
    • ►  out. (3)
    • ►  set. (5)
    • ►  ago. (4)
    • ►  jul. (15)
    • ►  jun. (8)
    • ►  mai. (3)
    • ►  abr. (2)
    • ►  fev. (5)
    • ►  jan. (4)
  • ▼  2008 (75)
    • ►  dez. (6)
    • ►  nov. (8)
    • ►  out. (9)
    • ►  set. (8)
    • ►  ago. (9)
    • ►  jul. (9)
    • ▼  jun. (6)
      • TotT: Defeat "Static Cling"
      • Test Engineering Class Project at UC-Irivine
      • Productivity Games – Using Games to Improve Quality
      • Taming the Beast (a.k.a. how to test AJAX applicat...
      • TotT: Friends You Can Depend On
      • 3 days left for GTAC Proposals!
    • ►  mai. (6)
    • ►  abr. (4)
    • ►  mar. (4)
    • ►  fev. (4)
    • ►  jan. (2)
  • ►  2007 (41)
    • ►  out. (6)
    • ►  set. (5)
    • ►  ago. (3)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  mai. (2)
    • ►  abr. (7)
    • ►  mar. (5)
    • ►  fev. (5)
    • ►  jan. (4)

Feed

  • Google
  • Privacy
  • Terms