Software Quality

The software industry is an exponentially growing market, demanding more and more, creating a highly competitive environment where deploying code into production as quickly as possible has become a necessity in order to survive. This arises a big concern, since creation without control leads to chaos. If so much software is being developed, there needs to be an entity, a methodology, a guide or something that assures that everything will be under control, even in the worst case scenario (which may be not as common as people believe, but as plausible to haunt everyone that is aware of it.) So of course, there is an answer to this nightmare, a concept that has existed almost since the inception of software development itself, that being “Software Quality”.

Defining Software Quality

Now, defining the term of quality of software is not quite as easy as it may seem. I have found a plethora of definitions, but I will use the one that I like the most:

“Software Quality is about maintaining the functionality of a software and assuring that it fulfills its purpose.”

I like that definition, because it takes into account the non-technical factor of the software doing what is supposed to do. I paraphrased the the definition from this video:

Regarding the more technical aspects of software quality, there are some key facets that should be noted:

  • Good Design: It should be attractive, people will not use it if it is not user friendly and does not have a fitting aesthetic.
  • Reliability: It should always work as expected, with no issues.
  • Consistency: It should behave in a consistent manner on the platforms where it is available.
  • Durability: It should be reliable for as long as possible.
  • Maintainability: After release, any bug fixes and code enhancements must be added without compromising reliability.
  • Valuable: All the work put into the development of the software should feel worth it. If a user pays for it, it should feel like money well spent.
Maintaining software quality

Having established the requirements to measure software quality, let’s go to the next step. Software quality can be achieved in a short period of time; however, it is important to consider that it should be maintained throughout a relatively long period of time. For that, there is «Software Quality Assurance». But, what is its definition?:

«A process to assure the quality in software engineering processes, methods, activities and work items, and ultimately give confidence that a producto is of good quality.«

There are many stages of the SQA (Software Quality Assurance), which go from the beggining of the project, to its after life. SQA should be involved since the definition of the requirements and architecture. For SQA is involved in all the software development cycle, it is important to note that it involves more than the more technical aspects of the product; it also should check for the quality of management.

SQA’s work is to find weaknesses among the different processes and correct them, in order to be continually improving. And there are many facets to consider (management, testing, design, configuration, documentation, to give some examples). So here comes another question, what needs to be considered in order to have a good SQA? Or in other words, how can the quality of the software be meassured?

Standards

There are very well known software quality standards to which the processes in the software development cycle should be complied against in order to ensure a good SQA. These is very simple in concept, SQA follows some models that have requirements to meet in order to be considered of good quality, and that is it. These requierements cover the processes, activities, and everythinh that involves SQA. There are many examples of standards that are going to be discussed in a later blog. For now, this is the introduction to Software Quality.

References

Software Quality. (2018). What is Software Quality? Try QA. URL: http://tryqa.com/what-is-software-quality/#:~:text=Quality%20software%20is%20reasonably%20bug,satisfy%20stated%20or%20implied%20needs.%E2%80%9D

Software Quality. (2020). What is Software Quality? and How to achieve it?. testbytes. URL: https://www.testbytes.net/blog/what-is-software-quality/

Software Quality. (2020). Software Quality. SOFTWARE TESTING. URL: https://softwaretestingfundamentals.com/software-quality/

Software Quality. (2020). Definition of Software Quality. Xbosoft. URL: https://xbosoft.com/definition-software-quality/

Software Quality Assurance. (2020). Software Quality Assurance. SOFTWARE TESTING. URL: https://softwaretestingfundamentals.com/software-quality-assurance/

Software Quality Assurance (2020). What Is Software Quality Assurance (SQA): A Guide For Beginners. Software Testing Help. URL: https://www.softwaretestinghelp.com/software-quality-assurance/

Images from https://undraw.co/

Deja un comentario

Diseña un sitio como este con WordPress.com
Comenzar