develooper Front page | perl.bootstrap | Postings from July 2000

The K is for Kwalitee

From:
Michael G Schwern
Date:
July 26, 2000 12:19
Subject:
The K is for Kwalitee
Message ID:
20000726151919.A1546@athens.aocn.com
So what is quality assurance?  In the context of Perl it is three things: 
Testing what is there, ensuring that which comes is testable and making sure
everybody's doing what they're supposed to be doing.


Testing what's there, that's obvious.  We all basically know about
regression tests (even if we don't like to write them.)  The fundamental
questions are:  How to we make sure they're written, run and cover
everything?  I have some ideas on that which I will be posting up in RFCs
shortly (and I hope others will post their ideas and experiences as clear
RFCs) but the central philosophy of perl6 QA should be this:

                    'AUTOMATE! ' x 3;

Automate everything we can possibly automate.  This way QA will actually get
done, instead of become a boring chore that everyone avoids, like defrosting
your freezer.  Any sufficiently boring task can be made interesting by
turning it into a programming project. :)

QA also involves being the bad guy.  Vetoing releases, vetoing patches,
shooting neat ideas and implementations full of holes, enforcing consistant
styles, etc.  I'll wear the black hat, but I hope others realize its a
necessity and don't take it personally (if you do, I will cry.)

Finally, I want to expand the scope of testing to not only include the
external language, but the internals as well.  Since the internal API has an
explict designer (or at least a manager) QA can coordinate with Dan to
produce just as thorough a regression suite for the guts as for the
language.  This should make all the XS authors very happy.


QA's second purpose is a bit more controversial.  Call it preemptive QA. 
I'd like us to influence the language design a bit to make Perl easier to
test, both inside and outside.  This will mean getting right of some of its
gratuitous DWIMness, which often turns into DWPM (Do What Perl Means) to the
unsuspecting programmer.  Its boils down to this:

                    Garbage In / Error Out

Perl needs more of this.  I know its near and dear to us that Perl can often
stomp along happily even though the programmer made a mistake, but this can
sometimes hinder rather than help by hiding a subtle error.  If anything
will make QA less popular than it already is, it will be this role.  Sucks
to be us.


If Larry is the supreme court of Perl, and njt is El Presidente then QA is 
law enforcement.  (Since at the moment I'm all of QA, "I am the law.")  When
Larry resolves a dispute, we make sure his resolution has been carried out. 
We don't make the law, we just bonk people on the head when they're bad.


So why does perl6 have a quality assurance this early on?  A very simple
reason:  If we don't think about it at the beginning, we'll never do it.  My
primary job at the moment is to simply establish QA in everyone's mind as
something which is just as important as whether we'll write perl6 in C or
Rebol or whatever people are speculating about at the moment.

Another nice part about starting the QA process now is we can actually GET
SHIT DONE! (assuming we find time between reading [deleting?  --ed.]
bootstrap).  Since QA is mostly about process and people, nearly all we do
for perl6 can be retrofitted to perl5.  In fact, we'll probably be
implementing most ideas on perl5 rather than having to wait for perl6 to get
moving.  We can also begin hammering on the related problems of CPAN's QA
(RFC follows).


Why do I have this job?  I was the poor schmuck who suggested it, and
everyone hates QA (and, by association, the QA guy).  I'm not particularly
adept at QA, but I realize its importance.  So I WILL NEED HELP (help help
help) from experienced QA monsters.  I'm not necessarily the guy who will do
the QA (thank goodness), I'm just the person to which all blame will be
transfered if perl6 blows up.


As of now I'm starting a seperate working group and mailing list for Perl
Quality Assurance issues.  perl-qa@perl.org.  Subscribe via
perl-qa-subscribe@perl.org.  Digest is here
perl-ka-digest-subscribe@perl.org.  Archives... don't know where the
archives are.  

We're bootstrapped and ready to go!  Anyone who's interested, subscribe. 
Anyone who's not, we'll send regular reports back to bootstrap.


A series of RFCs will follow this email both on bootstrap and perl-qa.  I'm
posting this series to both in the hopes that I'll convince some people that
this will be an interesting automation project and not a death march of
unrewarding code slogging.


So to sum up:
    - I should keep my mouth shut at p5p meetings.
    - AUTOMATE() or die;
    - We wear the black hats.  You will hate us.  Sucks to be us.
    - Influence language design for Garbage In / Error Out.
    - We are the law.
    - perl-qa@perl.org
    - We can work on perl5 while preping for perl6.
    - The K is for Kwalitee.
    - Help.
    - RFCs to follow.
    - We're going to go get some work done now.  We'll send postcards.


-- 

Michael G Schwern      http://www.pobox.com/~schwern/      schwern@pobox.com
Just Another Stupid Consultant                      Perl6 Kwalitee Ashuranse
Maybe they hooked you up with one of those ass-making magazines.
        -- brian d. foy as misheard by Michael G Schwern



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About