Insights from Our Experts
Bake quality software like a chef!
Quality is not about quantity of work. It is as different as a half baked cake and a fully baked cake.
In my perspective, developing quality software is much like baking. Just because we use quality ingredients doesn't mean that we get a delicious dish. It all depends on the mixing of them in the right quantities and processing them in a right way. The quality of a product depends on a lot of parameters and they have to be maintained without compromise.
Requirements Gathering is the first and most important factor when it comes to software development. It should be complete and clear in every sense. Also all requirements must be economically and technically feasible.
A perfect product needs proper construction (User Interfaces, Backend) and proper processing (Technologies). Quality is ensured using different metrics while testing it. Different types and levels of testing are usually done to ensure that all requirements are met.
Here the developer is like a chef and the coding environment is the oven.
Baking a product is not a cake walk. It should go through different processes. Likewise developing software should go through different stages.
Does a QA team ensure quality of software from scratch?
Yes. From the first level onwards i.e from requirement gathering, a QA team must ensure the quality. Crystal clear idea about each piece of information/ requirements to be met gathered from client, the methods (technologies to be used to fulfil the requirements) that are used to bake the stuff in order to get the delicious and enriched quality product (i.e user friendly/user experience, scalable, stable, reliable, etc).
Quality of the product is measured from the perspective of customer/client, end users/people and engineers (developers and QAs).
Time need to bake the product, Cost of the product, Customer satisfaction are considered from Customer's perspective.
User friendliness and fulfilment of requirements are considered from End user's/People perspective.
Quality of code, deliverables, internal structure, reviews are considered from Engineer’s perspective.
A quality product can be developed by considering functional and non-functional parameters. Functional Quality parameters define how well the software meets functional requirements specified by client /in a real situation. Non Functional Quality parameters define how the code and internal structure of application supports the functional requirements.
The following are some of the most important parameters while considering software quality.
- Transcendence - User should be able to understand the software and its main functionalities.
- Robustness - How the software sustains under unexpected events like system crash, power off and saves the data without losing it.
- Scalability - Most of the application need to be scalable in future. So the technology/architecture/internal structure used/implemented in developing application should be capable to achieve the future needs.
- Efficiency or Performance - How does the system perform a certain amount of work using minimum resources in minimum time.
- Effectiveness - What extent the software satisfies the user requirements.
- Testability - Testability defines the extent to which it can be tested.
- Portability - We consider this parameter for quality by assessing how easily the software can be transported and run in different environments.
- Usability - Usability means user friendliness.
- Security - How much secure the software is against unauthorized access, data protection etc..
- Reliability - How reliable the software is performing the required function under different scenarios.
- Maintainability - How easily the software can be maintained in terms of new features, enhancement and bug fixes.
In summary quality of software is the sum of all quality parameters, functional and non-functional that should be met at all level of the product life cycle.