InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Next-Generation Functional Testing

Posted by Geoffrey Wiseman on Oct 10, 2007

Sections
Process & Practices,
Architecture & Design,
Development
Topics
Unit Testing ,
Delivering Quality ,
Agile ,
Customers & Requirements
Tags
Agile Alliance ,
Testing ,
TDD

What should the next generation of functional testing tools offer? Should they serve as readable documentation of requirements? Should they come with an advanced test editor that supports test completion for user-interface elements as well as test code refactoring and analysis? Or an editor that supports multiple representations, like wireframes and state machines? Visualize the test results? Suggest and generate tests based on herustics?

The Agile Alliance is holding a workshop to envison the next-generation of functional testing tools, from October 11th to 12th, 2007 in Portland, Oregon.

The workshop background describes the context for this initiative by describing how far functional testing has come and how far it has yet to go:

The good news is that tool support for automated functional tests has grown significantly in recent years. There is a large variety of commercial and open source testing tools/frameworks available that support Agile development practices. The FIT framework was a significant boost to the state of the art of automated functional testing, both in terms of the syntax of the specification (tables), the detailed test execution feedback (cell by cell), and the development/execution environment (desktop tools rather than development or specialized tools).

However, we believe that it's time for another significant boost to the state of the art.

  • We are lacking integrated development environments that facilitate things like: refactoring test elements, command completion, incremental syntax validation (based on the domain specific test language), keyboard navigation into the supporting framework code, debugging, etc.

  • We need more expressive test specification languages, possibly integrating executable: text, tables, shapes, and colors together into a single test.

  • We need specification languages that can describe user interaction in a readable and maintainable fashion.

  • We need to be able to view/navigate the tests in multiple different ways in order to see how the pieces of the puzzle contribute to the bigger picture of the domain/feature: organize tests based on their domain context; search for tests based on user-defined keywords (cross cutting concerns).

  • and things that we haven't even thought of.

This event is the first step of the Agile Alliance's Functional Testing Program, headed up by Jeannitta Andrea with Ron Jeffries and Elisabeth Hendrickson. Jeanitta's been writing about next-generation functional testing tools for some time now, most recently in Envisioning the Next-Generation of Functional Testing Tools

So what do you need and want from your functional testing tool? What might the participants say at the workshop? What tools are you using now, and where do they work, where do they break down?

We'll stay in touch with this program as it progresses, and keep you informed here at InfoQ. You can use the Customers and Requirements tag to see more on this topic.

  • This article is part of a featured topic series on Agile
Finally, someone is asking the right questions! by Deborah Hartmann Posted
Re: Finally, someone is asking the right questions! by Kurt Christensen Posted
CubicTest by Eric Lewin Posted
Documentation by Geoffrey Wiseman Posted
Follow-Up by Geoffrey Wiseman Posted
More Follow-Up by Ben Simo Posted
  1. Back to top

    Finally, someone is asking the right questions!

    by Deborah Hartmann

    I can't tell you how disappointed I was with FitNesse, after hearing all the hype. My complaints are not about the framework itself, which meets a real need. It's about the useability for business people, tech writers, even business analysts (where these are part of the team, usually proxying a "customer").

    A pile of stories does not adequately document an application. Particularly where the application already has funtioning user documentation: a team goes Agile, starts helping their customer write stories, and suddenly they're turning out working features/enhancements at a decent rate! Months pass, and the tech writer is having trouble keeping up... he/she is directed to FitNesse, but the fragmentation is getting worse and worse.

    Feature X used to work like [this] but now it works like [this + story A[modified by story B and imfluenced by stories C and D]]. It can be difficult to identify stories that are orthogonal to many features.

    In addition, since "the working code is the final documentation" we can't necessarily trust the stories to be the final story... there's a reason some teams rip up story cards when they are finished. Ron Jeffries talks about "the three C's" - card, conversation, confirmation. Parts of the requirements are carried in personal interactions, and only captured in the code. This is only natural, and no matter how we try to retrofit what we code into the stories (surely a form of "muda" or waste) we'll never be sure it's 100%.

    I believe part of the solution lies in leveraging the emerging role of the Information Architect and integrating their technical writing repositories into our toolsets. Tech writers are now modularising, structuring and re-using pieces of their documentation in standards-based relational repositories that track things like user role and language. Surely, if they have a way to track re-usable pieces of documentation and flag areas thet require review when something changes, we have an opportunity to collaborate to create what I've called "emergent documentation". Already, I believe Ixiasoft has hooks into JavaDoc... what other integration points make sense?

    Is it time to get tech writers in our planning sessions and standup meetings? They seem, to me, to represent a wealth of knowledge about useability and standards, as customer-side players on the team, knowledge that we ignore until afterwards to our own detriment.

    I'd be at the workshop, had I not a prior engagement. I wish I could be there, and I thank the participants in advance for taking the time to put their heads together on this, particularly Jennita and the other organizers. I look forward to hearing what comes of it!

    deb

  2. Back to top

    CubicTest

    by Eric Lewin

    May something like the CubicTest tool be a viable approach to define, visualize, organize and run tests for user interaction?

  3. Back to top

    Documentation

    by Geoffrey Wiseman

    I've wondered a few times if a good testing framework with good descriptions (e.g. RSpec or the upcoming Story Runner) could take screenshots and be used as documentation.

  4. Back to top

    Re: Finally, someone is asking the right questions!

    by Kurt Christensen

    At my current client, we include the tech writers as part of our sprint teams, and we have boilerplate "docs" tasks associated with each story. Finishing the user-facing documentation then becomes part of what it means for a story to be "done".

    The tech writers don't often come to the daily stand-up meetings, but they're involved as stories get signed off, and they ordinarily take part in the sprint planning and sprint review and retrospective meetings.

  5. Back to top

    Follow-Up

    by Geoffrey Wiseman

  6. Back to top

    More Follow-Up

    by Ben Simo

    In Praise of Abstraction
    www.developertesting.com/archives/month200710/2...

    Better Tools for Individuals through Collaboration
    www.questioningsoftware.com/2007/10/better-tool...

    Crowdware
    www.exampler.com/blog/2007/10/14/crowdware/

    AA-FTT - Agile Alliance Functional Test Tools Workshop
    www.testingreflections.com/node/view/6066

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.