skip to main content
research-article
Free Access

Testing web applications with state objects

Published:23 July 2015Publication History
Skip Abstract Section

Abstract

Use states to drive your tests.

References

  1. AngularJS. ngInclude directive; https://docs.angularjs.org/api/ng/directive/ngInclude.Google ScholarGoogle Scholar
  2. Antoniol, G., Briand, L.C., Di Penta, M. and Labiche, Y. A case study using the round-trip strategy for state-based class testing. In Proceedings 13th International Symposium on Software Reliability Engineering. IEEE (2002), 269--279. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Binder, R.V. Testing Object-oriented Systems. Addison-Wesley, Reading, PA, 1999, Chapter 7.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Fowler, M. PageObject, 2013; http://martinfowler.com/bliki/PageObject.html.Google ScholarGoogle Scholar
  5. Harel, D. 1987. Statecharts: a visual formalism for complex systems. Science of Computer Programming 8(3): 231--274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Horrocks, I. Constructing the User Interface with Statecharts. Addison-Wesley, Reading, PA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Leotta, M., Clerissi, D., Ricca, F., Spadaro, C. Improving test suites maintainability with the page object pattern: An industrial case study. In Proceedings of the Testing: Academic and Industrial Conference---Practice and Research Techniques. IEEE (2013), 108--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Mesbah, A., van Deursen, A. and Roest, D. Invariant-based automatic testing of modern Web applications. IEEE Transactions on Software Engineering 38, 1 (2012) 35--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. North, D. What's in a story?; http://dannorth.net/whats-in-a-story/.Google ScholarGoogle Scholar
  10. Selenium. Page Objects, 2013; https://github.com/SeleniumHQ/selenium/wiki/PageObjectsGoogle ScholarGoogle Scholar
  11. Selenium. Promises. In WebDriverJS User's Guide, 2014; https://code.google.com/p/selenium/wiki/WebDriverJs#Promises.Google ScholarGoogle Scholar
  12. SeleniumHQ. WebDriver; http://docs.seleniumhq.org/projects/webdriver/.Google ScholarGoogle Scholar

Index Terms

  1. Testing web applications with state objects

        Recommendations

        Reviews

        Amos O Olagunju

        Effective techniques for concealing web page complexities in end-to-end testing of web applications require the use of page objects. But how should page objects be constructed for successfully testing alternative web applications__?__ What should be the actions and test scenarios of targeted page objects__?__ Van Deursen offers great insightful solutions to these questions in this lively professional practice article. Indeed, tools such as WebDriver, which provide page or state objects, support information hiding and the use of an application program interface (API) for implementing domains of web features on top of web pages. The author illuminates the power of formal languages, such as the unified modeling language (UML), in support of the use of state charts and objects to test the various displays and responses of web browsers to varieties of events like user registration and authentication. So why should web application developers read this compelling practice article__?__ The author presents real-world explanatory applications of state graphs and transition trees for testing several web features. The presentation of the use of WebDriver and state objects to test an AngularJS PhoneCat application is lively. Certainly, state objects should encapsulate the details of browser interactions in web applications. Web developers ought to be free to hide test scenarios of web features in any robust complex web design process. Consequently, the author advocates the use of object machine states for modeling the development and testing the actions and behaviors of end-to-end web applications. I strongly encourage all educators of current and future software engineers working on web service design and implementation to read and take advantage of the web testing ideas in this paper. Online Computing Reviews Service

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Communications of the ACM
          Communications of the ACM  Volume 58, Issue 8
          August 2015
          88 pages
          ISSN:0001-0782
          EISSN:1557-7317
          DOI:10.1145/2808213
          • Editor:
          • Moshe Y. Vardi
          Issue’s Table of Contents

          Copyright © 2015 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 23 July 2015

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Popular
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDFChinese translation

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format