Categories
Posts in this category
- A shiny perl6.org site
- Creating an entry point for newcomers
- Sprixel, a 6 compiler powered by JavaScript
- Another perl6.org iteration
- Blackjack and Perl 6
- Why I commit Crud to the Perl 6 Test Suite
- Report from the Perl 6 Hackathon in Copenhagen
- Custom operators in Rakudo
- Defined Behaviour with Undefined Values
- Dissecting the "Starry obfu"
- Perl 6: Failing Softly with Unthrown Exceptions
- The first Perl 6 module on CPAN
- Google Summer of Code Mentor Recap
- Building a Huffman Tree With Rakudo
- Immutable Sigils and Context
- Is Perl 6 really Perl?
- Perl 6: Lost in Wonderland
- Lots of momentum in the Perl 6 community
- Musing and the future of feather and the Pugs repository
- Musings on Rakudo's spectest chart
- My first executable from Perl 6
- Trying to implement new operators - failed
- Let's build an object
- Perl 6 is optimized for fun
- How to get a parse tree for a Perl 6 Program
- Perl 6 in 2009
- Perl 6 ticket life cycle
- The Perl 6 Advent Calendar
- How to Plot a Segment of a Circle with SVG
- Publicity for Perl 6
- Rakudo architectural overview
- Rakudo Rocks
- Rakudo "star" announced
- Rakudo's rough edges
- Rats and other pets
- Releasing Rakudo made easy
- Set Phasers to Stun!
- Starry Perl 6 obfu
- Recent Perl 6 Developments August 2008
- Strings and Buffers
- Subroutines vs. Methods - Differences and Commonalities
- A SVG plotting adventure
- A Syntax Highlighter for Perl 6
- Test Suite Reorganization: How to move tests
- The Happiness of Design Convergence
- Perl 6 Tidings from September and October 2008
- Perl 6 Tidings for November 2008
- Perl 6 Tidings from December 2008
- Perl 6 Tidings from January 2009
- Perl 6 Tidings from February 2009
- Perl 6 Tidings from March 2009
- Perl 6 Tidings from April 2009
- Perl 6 Tidings from May 2009
- Perl 6 Tidings from May 2009 (second iteration)
- Perl 6 Tidings from June 2009
- Perl 6 Tidings from August 2009
- Perl 6 Tidings from October 2009
- Timeline for a syntax change in Perl 6
- Visualizing match trees
- We write a Perl 6 book for you
- When we reach 100% we did something wrong
- Where Rakudo Lives Now
- Why was the Perl 6 Advent Calendar such a Success?
- What you can write in Perl 6 today
- Why you don't need the Y combinator in Perl 6
Fri, 16 Oct 2009
Why I commit Crud to the Perl 6 Test Suite
Permanent link
A few days ago a relative new contributor to the Perl 6 test suite apologized for the perceived bad quality of his commits to the test suite. (There was no reason, the commits were actually quite good). It made me think about the quality of what I contribute there.
It's not easy to assess the quality of tests. We want to keep the test suite as simple as possible, in the sense that every test should test one specific piece of Perl 6, and use simplest syntax otherwise. That means we have trade offs regarding code duplication: Not using fancy data driven testing often results in multiple test that look similar - something you'd avoid in normal programs, and even in normal test suites.
So extensive tests are bound to look a bit ugly, but that's OK. But it also means that our usual standards of assessing code quality don't necessarily hold. Leaving that aside, many parts of the test suite still look a bit weird or suspicious. I remembered Sturgeon's Law: 90% of everything is crud. Assuming it holds for the test suite too...
... and considering the fact that I contributed about 20% of the commits to the test suite (number from 2009-10-10), at least half of what I contributed was crud too.
I'm not ashamed of it - as long as I strive for good code and do my best, everything is fine. And I encourage those who think their tests are crud to commit them anyway - or at least ask for review. Those who are concerned about their code quality usually produce quite decent code.
See also: Matt S Trout - You are not good enough.
Comments / Trackbacks:
Trackback URL:
/blog-en/perl-6/committing-crud.trackback
Write a comment
The comments on this blog post have been disabled; the comment form below will not work.