Software Quality Checklist¶
General¶
- [ ] Does the software have a descriptive name?
- [ ] Is there a short high-level description of the software?
- [ ] Is the purpose of the software clear?
- [ ] Does the software exactly match its requirements?
- [ ] Is the targeted audience of the software clear?
- [ ] Has the software been tested by members of the target audience in respect of its usability?
- [ ] Does the software (and its dependencies) use OSI approved licenses?
- [ ] Is the software under version control?
- [ ] Is there a website for the software?
- [ ] Is the software’s website mobile friendly to a certain degree? I.e. can it be accessed on a smartphone or tablet without hiding the most important information and features?
- [ ] Are the user interface design and the software’s website mindful of accessibility? I.e. does it consider e.g. a high contrast between colors for colorblind users, are there alternative texts for images that can be read by a screenreader, are texts easily resizeable, …?
- [ ] Does the software have a release mechanism?
- [ ] Is the software available in packaged format or only sources?
- [ ] Are maintainer and development status clear, including up to date and accessible contact information?
- [ ] Are the requirements listed and up to date?
- [ ] Is copyright and authorship clear and accessible?
- [ ] Is there a contribution guide?
Documentation¶
- [ ] Is there an accessible low-level guide for getting started?
- [ ] Is there an accessible user guide?
- [ ] Is there a full user documentation?
- [ ] Does the user interface link to held references?
- [ ] Are there examples, FAQs and tutorials?
- [ ] Is there information stated about who to ask when a problem is not covered by the FAQ?
- [ ] Are known issues documented and easily accessible for all user groups?
- [ ] Can bugs/issues be reported easily by other developers and users?
Development¶
- [ ] Is the development setup documented?
- [ ] Is the build mechanism documented?
- [ ] Does the build mechanism use a common single-command system (i.e. Maven)?
- [ ] Is the software API documented?
- [ ] Are all appropriate config options externalised and documented?
- [ ] Does the code allow internationalisation (i18n)?
- [ ] Is the software localised (l10n)? English is mandatory.
- [ ] Is there a test suite?
- [ ] Is test coverage above 80%?
- [ ] Are the tests run on a regular and frequent basis, e.g. on commit/every night/…?
- [ ] Do you have and stick to a policy for security by design?
- [ ] Is the software portable?
- [ ] Has the portability been tested?
Interoperability¶
- [ ] Are file formats standard compliant and documented?
- [ ] Is the API standard compliant?
- [ ] Does it provide a monitoring endpoint?
- [ ] Does it adhere to an interface style guide?
- [ ] Does it use existing authentication systems (OAuth2/eduGain)?
Administration¶
- [ ] Are software requirements such as operating system, required libraries and dependencies specified including versions?
- [ ] Are hardware requirements for CPU, RAM, HDD, Network specified?
- [ ] Are there deployment instructions?
- [ ] Is there a comprehensive and fully documented example configuration?
- [ ] Is a startup script provided?
- [ ] Are there troubleshooting guides?