Loading ...
Sorry, an error occurred while loading the content.

Re: [XP] Agile requirements

Expand Messages
  • Rob Park
    My 2 cents (or at least how we treat it) are that the details of your MVP, subsequent DAOs, and any of the other little individual things it must do are
    Message 1 of 21 , Dec 2, 2005
    • 0 Attachment
      My 2 cents (or at least how we treat it) are that the details of your MVP,
      subsequent DAOs, and any of the other little individual things it must do
      are subjects for unit testing (aka programmer tests). Fit fixtures can be
      written to tap into your presenter (as just another view). Then you can
      right FitNesse tests (aka customer tests) to simulate and test important
      customer actions, which inevitably are very closely aligned with the story
      (more than the code itself).

      Hope that helps.

      .rob.

      >...
      >
      >Now we are starting to gather the requirements. My usual way, the XP way
      >is to plan the first relase first, by having a pile of user stories, then
      >adding details to them as acceptance tests, more when the iteration is
      >planned. However, writing FIT tests in fitnesse seems like a very nice
      >thing to do, but what confuses us is what should be automated as
      >unit/integration tests with NUnit/NMock and what should be automated as
      >Fit tests?
      >
      >For instance, obviously an application like this will have an order form,
      >order will have a list of order details. My way would be to build the
      >form, using TDD and the MVP pattern. At the same time, I think that I
      >could construct a test as a fit table, them make an adapter, and build the
      >part of the form to make the test pass, build a new one and so on until I
      >have m order form constructed. Fit tests are much more visual, but a lot
      >slower. What should I do? What should really be Fit tests and what NUnit?
      >Where's the line?
      >
      >Thanks,
      >Dan
      >
      >
      >
      >
      >On Thu, 01 Dec 2005 06:20:22 +0200, Jim Shore <jshore@...>
      >wrote:
      >
      > > I've just posted a new essay on my blog titled "How I Use Fit." It's
      > > based on my recent post to this group about Fit and TDD.
      > >
      > > As I look back, I realize that I've now closed the circle on a pretty
      > > substantial cycle of essays on agile requirements. I now cover
      > > everything from planning months of releases down to how to write a
      > > single section of Fit document, the work of an hour. Pretty cool.
      > > (Hey, wait! Shouldn't I demand big bucks for this stuff?)
      > >
      > > * "Beyond Story Cards" describes how I prefer to handle requirements
      > > over the course of developing an entire software product.
      > > * "Fit Workflow" describes how I use Fit to facilitate collaboration on
      > > requirements during a single iteration.
      > > * "A Vision for Fit" gives a concrete example of using Fit to facilite
      > > collaboration.
      > > * Describe-Demonstrate-Develop, in "How I Use Fit" describes how I
      > > prefer to develop the Fit document, fixtures, and how actual software
      > > development comes into play.
      > > * "Elaborating on a Theme," also in "How I Use Fit," describes how I
      > > structure Fit documents and their examples.
      > >
      > > Find links to these essays at
      > > http://www.jamesshore.com/Blog/Agile-Requirements.html
      > >
      > > Cheers,
      > > Jim
      >
      >
      >
      >--
      >Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
      >
      >
      >To Post a message, send it to: extremeprogramming@...
      >
      >To Unsubscribe, send a blank message to:
      >extremeprogramming-unsubscribe@...
      >
      >ad-free courtesy of objectmentor.com
      >Yahoo! Groups Links
      >
      >
      >
      >
      >
      >
      >
    • Rick Mugridge
      ... Hi David, I have no problem, in principle, in using Fit for unit tests and JUnit for storytests. It depends on the abilities of the human readers and the
      Message 2 of 21 , Dec 2, 2005
      • 0 Attachment
        David Chelimsky wrote:

        > ...
        >
        >However, I do get a little jealous of my customers who get to express
        >their specs in this beautiful, simple, easy to glean tabular format when
        >I feel sort of stuck w/ a less expressive tool (for certain problems) in
        >xUnit. Obviously xUnit is extraordinarily expressive, and I have no
        >interest in replacing xUnit w/ FIT as a unit testing tool. But I do want
        >to be able to take advantage of FIT where it makes sense to do so.
        >
        >-David Chelimsky
        >
        >
        Hi David,

        I have no problem, in principle, in using Fit for unit tests and JUnit
        for storytests. It depends on the abilities of the human readers and the
        writers, and then on the form of the tests as to which is best. (I also
        use Fit for defining builds and other things besides.)

        I do agree that the Customers' storytests need to be kept separate from
        the programmers' Fit unit tests. I also want to keep separate the Fit
        storytests that define the PUBLISHED LANGUAGE (DomainDrivenDesign) for a
        subsystem. And also the storytests that are specific to installation and
        on-site maintenance. And etc.

        Cheers, Rick
      • Rick Mugridge
        Yes, I think they re just tackling different levels of the system. With good tool support, I could image using Fit for all my unit testing as well. I look
        Message 3 of 21 , Dec 2, 2005
        • 0 Attachment
          Yes, I think they're just tackling different levels of the system. With
          good tool support, I could image using Fit for all my unit testing as
          well. I look forward to trying this out.

          Cheers, Rick

          Steven Gordon wrote:

          > ...
          >
          >And, as Dadi points out, xUnit supports the automated verification of TDD
          >specifications, allowing them to also function as automated unit tests for
          >any software that purports to satisfy those specifications.
          >
          >Likewise, Fit/Fitnesse supports the automated verification of Application
          >Domain specifications, allowing them to also function as automated
          >integration tests for any software that purports to satisfy those
          >specifications.
          >
          >Two sides of two similar coins.
          >
          >Regards,
          >
          >Steve
          >
          >
          >


          [Non-text portions of this message have been removed]
        • Rick Mugridge
          Hi David, Yes, I agree with your point of view and have seen it work very well in practice. With calculation rules like your validation table, it makes much
          Message 4 of 21 , Dec 2, 2005
          • 0 Attachment
            Hi David,

            Yes, I agree with your point of view and have seen it work very well in
            practice. With calculation rules like your validation table, it makes
            much sense to have them expressed directly in the code, taking a domain
            driven design approach. I've noticed that tthe business logic often gets
            little attention, and this helps bring a focus to it.

            Of course, there still needs to be unit tests for driving the
            infrastructure (non domain) parts.

            Cheers, Rick

            David Chelimsky wrote:

            >Jim Shore wrote:
            >
            >
            >>I would suggest using NUnit to test everything that you as programmers
            >>feel should be tested. I don't see Fit as a testing tool.
            >>
            >>I use Fit to provide examples of complicated requirements. I don't try
            >>to test everything with Fit; I mainly just focus on examples of domain
            >>logic. I only occasionally provide examples of UI interaction or data
            >>translation: as a rule of thumb, I don't do it unless the UI interaction
            >> or data translation is complicated or Fit would facilitate discussion
            >>with non-programmers.
            >>
            >>I see NUnit and Fit as being orthogonal. They solve different problems
            >>and it's not that important that they both end up comparing 'expected'
            >>and 'actual' results.
            >>
            >>What's complicated about the application you're building? What's the
            >>"secret sauce"--the magic know-how that your application provides that
            >>no one else does? Provide Fit examples of that.
            >>
            >>I use TDD for everything, even if it has Fit examples too. When I write
            >>my NUnit tests, I use different data than my Fit examples. I TDD from a
            >>programming perspective... using data that reflects my knowledge of the
            >>program's edge cases, zero-one-many scenarios, etc.
            >>
            >>Cheers,
            >>Jim
            >>
            >>
            >>
            >I've generally operated this same way, but I've been having some second
            >thoughts. I was going to just respond here, but it got somewhat verbose
            >so I posted it:
            >http://butunclebob.com/ArticleS.DavidChelimsky.WhyLimitFit.
            >Coincidentally, that decision allowed me to better express some of the
            >things I had started to write in an email.
            >
            >Looking forward to your (Jim's and everyone else's) comments either here
            >or on the blog.
            >
            >Thanks,
            >David
            >
            >
            >
            >To Post a message, send it to: extremeprogramming@...
            >
            >To Unsubscribe, send a blank message to: extremeprogramming-unsubscribe@...
            >
            >ad-free courtesy of objectmentor.com
            >Yahoo! Groups Links
            >
            >
            >
            >
            >
            >
            >
            >


            [Non-text portions of this message have been removed]
          • Dominic Williams
            ... Surely, evolving an expressive and consise domain-specific language for the programmer tests is exactly the same exercise as what XP tells us to do with
            Message 5 of 21 , Dec 6, 2005
            • 0 Attachment
              David Chelimsky started:

              > However, I do get a little jealous of my customers
              > who get to express their specs in this beautiful,
              > simple, easy to glean tabular format when I feel sort
              > of stuck w/ a less expressive tool (for certain
              > problems) in xUnit.

              and Rick Mugridge continued:

              > With good tool support, I could image using Fit for
              > all my unit testing as well. I look forward to trying
              > this out.

              Surely, evolving an expressive and consise
              domain-specific language for the programmer tests is
              exactly the same exercise as what XP tells us to do
              with the code?

              I am wondering what it says about our programming
              languages or our ability to use them creatively that
              programmers should be wanting to use FIT rather than
              code for programmer tests...

              Would you still want to if you were coding in Lisp or
              Smalltalk or Ruby or something?

              Anyway, even with C++ or Java, I don't think I'd want
              to do programmer tests in FIT: when coding tests is
              painful, I know I need to improve the design.

              Regards,

              Dominic Williams
              http://www.dominicwilliams.net

              ----
            • Rick Mugridge
              ... Please notice that I m not advocating this as a general approach! And I doubt that I ll end up wanting to change. But I think it s worth trying it. TDD
              Message 6 of 21 , Dec 6, 2005
              • 0 Attachment
                Dominic Williams wrote:

                >David Chelimsky started:
                >
                >
                >
                >>However, I do get a little jealous of my customers
                >>who get to express their specs in this beautiful,
                >>simple, easy to glean tabular format when I feel sort
                >>of stuck w/ a less expressive tool (for certain
                >>problems) in xUnit.
                >>
                >>
                >
                >and Rick Mugridge continued:
                >
                >
                >
                >>With good tool support, I could image using Fit for
                >>all my unit testing as well. I look forward to trying
                >>this out.
                >>
                >>
                >
                >Surely, evolving an expressive and consise
                >domain-specific language for the programmer tests is
                >exactly the same exercise as what XP tells us to do
                >with the code?
                >
                >I am wondering what it says about our programming
                >languages or our ability to use them creatively that
                >programmers should be wanting to use FIT rather than
                >code for programmer tests...
                >
                >
                Please notice that I'm not advocating this as a general approach! And I
                doubt that I'll end up wanting to change. But I think it's worth trying
                it. TDD would be unknown if someone didn't try something that seemed
                very odd to begin with. I often learn something from pushing the
                boundaries, even if I just understand my assumptions better.

                >Would you still want to if you were coding in Lisp or
                >Smalltalk or Ruby or something?
                >Anyway, even with C++ or Java, I don't think I'd want
                >to do programmer tests in FIT: when coding tests is
                >painful, I know I need to improve the design.
                >
                >
                Fit could be useful is in setting up compex object structures, which can
                be a real pain in Java. Ruby, of course, provides much better support
                for this. But I personally prefer statically typed languages as a design
                medium, having seriously tried a variety of types of language.

                So, yes, it highlights the limits of the design of programming
                languages, which are still (mostly) in the days of ascii.

                Cheers, Rick

                >Regards,
                >
                >Dominic Williams
                >http://www.dominicwilliams.net
                >
                >


                [Non-text portions of this message have been removed]
              Your message has been successfully submitted and would be delivered to recipients shortly.