If statistics are to be believed, software technology changes everyday for the better. There is always a quest to learn new technologies, languages, and methodologies among testers. In such a dynamic environment, often the importance of soft skills is overlooked. This article explores the impact and importance of soft skills in software testing.
Importance of Soft Skills
Broadly speaking, we can view software testers as having two kinds of skills: one set used to perform basic duties at work, and another set of skills used to approach work. The former can be categorized as technical skills and the latter as soft skills. To elaborate more on soft skills, these are the ones that define one's approach towards work, life, problems, etc. Soft skills are people skills. The best part about mastering them is that the application of these skills is not limited to one's profession, but their scope reaches all aspects of life. Technical skills may teach one how to meet the expectations of the job, but soft skills teach one to succeed, and to exceed expectations. It is surprising that we spend our time educating almost exclusively in technical skills.
Having said so much in favor of soft skills, my intention is never to undermine the importance of technical skills. It's nearly impossible for a tester to survive in the profession without sound technical skills. What I intend to challenge here is a popular myth: Technical skills, and only technical skills make a tester a complete professional. I firmly believe that both technical and soft skills compliment each other and the balance between these two is what makes a tester a complete professional. Now, let's have a look at the various soft skills that make up a successful software tester.
Discipline and Perseverance
One obvious aspect of testing is that it can be extremely repetitive and may require a lot of manual effort. Consider the following situations:
- A tester is struck with a bug that is not reproducible at all the instances. In order to reproduce the bug he goes through the whole series of steps again and again.
- As part of a daily routine, a tester has been asked to collect data about test cases executed, bugs logged, etc.
- After discovering a defect, a tester is supposed to write steps to recreate the defect.
There can be numerous examples that prove the reiterative nature of the job. A very predictable reaction to this repetition is to simply get tired of the job. But soft skills include the psychological tools to persevere, and to find ways to make effort more productive and interesting. This attitude difference helps a tester maintain focus and higher levels of quality work. It brings the ability to carry out task at hand in spite of difficulty.
It may seem odd to classify reading as a skill. But its importance becomes more obvious when we have to deal with large chunks of information every day. As testers, we routinely encounter large quantities of data to read and comprehend. At the requirements review stage, when testers have to review hundreds of pages of requirements, the application of reading as a skill makes a big difference.
Consider this fact about reading: An average person reads at the speed of about 200-250 words per minute. With the structured and scientific approach to reading, the reading speed can be more than 500 words per minute, and with improved retention and concentration. Correlating this with software testing, a requirements specification that would otherwise take a tester eight hours to read and comprehend, would take around four hours with improved reading.
Negative thinking can be the useful ally of a tester if it is applied at the right time. For a new product, a tester is working to create a QA plan or a master test plan. While mentioning the risks involved in the project, a tester has to consider all the things that can go wrong during the lifecycle of project. Training the mind to think negatively in such situations helps testers develop an efficient contingency plan.
Let's also consider the test-design phase. An important part of test coverage and design are the tests that represent the way the application under test could fail. Every tester would agree that testing is incomplete without such tests. Again, negative thinking helps testers derive the negative user scenarios. Thus, negative testing is a skill. A word of caution here; this type of thinking is only for specific situations. A tester has to be smart enough to identify such situations and wear an appropriate thinking hat to deal with the situation.
Communication and Interpersonal Skills
Communication and interpersonal skills form the necessary ingredients for success in any profession. Communication is something that we always do in our personal lives as well as professional life. Communication is a very basic human skill and one cannot go very far without it. Though most of us agree that these skills are important, very few of us give these skills a high enough priority. For a tester, both verbal and written communication are crucial. Consider the situations below:
- A tester communicates a defect in a program to the developer. This communication includes written as well as verbal communication. This moment of communication instantly decides the rapport, which a tester enjoys with developers.
- The Testing department is often considered as the information source for management. This information pertains to product health at any given time in product's lifecycle. Very often during the lifecycle of product, a tester is asked to present the product and testing status either via verbal presentation or written data, e.g. by emails to management.
Many instances can be thought of in the day-to-day work of testers, where a tester can make a difference to the situations with effective communications and interpersonal skills.
Time Management and Effort Prioritization
When we talk about time management, it's not the time that we actually manage. We manage ourselves, our tasks, so that we make the most of our time. Testers have to juggle a lot of tasks Consider the instances below:
- A tester is involved in Exploratory testing. In such a case, a tester may be testing, creating test cases, documenting results, and creating test metrics all in a day. Such situations call for managing time efficiently.
- A Tester may be involved in more than one project or modules at the same time. The priority of work may vary. Such a situation is common and one needs to give special attention to effort prioritization even before venturing into multiple projects. Collect all the information that helps one prioritize the efforts.
Time management and effort prioritization define the importance given to each task and hence the sequence in which they should be performed. These skills help a tester manage work better and eliminate time involved in the tasks that are low priority, thus enhancing productivity.
A positive attitude is not accidental. It is something that is developed by training one's self. Attitudes are a matter of choice. Every situation we face offers us the chance to choose either to react positively or negatively. Perform a regular attitude checkup. It affects your job everyday. Attitude is a soft skill, and it is a central cause in a tester's ability to develop other effective soft skills.