Software Testing: Standards, Certifications, and Resources


Software Testing – UTest Promotional Video

Not long ago I thought software testing is simple. Write good unit tests, make sure we catch the normal case, extreme case, and null case for some methods. Job done!

However, as the complexity of software increases, a better and better software test process must be made to ensure that the solution meets the requirements. This is even more true in the case of critical systems such as those in use in medical, financial, and defense systems.

In this blog post, I write some of the standards, certifications, and online resources in the field of software testing. Continue reading “Software Testing: Standards, Certifications, and Resources”

What do we mean by “Software Quality”?

Cathedral of the Madelaine - indoor
Cathedral of Madelaine – Salt Lake City, Utah

(continuation from ‘How can we define “quality”?’ blog post)

So, then it follows that “Software Quality” is the trait or character of a software that is subjective to different person or group of people.

That is why it’s very important for a software project to have a requirement specification that everyone in the development team is clear of (though not necessarily agreed of) so that there will be less (it’s unavoidable) confusion along the software development lifecycle.

Because different group of people will always different understanding of what the same software should have.

The end users usually prefer good user interface, ease of use, less number of steps in a process, and fast response. The stakeholders usually prefer fast software delivery, cheap software cost, and zero faults. The developers usually prefer good software practice implementation, decoupled system, and simple requirements.

Quickly looking at these differences, we can see that they can conflict with each other, and thus a balance must be made between them.

Windows from business perspective is a very successful product, thus it can also be said that it has a very high economic quality, disregarding what the computer geeks (me included) may say about it’s stability quality.

In reality, we cannot satisfy everyone, and in fact, trying to satisfy everyone is a recipe for a disaster.

Thus, I think it’s always good to identify who are the target of the software first, see what are the requirements that need to be prioritized, and satisfy these requirements.

Since software, being “soft”, have the advantage to be modified as the priority of the requirements change, this also means that a high quality software doesn’t always guaranteed to have the same high quality in the subsequent release, and also the opposite.

How can we define “quality”?

Mormon Temple
The Mormon Temple – Salt Lake City, Utah

Before looking at the dictionary proper definition of “quality”, let me try to answer it naively. So, according to djitz (that’s me):

Quality is a trait of an object that is subjective to different person.

For more formal definition, you can follow this link to Merriam-Webster definition of “quality”.

The first part of my definition doesn’t seem to be that much different from the dictionary definition, however I think the “subjectivity” part is important.

Because quality, just as it’s cousin, beauty, is in the eye (and mind) of the beholder.

There’s always different groups that side to certain products, just take a look at iOS vs Android, Windows vs Mac (or Windows vs Linux), Canon vs Nikon, the list can go on and on..

What causes this division? Obviously because different group of people prefer different quality from certain products.

The division doesn’t always come in two major groups, it can come in more distributed manner. Just take a look at the product reviews in Amazon.com. Although the peer reviews are helpful in determining a quality of the product, in most cases it can also confuses people. It’s not unusual to see a five star rated product review followed by a one star rated one.

So, just to sum it up, quality is people’s relative perception of an object.