0
Introduction to         Quality in Free Software Development    Juan José Sánchez Penas             Master on Free Software
Quality?ISO 8402 (1986): “the totality of features andcharacteristics of a product or service that bearon its ability to s...
Quality?Pressman (1997): “conformance toexplicitly stated functional and performancerequirements; the explicitly documente...
Engineering process and                    quality●   Requirements, analysis, design,    implementation, deployment●   Pat...
eXtreme Programming●   Agile methodology●   Customer directed●   Team work, short frequent meetings, pair    programming, ...
eXtreme Programming●   Refactoring (redesign)●   Important features are introduced early●   Development speed is measured ...
Documentation●   Design (UML):    –   Requirements description, GUI definition,        Architecture documentation●   Techn...
TestingProcess used to help identify the correctness,completeness, security and quality of developedsoftware.●   Types of ...
Continuous integration●   Definition: Software engineering term    describing a process that completely rebuilds    and te...
Internationalization●   Internationalization (i18n): design    software so that it can be adapted to    various languages ...
Internationalization      Master on Free Software
Accessibility●   Degree in which a product can be used by    as many people as possible●   It is a category of usability● ...
Accessibility  Master on Free Software
Bug management●   Triaging:    –   which bugs should be fixed when    –   bugs should be classified and tracked●   Milesto...
Packaging and releasing●   Releases are important, could be periodic, and    should follow a policy (freezes, numbering,  ...
Databases●   Importance of the integration with each    platform●   Examples:    –   sqlite: small C library    –   mysql ...
Success keys●   Quality●   Community●   Communication●   Focus in the user●   Stable release cycles●   Experience         ...
Upcoming SlideShare
Loading in...5
×

Quality

903

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
903
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Quality"

  1. 1. Introduction to  Quality in Free Software Development Juan José Sánchez Penas Master on Free Software
  2. 2. Quality?ISO 8402 (1986): “the totality of features andcharacteristics of a product or service that bearon its ability to satisfy stated or implied needs.Later, in 1994: “the totality of characteristicsof an entity that bear on its ability to satisfystated and implied needs. Master on Free Software
  3. 3. Quality?Pressman (1997): “conformance toexplicitly stated functional and performancerequirements; the explicitly documenteddevelopment standards; and the implicitcharacteristics that are expected of allprofessionally developed software.” Master on Free Software
  4. 4. Engineering process and quality● Requirements, analysis, design, implementation, deployment● Patterns in all the stages, UML● Standardize everything (code, docs, diagrams)● Iterative process, eXtreme Programming ideas● Documentation, testing/validation/verification● also iterative and included in all the stages● Pay attention to i18y, a11y, etc. Master on Free Software
  5. 5. eXtreme Programming● Agile methodology● Customer directed● Team work, short frequent meetings, pair programming, “move people around”● Iterations, stories and tasks● User stories define acceptance tests (test -> code)● Frequent release plan (stories to be implemented) Master on Free Software
  6. 6. eXtreme Programming● Refactoring (redesign)● Important features are introduced early● Development speed is measured (number of stories done in a iteration)● Focus in the short term (iteration)● Sequential and frequent integration● Make it work right, then make it work fast Master on Free Software
  7. 7. Documentation● Design (UML): – Requirements description, GUI definition, Architecture documentation● Technical: – API documentation, Code and algorithms documentation, Data structures● Users: – Deployment/installation instructions, End user documentation● Marketing Master on Free Software
  8. 8. TestingProcess used to help identify the correctness,completeness, security and quality of developedsoftware.● Types of testing ● Unit testing (modules) – junit, check ● Integration testing (integration between modules) ● System testing: Functional testing (ltdp, dogtail), Non- ● functional testing: Performance/security testing, Acceptance testing (by customer)● Code coverage Master on Free Software
  9. 9. Continuous integration● Definition: Software engineering term describing a process that completely rebuilds and tests an application frequently● Typically refers to an XP practice● The more popular form (also called automatic CI) takes the form of a server process or daemon that monitors a version control system and automatically runs the build process (together with tests) Master on Free Software
  10. 10. Internationalization● Internationalization (i18n): design software so that it can be adapted to various languages and regions without reengineering● Localization (l10n): adapting software to a given language or region● Not only text: also date/time format, timezone, currency, image and colors, paper sizes, reading order● Example: pango, gettext Master on Free Software
  11. 11. Internationalization Master on Free Software
  12. 12. Accessibility● Degree in which a product can be used by as many people as possible● It is a category of usability● Examples: on-screen keyboards, screen magnifiers, speech recognition, screen readers● Solution: modify widgets and apps so that they provide APIs with functionality and metainformation● Allows testing Master on Free Software
  13. 13. Accessibility Master on Free Software
  14. 14. Bug management● Triaging: – which bugs should be fixed when – bugs should be classified and tracked● Milestones (unknown milestone bugs are not triaged)● Importance of the triage team● Importance of the right tool● Rigid management and integration process Master on Free Software
  15. 15. Packaging and releasing● Releases are important, could be periodic, and should follow a policy (freezes, numbering, stable/unstable, acceptance of new patches)● Software should be easy to install in multiple platforms: packages● Formats: jar files (java), deb (debian, ubuntu), rpm (redhat, suse), tgz (slackware)● Important of the dependency management, upgrading, removing, etc.● Tools: dpkg/aptitude, synaptic, Master on Free Software
  16. 16. Databases● Importance of the integration with each platform● Examples: – sqlite: small C library – mysql – postgreSQL Master on Free Software
  17. 17. Success keys● Quality● Community● Communication● Focus in the user● Stable release cycles● Experience Master on Free Software
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×