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

Re: Ten Years of Test Driven Development

Expand Messages
  • Phlip
    ... When was Rails launched? It s a first for a GUI platform invented _via_ TDD, without it strapped on as an afterthought...
    Message 1 of 9 , Jan 2, 2009
    • 0 Attachment
      > Michael Feathers and I are working up a talk that will be a review of
      > effectively 10 years of TDD. The idea is partly just to look at the
      > history, but mainly to consider what we've learned over all this time.

      When was Rails launched? It's a "first" for a GUI platform invented _via_ TDD,
      without it strapped on as an afterthought...
    • Adam Sroka
      ... July 2004. It s a first for a GUI platform invented _via_ ... Although I agree Rails is notable for being one of the first to have a unit test framework
      Message 2 of 9 , Jan 2, 2009
      • 0 Attachment
        On Fri, Jan 2, 2009 at 8:26 AM, Phlip <phlip2005@...> wrote:
        >> Michael Feathers and I are working up a talk that will be a review of
        >> effectively 10 years of TDD. The idea is partly just to look at the
        >> history, but mainly to consider what we've learned over all this time.
        >
        > When was Rails launched?

        July 2004.

        It's a "first" for a GUI platform invented _via_
        > TDD,
        > without it strapped on as an afterthought...

        Although I agree Rails is notable for being one of the first to have a
        unit test framework baked in, I'm not sure that it's the first example
        of a test-driven GUI. Either way, it does belong on the timeline.
      • Phlip
        ... The ideal would be TDD used to invent the entire stack - the display drivers, the GUI toolkit widgets, the presentation system, the scripting language, and
        Message 3 of 9 , Jan 2, 2009
        • 0 Attachment
          Adam Sroka wrote:

          > Although I agree Rails is notable for being one of the first to have a
          > unit test framework baked in, I'm not sure that it's the first example
          > of a test-driven GUI. Either way, it does belong on the timeline.

          The ideal would be TDD used to invent the entire stack - the display drivers,
          the GUI toolkit widgets, the presentation system, the scripting language, and
          the high-end frameworks.

          What Rails did was apply TDD on top of klutzy, TDD-hostile systems - HTML, HTTP,
          and JavaScript. You don't have to build your own mock servers and stuff. If you
          don't waste time baking your own bricks on-site, the entry barriers to TDD are
          much lower.

          So Rails has converted one of the hardest TDD situations into one of the easiest.

          --
          Phlip
        • Adam Sroka
          ... I don t know about display drivers. Those are so tied to the hardware. It s hard enough to get vendors to open source that code, let alone asking them to
          Message 4 of 9 , Jan 2, 2009
          • 0 Attachment
            On Fri, Jan 2, 2009 at 8:50 AM, Phlip <phlip2005@...> wrote:
            > Adam Sroka wrote:
            >
            >> Although I agree Rails is notable for being one of the first to have a
            >> unit test framework baked in, I'm not sure that it's the first example
            >> of a test-driven GUI. Either way, it does belong on the timeline.
            >
            > The ideal would be TDD used to invent the entire stack - the display
            > drivers,
            > the GUI toolkit widgets, the presentation system, the scripting language,
            > and
            > the high-end frameworks.
            >

            I don't know about display drivers. Those are so tied to the hardware.
            It's hard enough to get vendors to open source that code, let alone
            asking them to test-drive it. It might be nice, but I'm not holding my
            breath. Plus, I'm fairly confident that I, personally, will never have
            to write those ;-) Otherwise, I'm right with you.

            > What Rails did was apply TDD on top of klutzy, TDD-hostile systems - HTML,
            > HTTP,
            > and JavaScript. You don't have to build your own mock servers and stuff. If
            > you
            > don't waste time baking your own bricks on-site, the entry barriers to TDD
            > are
            > much lower.
            >
            > So Rails has converted one of the hardest TDD situations into one of the
            > easiest.
            >

            Okay. I see what you mean now.

            Actually, testing HTML and HTTP was always quite easy in Ruby (and
            before it, Perl) even before Rails came along. It is a pain in the ass
            in some other languages - Java for instance, but that is because they
            insist on using heavy-handed XML techniques to parse/generate HTML and
            the servlet API to handle HTTP.

            The crappy thing about testing web GUIs is that the output is just
            text. What we really care about is how the browser interprets that
            text, and Rails doesn't really solve that problem (Though if you
            combine it with something like Selenium or Firewatir you can get
            there. And, now there is FireUnit which *rules*.)

            Rails makes a lot of things easy, and TDD is certainly one of them. On
            the other hand, Rails also makes it easy for those who don't like to
            test to get away with saying, "We have unit tests." Even though the
            only tests they have are the stubs that the framework generates, which
            they never touch. I have found this amusing, but also annoying.
          • Phlip
            ... I believe that s just vendor lock-in . They don t want you to rip a page but then send it out some other vendor s web server. So they play games with the
            Message 5 of 9 , Jan 2, 2009
            • 0 Attachment
              Adam Sroka wrote:

              > Actually, testing HTML and HTTP was always quite easy in Ruby (and
              > before it, Perl) even before Rails came along. It is a pain in the ass
              > in some other languages - Java for instance, but that is because they
              > insist on using heavy-handed XML techniques to parse/generate HTML and
              > the servlet API to handle HTTP.

              I believe that's just "vendor lock-in". They don't want you to rip a page but
              then send it out some other vendor's web server. So they play games with the
              libraries that render a page - all at incredible expense to TDD.

              > The crappy thing about testing web GUIs is that the output is just
              > text. What we really care about is how the browser interprets that
              > text, and Rails doesn't really solve that problem (Though if you
              > combine it with something like Selenium or Firewatir you can get
              > there. And, now there is FireUnit which *rules*.)

              The crappy thing about unit tests on text is they can fail when the wind blows.

              To put two weaknesses together to make a strength, you just make sure your tests
              fail more often than your browser would have failed. That's not accurate, but it
              provides enough resistance that you can still go very fast.

              --
              Phlip
            • Doug Swartz
              ... I added Kent s creation of SUnit in 1994 to the prehistory section. -- Doug Swartz
              Message 6 of 9 , Jan 2, 2009
              • 0 Attachment
                Friday, January 02, 2009, 9:29:30 AM, Steve Freeman wrote:

                > Michael Feathers and I are working up a talk that will be a review of
                > effectively 10 years of TDD. The idea is partly just to look at the
                > history, but mainly to consider what we've learned over all this time.

                > We'd like all of you to do our work for us by helping to construct a
                > time line. I've started a page on the C2 wiki with some strawman
                > entries to get people riled up so that they'll contribute.

                > http://c2.com/cgi/wiki?TenYearsOfTestDrivenDevelopment

                > Please join in.

                I added Kent's creation of SUnit in 1994 to the prehistory
                section.

                --

                Doug Swartz
              • Brad Appleton
                I would think that the creation/release of Ward s FIT framework (and of ObjectMentor s FitNesse) should be part of the time-line. When were those? What about
                Message 7 of 9 , Jan 3, 2009
                • 0 Attachment
                  I would think that the creation/release of Ward's FIT framework (and of
                  ObjectMentor's FitNesse) should be part of the time-line. When were those?

                  What about the creation of testdriven.com? (was that the first website
                  devoted exclusively to all things TDD?)

                  --
                  Brad Appleton <brad {AT} bradapp.net>
                  Agile CM Environments (http://blog.bradapp.net/)
                  & Software CM Patterns (www.scmpatterns.com)
                  "And miles to go before I sleep" -- Robert Frost
                Your message has been successfully submitted and would be delivered to recipients shortly.