* Fumitoshi UKAI <[EMAIL PROTECTED]> [2005-06-30 03:12]:
> How about "mgp -V -x m17n -x xft" ? It would be verbose so that
> some information would be reported on stderr.  You can see
> which font files are used.

The log and .mgp files are attached.
-- 
Martin Michlmayr
http://www.cyrius.com/
style  not found
now caching 1 page ...
trying to open font "arial.ttf"
trying to open font "/usr/share/fonts/truetype/arial.ttf"
could not load font "arial.ttf", using other rendering engine
trying to open font "wadalab-gothic.ttf"
trying to open font "/usr/share/fonts/truetype/wadalab-gothic.ttf"
could not load font "wadalab-gothic.ttf", using other rendering engine
tfc_setsize: font index out of bound
ignored %opaque.
tfc_setsize: font index out of bound
trying to open font "standard.ttf"
trying to open font "/usr/share/fonts/truetype/standard.ttf"
could not load font "standard.ttf", using other rendering engine
trying to open font "kochi-mincho.ttf"
trying to open font "/usr/share/fonts/truetype/kochi-mincho.ttf"
could not load font "kochi-mincho.ttf", using other rendering engine
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
need font <times-medium-r:53:NULL>
fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> 
result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
checking 48 to 55
 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1)
fontname: seed=<times-medium-r> siz=<53> reg=<iso8859-1> 
result=<-*-times-medium-r-*-*-53-*-*-*-*-*-iso8859-1>
using truescalable <-*-times-medium-r-*-*-53-*-*-*-*-*-iso8859-1>
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
need font <times-medium-r:26:NULL>
fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> 
result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
checking 24 to 27
 [4] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1>: score 1 
best
 [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1>: score 1
 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1)
 [18] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1>: score 1
using best [4] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1>
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
need font <times-medium-r:34:NULL>
fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> 
result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
checking 31 to 35
 [5] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1>: score 0 
best
 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1)
 [19] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1>: score 0
using best [5] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1>
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
tfc_setsize: font index out of bound
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
need font <times-medium-r:23:NULL>
fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> 
result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1>
checking 21 to 24
 [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1>: score 101 
best
 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1)
using best [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1>
no fontcount
tfc_setfont: font name not given, fail
tfc_alloc: font index out of bound
caching done 
#!mgp
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%deffont "standard"   tfont "standard.ttf",   tmfont "kochi-mincho.ttf"
%deffont "thick"      tfont "thick.ttf",      tmfont "goth.ttf"
%deffont "typewriter" tfont "typewriter.ttf", tmfont "goth.ttf"
%%deffont "standard" xfont "comic sans ms-medium-r"
%%
%% Default settings per each line numbers.
%%
%default 1 leftfill, size 2, fore "yellow", back "black", font "thick"
%default 1 bgrad
%%default 1 leftfill, size 2, fore "yellow", back "lightblue"
%default 2 size 5.0, vgap 10, prefix "  "
%default 3 bar "black" 5
%default 4 size 4.0, fore "white", vgap 30, prefix "   ", font "standard"
%%
%% Default settings that are applied to TAB-indented lines.
%%
%tab 1 size 4, vgap 40, prefix "      ", icon arc "spring green" 40
%tab 2 size 4, vgap 20, prefix "          ", icon box "darkred" 40
%tab 3 size 3, vgap 20, prefix "              ", icon delta3 "white" 40
%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%size 7, font "standard", fore "red", vgap 20, back "lightblue", prefix "  "

%size 7, fore "darkred"

%center
Quality Issues
%size 3.5

%size 7, fore "darkred"
%center
in Free Software projects



%size 4.5

%center
Martin Michlmayr <[EMAIL PROTECTED]>
%size 3.5
%center
University of Cambridge

%size 3.5
%center
This work has been funded in part by Intel.


 
%size 3, fore "darkred"
%center

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Objectives for today

        What is quality?

        What is quality assurance (QA)?

        Free Software and QA

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Quality

Everyone knows, but ...
        Hard to define
        Hard to measure

Definitions of quality:
        Fitness for purpose
        Attributes of quality: efficiency, reliability, usability, 
extendability, portability, reusability, maintainability

Different aspects:
        User perception
        Developer perception

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

What is Quality Assurance?

Traditional Quality Assurance (QA)

        Does what it should do (meets the specification)

        Does what others do as good or better as others (meets the "Industrial 
Standard")

        QA begins before the implementation!
                You cannot "add" quality later

        QA is not (just) testing

        ISO defines QA as all "planned and systematic activities" (to ensure 
quality)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Quality and Free Software/Open Source

Problems and challenges related to common characteristics of open source:
        Distributed development
        Done by volunteers
Naturally, different forms of the open source development model have different 
problems.

Eric S. Raymond (1999): The Cathedral and the Bazaar
Linus' law

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Quality and Free Software/Open Source

        Quality is often high
                peer review (Cathedral and the Bazaar)
                World domination

        ... but not always
                Many small, unsuccessful projects
                example: SourceForge has over 100,000 projects
                Big projects have problems too
                Contrast to QA as "planned and systematic activities"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Interviews: identifying quality issues

Interviews with members of Free Software projects

3 main areas:
        leadership: benevolent dictator, team

        release cycle:
                "release when it's ready", time based
                fast vs slow, development vs user release
                beta cycle, release candidates

        company involvement

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Interviews: underlying topics

Processes and infrastructure
        Communication
        Bug tracking systems
        Contributing to the project

Success
        What is success?

        Relation of success and quality?
                Success: more volunteers
                Contribute, Improve
                More quality
        Cathedral to bazaar

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Techniques employed

        Infrastructure
                Bug tracking (e.g. Bugzilla)
                Version control (CVS, SVN, arch)
                Automatic builds (e.g. tinderbox)
        Processes
                Joining
                Release: freeze, feature freeze, string freeze
                Branches
                Peer review
                Testing (checklists)
        Documentation
                Coding styles
                Code commit

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Quality Issues

        Ports
                keeping different ports (hardware, operating systems) in sync
                wider issue: feature creep
        Configuration management
                testing all possible combinations
                (possible solution: keep it modular)
        Users don't know how to report bugs
                many duplicates
                bad bug reports
                problem: long documentation -> users won't read it
        Automatic tests
                are boring to write
                people who write code shouldn't write tests
                sometimes need large database
        Security updates

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page

Quality Issues

        Attracting volunteers
                to triage bugs
                to code
                to test
                & ensure they are competent
        Lack of documentation


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%page

Lessons learned

        Think about quality and QA
                Debian: http://qa.debian.org/
                KDE: http://quality.kde.org/
                GNOME: http://developer.gnome.org/projects/bugsquad/
        Have developer documentation
        Have an automatic test suite
        Use version control
                legal
        Think about quality
                Find ways to measure quality
                Find ways to improve quality
                Find ways to automate quality
                Document quality practices

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Reply via email to