- Defining Software Quality
We all have goals in life, in our work, with our family or friends. So it is no surprise that the goal of software is to satisfy the needs of our client(s) in the swifest, most unnoticeable manner. When you ask: «what is software quality?», you are in fact making reference to the ultimate step of building software. Does it work? More importantly, does it work in the same way it was agreed it would?
When talking about software quality, the ISO actually has eight characteristics to define it:
1. Maintainability: How easily the people working on the product can understand it and redesign it.
2. Portability: Ability of the product to move from one environment to another.
3. Functionality: Does the product reach the user expectations?
4. Performance: The scalability and speed at which a product can perform.
5. Compatibility: If the product is meant to work on certain environment and/or coexist with another product or device, it shall do so correctly.
6. Usability: Can clients understand and use it correctly?
7. Reliability: How likely is the product bound to fail, and if so, how quickly can it be back and running.
8. Security: The less vulnerable it is to attacks, the better.
- A Focus on Process
There exists many paths, and many of them get to Rome, but a very common methodology for is the Software Development Life Cycle, a systematic way of building software. It has seven phases:
- Requirement collection and analysis: What is needed, and how can we reach that state?
- Feasibility study: Can it be done accordingly (both technically and legally)?
- Design: An outline worked by the team which will be the basis of every move from here on out. Whether it be low-level or high-level work, a design is a must most of the time.
- Coding: Execution of the design.
- Testing: To make sure the essential aspects of the requirements work without compromise.
- Installation/Deployment: The product is released as the manager looks out for feedback and/or issues.
- Maintenance: After the deployment has been successful, improvements to the product are inevitable and must be done according to the changes in the product’s atmosphere.
- Ensuring Software Quality
The Software Quality Assurance Plan, abbreviated SQAP, it is a methodology within the Software Quality Assurance branch. The latter being a process that monitors the software activities so they comply with the defined standards (ISO 9000, CMMI model, ISO15504, etc.), the former is comprised of procedures, techniques, and tools for ensuring the correct alignment of requirements in the SRS (Software Requirement Specification). This also includes the documentation for configuration management, problem reporting and corrective action, tools, methodologies, etc. as well as activities oriented towards the management plan, techniques, reviews, and obviously: testing.
- The Role of Standards
A lot of standards have had a mention during this blog, each with their own principles and fundamentals, which are:
- ISO 9000: Ensures products or services are aligned with customer needs.
a) Customer focus
b) Leadership
c) Engagement of people
d) Process approach
e) Improvement
f) Evidence-based decision making
g) Relationship Management - CMMi Level: Capability Maturity Model Integration. It can also be used for process improvement at any organization in general.
a) Level 1: Initial
b) Level 2: Managed
c) Level 3: Defined
d) Level 4: Quantitatively Managed
e) Level 5: Optimizing - TMMi: Test Maturity Model integration, based on CMMi.
a) Level 1: Initial
b) Level 2: Managed
c) Level 3: Defined
d) Level 4: Measured
e) Level 5: Optimization
https://www.softwaretestinghelp.com/software-quality-assurance/
https://www.guru99.com/software-development-life-cycle-tutorial.html