Ok so the first blog post for #TC3045 will start defining software quality.
In a software development project there will be numerous requirements, implicit and explicit. Software quality will be the degree of conformance that one sticks to these requirements. So one can be as strict as it is needed. This strictness will be defined mostly by the stakeholders but also by the clients and end users.
Of course there are multiple definitions of Software Quality by multiple people. The IEEE define SQ as the degree to which a system, component, or process meets specified requirements. The International Software Testing Qualifications Board definas SQ as the totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs.
There are key aspects to talk about when discussing about Software Quality
- Good design. UI and UX have become extremely important for the user. One good way to think about it is for the end user, the Interface IS the system
- Reliability. Good software needs to function bug free.
- Durability. A quality piece of software will pass the test of time
- Consistency. One should expect a piece of software to behave in a matter that is predictable
- Maintainability. This is very important for the stakeholders. There is money that is going to be spent maintaining a piece of software. One should expect it to be maintainable for different programmers.
Software Quality Models
- McCall’s Quality Model
- Boehm quality model
- Dromey’s quality model
McCall’s Quality Model
This model tries to to maintain harmony between users and developers. This model has eleven factors that can be grouped like the image shown below