Let’s say you’re a new tester. You start your first day on the job, you are introduced to the team, and you are shown to your desk. You boot up your computer and meet your adversary: the software you are meant to test. Accompanying that software is a set of requirements that will guide you in your task.
A quick Internet search for “types of requirements” brings up various systems for categorizing requirements, including Hewlett-Packard’s FURPS+ model and the one advanced by the IEEE. These models can be helpful to those who gather requirements, but they’re not all that useful to a tester. For testers, I propose a different, much simpler system in which requirements are categorized by the way they should be tested. For testers, there are really only three categories: explicit, implicit, and latent requirements.
Requirements for software are usually grouped into a bewildering array of categories. Functional and nonfunctional requirements are on top, and a huge number of subcategories are underneath. Here, Clint Hoagland boils it down to three categories, differentiated by the way they should be tested.
Software testing is not about learning a language and implementing it. It is something more than that and that makes it different. The good software tester must be able to create new ideas continuously. Because testing is not about just executing documented test cases and sending reports with green and red marks.
Software testing is the most important part of the project life cycle, where quality is being verified and improved. And when you are holding that big responsibility, constant evaluation of yourself is mandatory. And evaluation here means training and improving brain’s capability to generate new ideas.
Why do we need ideas for testing software? Read the post to find out the 3 reasons why new ideas are so important.
Change is the only constant – isn’t it?
This statement is true for many aspects of our life, but in the case of software – change is highly visible. Software has become an integral part of our lives. With the widespread usage of web apps, mobile apps and the Internet of things – software has become indispensable.
This massive adoption of software and penetration of technology has created unprecedented demand and competition in the market. To serve consumers in this competitive market, new models to develop and distribute software have evolved. Consumers of this new age have little attention span and the cost of switching to competitors is low. Gone are the days when consumers were obliged to contend with what was offered to them. They have more options, they are more aware and so they are more demanding. Software providers have to add continuous value to retain customers and remain in business now.
There is a lot of focus, and rightly so, on testers getting to know their client’s business to help them test more effectively. In fact, some companies will only look for testers to join them that already have the required specific domain knowledge e.g. those in the investment and pension industries.
However, as testers do we understand our own business? Do we know who our customers are, and what they need from us? Just as important, have we stopped to consider what we need from them?
What type of business is testing?
Conceptually there are two main types of business: manufacturing and servicing i.e. there are companies that make ‘stuff’, and there are those that provide a service. It is the difference between the construction company that builds your new home, and the law firm that handles the deeds and mortgage for it.
So which one suits testing best? Well, do we make/produce anything that would be used by our client on a day-to-day basis? Read on to find out more.