The Software Tester
"By the work, one knows the workman."
— Jean de La Fontaine
Characteristics of Good Testers
Case Study 9-1: Not all testers need all of the same skills
What Do You Look For in a Tester?
One exercise that we do in every Test Management class is ask the students to make a list of what characteristics they'd like to see in a tester. The results of the exercise are instructive, because everyone quickly realizes that the skills required are extensive and diverse and probably don't exist in any one person, or even in most groups of testers. The good news is that not all testers need all the skills mentioned and some of the skills are not required as much at certain levels of test. For example, programming skills are very useful for unit testers, but may be less important for acceptance testers. Here are the unedited results of a recent class:
Common "serious" answers include:
- Is inquisitive
- Has functional/business knowledge
- Is detail-oriented
- Is open-minded
- Has a good personality
- Has a technical background, but does not want to be a programmer
- Has testing experience
- Is a team player
- Is flexible
- Is self-reliant
- Is self-starting
- Has a positive attitude
- Is logical
- Handles stress well
- Is a quick thinker
- Knows specific tools
- Has good common sense
- Is politically astute
- Has a sense of humor
- Understands the software development lifecycle
Common "fun" answers include:
- Is still breathing
- Has a destructive, devious nature
- Likes to party
- Possesses a thick skin
- Likes to work long hours
- Likes to say, "gotcha"
Finding Good Testers
Finding and hiring the right people for the right job is a challenge in every organization. Managers of some organizations, such as development managers, may choose to hire mostly recent college graduates who have received a degree in computer science, information technology, software engineering, or some similar discipline. Unfortunately for the test manager, looking for testers is complicated by the fact that very few universities offer a curriculum focused on software testing (but this is beginning to change). So test managers must either hire new graduates and train them, or look to other sources such as development and QA, or poach them from other companies' testing departments.
Developers
Hopefully, all developers are doing unit testing, and maybe some integration testing, so they have some knowledge of the testing discipline. Their knowledge of system design and coding can also help them be effective testers and will afford them credibility with the development group. Even though some developers make good full-time testers, most developers that we know don't want to become testers. Still, there are many reasons why a developer might decide to try his or her hand at becoming a full-time tester. Perhaps, for example, there's an exciting project that needs more testers, or help is required in automating test scripts (which is, after all, a form of programming).
Users
Users, or former users, often make good testers, especially at high levels of test like acceptance testing. Many users will not have any experience in testing, but their knowledge of the business function may make them valuable additions in spite of their lack of experience. Of course, you have to be careful not to alienate the user community by trying to "steal" one or more of their key staff members.
Help Desk / Technical Support
Help desk / technical support personnel are often good testers for all of the same reasons that users are. Plus, help desk personnel may have an even broader vision of the business function than many users, since the view of the help desk personnel is shaped by the views of many different users.
Technical Writers
We had to include technical writers since one of the authors of this book is a trained technical writer. However, even if Stefan were not a technical writer, we think that technical writers can be good testers because they provide great attention to detail. Technical writers are also valuable assets in the creation of testing documentation.
QA Personnel
QA personnel understand the importance of quality and of process use, which makes them an excellent addition to the testing team.
Recent Graduates
You could hire your testers right out of college and train them the way you want them. Recent college graduates are enthusiastic and willing to study and learn more about the testing discipline. They aren't afraid to try new things, because they don't suffer from "we always did it this way" syndrome. In the last few years, some colleges are even teaching their software engineering students about testing, something that very rarely happened a decade or so ago.
Rex Black, author of Managing the Testing Process, is working with professors from Polytechnic State University and the Milwaukee School of Engineering to develop testing courses. Professors Cem Kaner and James Whitaker are well-known testing gurus who work at the Florida Institute of Technology, where a degree in software engineering with a specialization in testing is available. Professor Alan R. Hevner of the University of South Florida teaches a graduate level seminar on software testing that emphasizes many of the concepts detailed in this book. At the time of this writing, other universities are considering or developing curricula of this nature.
Other Companies (New Hires)
It's a fact of life that some companies are always downsizing, while others are expanding. It's a real bonus if you can hire a tester who has already been trained by another company (including offering to convert consultants into full-time employees). This is also a good way to acquire expertise on a particular testing tool.
Hiring Testers
It used to be that in order to hire a new employee, a manager would interview an entourage of candidates and then select one. Undoubtedly, many of you have taken part in both sides of this process: as the job applicant and as the hiring manager, and you probably remember this as a very time consuming and stressful process. Many managers monopolize the conversation and barely allow the applicant a chance to talk. Hiring a tester is a two-way street - the test manager is hiring the tester, and the tester is "hiring" the manager and his or her organization.
According to Bev Berry, Director of Business Development for ProtoTest LLC, "Many test managers are not given training on how to conduct interviews and hire the right people." Bev has identified several important and helpful techniques to effectively interview and hire testers. We've included many of Bev's tips in this section.
Define Job Requirements
Key Point |
If you don't define what you're looking for upfront, you won't recognize it when it walks through the door. |
Have your job requirements defined before you start interviewing. Define and prioritize what you are looking for. We're amazed at how often this is not done. Many managers don't fully understand the skills and talents they want and/or need to get the job done well. If you don't define what you're looking for upfront, you won't recognize it when it walks through the door. Spend some time determining what type of tester you need technically, interpersonally, and at what level of career development. If you're not finding that person after several interviews, be open to re-evaluating your job requirements and seeing what parts can be modified.
Read the Candidate s Résumé
Prior to your interview, read the candidate's résumé and take notes on specific areas you want to address. We hear over and over again how often testers experience interviews where the hiring manager never even read their résumés. It's important that the candidates feel they are dealing with someone who understands what they've done in the past; otherwise, they won't have any respect for you or your organization.
Prepare Yourself Mentally
Prepare yourself mentally and be present. Clear your head a few minutes before you meet with the candidate. You must be focused during the interview - if you're off thinking about which meeting you have to go to next, you'll likely miss key indicators and the candidate will sense it. You must listen well and take in as much information as you can about the candidate, technically and personally. If your mind is elsewhere, you can't listen effectively and your powers of discrimination are greatly diminished. Active listening skills are important in conducting good interviews.
Key Point |
You must be focused during the interview - if you're off thinking about which meeting you have to go to next, you'll likely miss key indicators and the candidate will sense it. |
First Impressions Are Important
First impressions are important. Remember, you're selling the candidate on you and your organization as much as they are selling you. Make good eye contact, smile, have a firm handshake, and sense as much as you can about what kind of person you are dealing with. Pay attention to what you're sensing and make note of it.
Key Point6 |
Remember, you're selling the candidate on you and your organization as much as they are selling you. |
Your goal is to put the candidate at ease so you can learn as much about this person and their genuine characteristics as possible. Create a peer-to-peer environment; make it safe for them to reveal information. It's critical to gain trust if you want an open, honest dialogue.
Learn How to Ask Questions
Your job, as a hiring manager, is to gain as much information about the candidate as possible. Ask open-ended questions. Make notes of how the candidate responds to questions. Do they talk incessantly? Do they answer everything "yes" or "no"? This gives you vital information about their interpersonal skills in the work environment.
Keep the candidate talking. We're amazed at how often testers tell us after they've interviewed with a manager, "Well, they never really asked me any questions." The manager spends most of the interview time talking about the project, the problems, how they are testing, and other topics that aren't directly related to the tester being interviewed. It's important to ask questions - lots of them - and stay away from questions that can have a "yes" or "no" response. Asking a tester, "Have you ever written a master test plan?" gets you nothing. Changing the question to, "Tell me your definition of a master test plan and why it's significant to the testing process" will give you much more information. One of our favorite questions to ask testers is, "What are some of the challenges you've faced as a tester and how did you overcome them?" This single question can give you volumes of information about the candidate. Be thorough. The "tell me about a time when…" questions generally solicit meaningful responses that will help you evaluate the candidate.
Key Point |
One of our favorite questions to ask testers is, "What are some of the challenges you've faced as a tester and how did you overcome them?" |
Ask Candidates to Demonstrate Skills
It's sometimes very difficult to see past the words on a job applicant's résumé and the answers received during an interview. Managers looking to hire a tester who can "hit the ground running" might want to ask candidate testers to review a specification and describe what test cases they would write or what strategy they would use for testing. In order for this approach to work, the specification must be of a general enough nature that each candidate can understand its meaning. For example, if you were hiring testers to test an insurance application and you're considering candidates without insurance experience, it might be difficult for them to create viable high-level test cases. A way around this problem is to choose an application that is understandable to all candidates (we use an ATM application) or have them write unit- or integration-level test cases that don't require intimate knowledge of the business application. Of course, if one of your considerations is industry expertise (in this case, banking), then by all means use an example from your industry.
Key Point |
Managers looking to hire a tester who can "hit the ground running" might want to ask candidate testers to review a specification and describe what test cases they would write or what strategy they would use for testing. |
Take Notes
Take notes. It's important to write as much pertinent information down during the interview as possible. You'll forget things after you've interviewed five candidates for the position. Take notes, but be selective - you don't want to take so many notes that you miss paying attention to the candidate. Create a balance between listening and writing.
Answer the Candidate s Questions
Answer the candidate's questions. Near the end of the interview, you should ask the candidate if he or she has any questions for you. Make sure you understand the inner workings of your organization so that you can accurately address any questions. This is a good time to get them excited about working with your organization. As a hiring manager, you have a responsibility to sell the candidate on your position.
Check References
Always check references. The fact is that people change very little over time, and the best predictor of future performance is past performance. References give you additional and valuable information about your candidate that you may not get during the interview process. They give you a deeper understanding of your candidate's strengths and weaknesses, so you're better able to assess them for your needs. Often, you'll find a theme when checking references on a candidate - listen to it. People generally don't want to provide negative information about another person. They'll soften their choice of words but, if you pay attention closely, you'll be able to hear the underlying message. If the message is consistent among three or more references, it's important to give any negative information heavy weighting in considering that candidate.
Key Point |
The best predictor of future performance is past performance. References give you additional and valuable information about your candidate that you may not get during the interview process. |
Team Interviews
Some test managers employ team interviews as a way of selecting new testers. This is done because these test managers realize the need for the new candidate to "fit in" with the rest of the group. When team members participate in the selection process, they have a vested interest in helping the new team member be successful. Using team interviews does not, in any way, relieve the test manager of the responsibility of the selection.
From a human resources perspective, remember that it's important to treat all candidates fairly and equally, so if you give one person a "test," you should give all candidates the same or similar test. Similarly, if you're using "group" interviewing techniques, you should use them on all candidates. Spend the time to get the right person. It's always easier to hire a tester than it is to fire one.
Key Point |
When team members participate in the selection process, they have a vested interest in helping the new team member be successful. |
How Many Testers Do You Need?
Two of the most common questions that we receive are "How many testers do we need?" and "What is the correct ratio of developers to testers?" Usually, the test managers asking these questions secretly have a number or ratio in mind that they want to hear so they can go back to their manager and use it to justify more testers. We can probably find a reference that would answer this question any way the test manager wants. Some references say that the number of developers should equal the number of testers, or the ratio of developers to testers should be 2:1, 3:1, or some other number.
Key Point |
The correct ratio of developers to testers depends on the quality of the software being tested, the skill of the testers, the level of test automation, and the amount of time that you have to test. |
Key Point |
In his book Software Testing in the Real World, Ed Kit states that the typical ratio of developers to testers is 3:1 or 4:1 (as of 1995). |
The correct answer to "What should the ratio of developers to testers be?" is, of course, "It depends." In fact, it depends on the quality of the software being tested, the skill of the testers, the level of automation of the testing, and the length of time allowed for testing. For example, if the regression test is largely automated and the regression test set is relatively stable, the number of testers required to do the job would be much less than the number required on a rapidly changing application where the testing is mostly manual.
Even after we give this little speech in class, though, someone still says, "That's all well and good, but what should the ratio be?" Although we know that the ratio at one company is not indicative of what the ratio should be at another company, we think that it's instructive and interesting to understand what's happening in other companies. For example, if your ratio of developers to testers is 3:1 and someone else's is 2:1, it's hard to argue that you need more testers based on this data alone (maybe you have better test automation or more experienced testers). But if your ratio is 100:1, then you probably have a strong argument that your ratio of developers to testers is out of balance.
Key Point |
Roger Sherman reported that the developer-to-tester ratio at Microsoft is 1 to 1. - Best Development and Testing Strategies of Microsoft Proceedings from the STAR West 1998 Conference |
Case Study 9-2: Survey Results from a Typical Class of 25 Students
How Many Testers Do You Really Need?
In our Test Management classes, we ask each student what the ratio of developers to testers is in their company. Out of a 25-person class, the breakdown usually looks more or less like this:
Ratio of Developers to Testers |
Number of Students Who Raised Their Hand |
---|---|
Fewer Developers than Testers |
1 |
1:1 |
5 |
2:1 |
5 |
3:1, 4:1, 5:1 |
10 |
6:1, 7:1, 8:1, 9:1, 10:1 |
3 |
Some Crazy Number Like 100:1 |
1 |
Obviously the data shown in the table above cannot stand up to any kind of statistical scrutiny, due to the way it was collected (those spoil-sport mathematicians), but anecdotally, we've seen similar results often enough that at least we're convinced of their accuracy. In his book Software Testing in the Real World, Ed Kit cites examples where the number of testers exceeded the number of developers, but concluded that more typical ratios are in the range from 3:1 to 4:1 [developers to testers].
Retaining Staff
When you consider how much it costs to hire and train new testers, it really behooves organizations to retain effective staff members. We have, on occasion, been asked by some companies to review the results of exit interviews conducted with departing employees. Some of the reasons given for leaving were the normal personal and professional reasons that you would expect, but we were also struck by the incredibly trivial reasons that some employees gave for leaving a company. One tester identified as a key employee, for example, was leaving because she felt that she had been "cheated" out of two days of vacation and the system was too rigid to make it up to her. The manager had to go through the entire hiring and training process because of two days of vacation! And of course, it's not known if the new employee will also turn out to be a "key" employee.
Key Point |
There is a strong correlation between increased training and improved worker productivity, profitability, and shareholder value. An American Management Association study discovered that companies with increased training are 66% more likely to report productivity improvements, twice as likely to reduce turnover rates, and 150% more likely to improve the quality of their products and services. - Dick Grote and John Boroshok, Are Most Layoffs Carried Out Fairly? |
Here are some of the typical and not-so-typical reasons given for choosing employment elsewhere:
- No one appreciated the work that I was doing.
- No recognition was given for all of the extra hours that I put in.
- The developers got all of the training.
- Testers are seen as second-class citizens.
- The hours are too long.
- They don't understand how important testing is.
- I was asked my opinion, but no one really listened to my answer.
- My salary was too low.
- I wanted to telecommute one or two days a week, but they said, "No."
- This company was too bureaucratic.
- My manager wouldn't let me do my job.
- Everyone said our work was important, but they would ship the release whether we were done testing or not.
- I was not hired to be a programmer (no doubt, a testing tool issue).
- QA gets stuck with all the SLJ (we think "SLJ" means trivial jobs).
We had intended to write an entire section on how to retain employees, but we believe the list above says it all. To summarize, employees (testers) expect:
- To be recognized for their effort and contribution.
- To be seen as part of the overall team that delivers a quality product.
- To be treated as professionals.
- To be heard.
- To receive pay commensurate with their experience and the job that they perform.
- To receive appropriate and adequate training.
- To perform the job they were hired for.
- To be treated as individuals with personal as well as professional needs.
Working Overtime
It's a fact of life that most projects have periods of time where the resource requirements exceed the availability of staff members. One way to solve the problem is to acquire additional resources in the form of temporary testers drawn from the development group, QA, the user community, or from other sources. But if the need for additional resources comes unexpectedly, as it frequently does, and if the deadline is near, adding more people to a late project may just delay it further due to the training curve of the new people brought on board. So that, of course leads us to overtime. Having your staff work over-time is the best way to obtain small doses of extra resource. Overtime, though, is a resource that needs to be carefully managed. If overtime is just a way of life day in and day out, the test manager will have nothing in reserve when an emergency arises.
Key Point |
Adding more people to a late project may just delay it further due to the training curve of the new people brought on board. |
And if overtime is the norm, it loses some of its effectiveness as the adrenalin rush subsides and the staff members realize that there's no light at the end of the tunnel. Soon, you'll find yourselves doing in 9 or 10 hours what you used to do in 8 hours. Initially, staff effectiveness may begin to drop, and if "routine" overtime is continued long enough, morale will begin to decline. Managers must remember that overtime is like the reserve in a military campaign - once it's committed, there's no further reserve available.
Key Point |
Managers must remember that overtime is like the reserve in a military campaign - once it's committed, there's no further reserve available. |
If, in fact, overtime is routine in your organization, this may be indicative of a bigger problem and is an indication that a downward spiral toward inefficient and unhappy workers has begun. Are you understaffed? Are you ineffective? Are you trying to do too much? Remember the concept of risk analysis? Software risk analysis helps determine the priority of testing and planning risks, which help us determine what we can and cannot do with available resources. If you find yourself in the situation described above, we recommend that you go back and re-read Chapter 2 - Risk Analysis.
Finally, testers must be shown appreciation for their overtime. A simple "thank you" is a good start. Future time off, or even extra pay, should not be out of the question, even for salaried workers.
And finally, if your entire staff (or a large part of it) is working overtime, so should you, even if only for a show of support. There's nothing worse than working day and night and watching your boss go home every night at the stroke of 5:00 PM.
Beware of the testers who always want to work overtime only because they need the extra money. Just because they're willing participants doesn't ensure that their efficiency and morale will not suffer with extended overtime.
Software Tester Certifications
Over the years, we've received many queries from testers and test managers who were interested in some type of technical certification. We've always thought that the concept of certification is sound and offers a lot of benefits to organizations that urge their employees to become certified and to the individuals who participate in this endeavor. Specifically, certification is a way to recognize professional achievement, provide a career path, and introduce an incentive to learn about testing and related fields. We've also worried, though, that there's not a single industry-wide certification program for software testers. Several different certification programs have emerged that have gained a certain degree of recognition, but the mere fact that there are multiple certifications available waters down the recognition one gets for achieving any one of them. On balance, though, the benefits of achieving any one of the certifications described below far outweigh any negative perception caused by the lack of standardization.
Key Point |
The concept of certification is sound and offers a lot of benefits to organizations that urge their employees to become certified and to the individuals who participate in this endeavor. |
The comments above are based on the opinions of the authors of this book. The rest of this section on certification draws heavily from an excellent article by Darin Kalashian and one of the reviewers of this book, Eric Patel.
According to Kalashian and Patel, "Certification is commonly defined as formal recognition by an institution that an individual has demonstrated proficiency within and comprehension of a specified body of knowledge at a point in time. It's important to note that certification is not registration or a license. It implies that you have fulfilled the requirements to become certified and that you have passed an exam. Once you become certified, it will be important to maintain your certified status by performing approved re-certification activities within a fixed timeframe."
There are several categories of certification shown in Figure 9-1. Perhaps the most familiar type is the product-based certification, such as Novell's Certified Novell Engineer (CNE) and Microsoft's Certified Systems Engineer (MCSE). The other major category of certification is software certifications, which come in two basic flavors: vendor-specific and organization-based. Vendor specific programs have some merit, but a broader aspect is gained through what are known as organization-based software certifications, and that will be the focus in this book.
Figure 9-1: Categories of Tester Certifications
The most widely recognized organization-based software certifications include:
- American Society for Quality's (ASQ) Certified Software Quality Engineer (CSQE)
- Quality Assurance Institute's (QAI) Certified Software Test Engineer (CSTE)
- International Institute for Software Testing's (IIST) Certified Software Test Professional (CSTP)
- Institute of Electrical and Electronic Engineers' (IEEE) Certified Software Development Professional (CSDP)
- British Computer Society's (BCS) Information Systems Examination Board (ISEB)
Table 9-1 provides a comparison of various elements of each software-quality-centric and software-test-centric certification program.
Software-Quality-Centric |
Software-Test-Centric |
|||
---|---|---|---|---|
Certification |
CSQE |
CSDP |
CSTE |
CSTP |
Organization |
ASQ |
IEEE |
QAI |
IIST |
First Started Certifying |
1996 |
2002( [1]) |
1996 |
2000 |
Total Number of Active Certifications( [2]) |
1,969 |
167 |
2,200+ |
153+ |
Work Experience |
3 – 8 years |
4-1/2years |
0 – 6 years |
1 year |
Exam |
4 hours, 160 multiple multiple choice questions([1]) |
3-1/2 hours, 180 choice questions([1]) |
4 hours, true/false, multiple choice, essay([1]) |
10 short essay exams (within 5 years) |
Type of Exam |
Open book |
Closed book |
Closed book |
Closed book |
Exam Dates |
June, December |
Spring, Fall |
Periodically |
Periodically |
Passing Score |
73% (550/750) |
Unknown |
75% (in each of 4 parts) |
80% (in each exam) |
Recertification Period |
3 years |
3 years |
1 year |
None( [5]) |
Average Salary Increase |
3%( [6]) |
Unknown |
19%( [7]) |
Unknown |
For More Information |
www.asq.org |
computer.org |
www.qaiusa.com |
www.softdim.com/iist |
Certification Costs (est.) |
||||
Exam Fee(s) |
$180 – $285( [3]) |
$450 – $600([3]) |
$250 |
$4,500( [8]) |
Study Materials |
$190( [4]) |
$120 |
$75 – $500 |
Included |
Exam Refresher / Test Prep Course |
$355 – $415([3]) |
To Be Determined |
$300 – $400 |
N/A |
Travel |
$25 |
$25 |
$25 |
$100 – $4,000 |
Total |
$760 – $925 |
$595 – $745 |
$650 – $1,175 |
$4,600 – $8,500 |
[1]IEEE is scheduled to offer exams in 2002 [2]As of December 2001 [5]IIST is currently identifying recertification requirements [6]ASQ 2001 Salary Survey, Quality Progress, December 2001 [7]CSTE brochure, QAI, all active CSTEs 1997-2000 [3]Higher fee is for non-members [8]$2,225 for five courses [4]CSQE Primer ($65), CSQE CD-ROM ($70), textbook ($55) |
Value of Certification to Testers
If certification is to be successful, the individual testers must find that there's value in it for them. This value may be the hope of a better job, promotion, prestige, or more pay. Testers will also be motivated to strive for certification if they feel that it will help them do a better job and demonstrate their proficiency in testing.
Help in Getting a Job
We won't say that if you get this certification or that certification you'll automatically get any job that you want, but some companies do look favorably upon certification when seeking candidates for testing jobs. Certifications show employers that the candidate has the motivation to learn more about testing, treats testing as a profession, and has a certain body of knowledge on the topic.
Salary Increase or Promotion
Some companies use certification as an indication that the employee is ready for greater responsibility (and maybe more money!). On the other hand, even if your company does not immediately and directly compensate you for your achievement, in the long term, we hope that your increased knowledge will help you improve your work skills to such a degree that you'll be recognized for increasingly more responsible positions. Of course, if your company totally ignores your effort, you may want to refer to the paragraph above entitled Help in Getting a Job.
Do a Better Job
Most people receive great satisfaction from doing a job well. Certification, and the training that goes with it, helps most testers perform their jobs better. Unfortunately, we are not aware of any studies that have been done to measure the increase in quality or productivity of work resulting from certification.
Value of Certification to Test Managers
Test managers are anxious for their staffs to become more knowledgeable and proficient testers, and most agree that certification is one way to achieve that goal. Most test managers also welcome a program that provides structure and goals to the training of their staffs.
Certain Level of Knowledge
If a tester has received one of the certifications mentioned above, that will assure the test manager that the employee possesses at least a certain minimal level of testing knowledge. Certification of all employees on the staff can help the test manager introduce common terms and methods, which can improve communications within the group and help the organization become more consistent in its processes.
Using the same certification program for the entire staff is more effective at introducing a commonality of terms than using multiple programs. That is, if one of the goals of the test manager is to establish a common vocabulary and philosophy of testing within the organization, he or she would do well to choose just one of the certification programs explained in this chapter and urge their staff to use that program over the others. If some employees wish to get another certification in addition to your organization's standard, then good for them.
Key Point |
If one of the goals of the test manager is to establish a common vocabulary and philosophy of testing within the organization, he or she would do well to choose just one of the certification programs explained in this chapter and urge their staff to use that program over the others. |
Incentive to Study
Time and money for training are often in short supply, so anything that encourages an employee to study on his or her own time is an obvious plus. Employees who pursue training such as certification on their own initiative are usually more motivated to learn than employees who are forced or "urged" to learn on their own, or to attend a class that they really don't want to attend. The incentive to learn can be further enhanced by offering employees some additional reward for completing the program. One of our clients, for example, presented newly certified testers with a gift certificate and honorable mention in the company newsletter. Other companies award extra vacation or "comp" time to successful individuals, or at least agree to pay for the study fees and course exam. These rewards not only are an incentive to study, but also show support of the certification program and of the employees who participate in it.
Motivation
Training is often a motivator for employees. Pursuing a formal regimen, such as one of the certification programs addressed in this book, can be a motivator for all participating employees.
Career Path
Test managers can use a certification program as a basis for creating a career path for their employees. For example, certification might be one of the criteria for being promoted from one level to another, or for moving from one job to another (e.g., from "tester" to "test analyst"). Since all candidates for promotion are required to complete the same standardized certification program, the promotion process is seen as fair and impartial.
Show of Support
Encouraging staff to participate in a certification program shows the employees that you support their careers and you care about their success. You can reinforce this support by allowing employees who are seeking certification some "company time" to work toward the certification.
Value of Certification to the Company
Everything discussed above that provides value to the individual and the manager ultimately helps the company that employs them. One added bonus for the company is that they can point to the certifications as "evidence" of the quality of the staff (and therefore the products) that they produce (okay, we'll say it, "Some companies may use certification of their employees as a marketing tool"). Employee certifications can also play an important role in helping an organization achieve ISO certification, since the ISO certification process requires managers to maintain employee training records.
How to Prepare for Certification
The first step in obtaining a certification is to complete an application and submit it to the organization to see if you qualify to sit for the exam. The next step is to prepare for the exam itself. This can be done through self-study, formal education, or some combination of the two. Most of the organizations that provide certification also provide training to help students achieve the prescribed goals.
All certification programs have a Body of Knowledge (BOK), which is assembled by industry experts and identifies best practices for professional performance. For example, ASQ's Certified Software Quality Engineer (CSQE) certification requires expertise within the following areas:
- Software Standards and Ethics
- Software Quality Management
- Software Processes
- Software Project Management
- Software Test Engineering
- Software Metrics and Measurement Methods
- Software Auditing
- Software Configuration Management
The IEEE's Certified Software Development Professional (CSDP) certification requires knowledge in:
- Software Standards and Ethics
- Software Requirements
- Software Design
- Software Construction
- Software Testing
- Software Maintenance
- Software Configuration Management
- Software Engineering Management
- Software Engineering Process
- Software Engineering Tools and Methods
- Software Quality
QAI's Certified Software Test Engineer (CSTE) body of knowledge covers:
- Quality Principles and Concepts
- Verification and Validation Methods
- Test Approach and Planning
- Test Design and Execution
- Test Analysis, Reporting, and Improvement
IIST's Certified Software Test Professional (CSTP) domain consists of:
- Principles of Software Testing
- Test Design
- Test Management
- Test Execution and Defect Tracking
- Requirements Definition, Refinement, and Verification
- Test Automation
- Verification Testing
BCS's Information Systems Examination Board (ISEB) body of knowledge consists of:
- Principles of Testing
- Testing Terminology
- How Much Testing Is Enough?
- Testing Throughout the Lifecycle
- Dynamic Testing Techniques
- Static Testing Techniques
- Test Management
- Organizational Structures for Testing
- Configuration Management
- Test Estimation
- Test Monitoring
- Incident Management
- Standards for Testing
- Tool Support for Testing
Recertification
Each of the certification programs listed in Table 9-1 requires recertification on a periodic basis. Usually, you can accomplish this by re-sitting for the exam (ugh!) or performing other activities that will earn you recertification credit. Examples include:
- Continuing education courses and/or tutorials
- Attend or present at seminars and/or conferences
- Professional meetings
- Committees
- Publishing
- Speaking engagements, presentations
Case Study 9-3: Certification Can Benefit You on Many Levels
How Certification Has Benefited Me
I'm glad that I made the decision to pursue certification. Being certified has benefited me on many levels. Being quite active in the software quality community, I have gained additional distinction and credibility with writing articles, speaking at conferences, and teaching courses. I'm a firm believer in continuing education. I enjoy the endless learning aspect of my continuing education efforts, and certification not only has supplemented my knowledge base, but also motivates me to remain certified. By continuing with my professional development activities, which I enjoy doing anyway, I now obtain the additional benefit of recertification credits that I can apply towards my future recertification efforts. Also, when I went to college there were no SQA or testing courses. Certification has helped me fill the void that traditional education left me with.
During a recent job hunt, one of my certifications was a key competitive advantage that helped me land job offers. In addition, with my newly acquired certifications since I got hired, I now have additional leverage during my next performance review. I have effectively increased my worth and value to my employers and in the marketplace. Moreover, certification has given me additional visibility and recognition within my company and has made me the de facto quality "expert" in my business unit. Mostly, I enjoy the personal satisfaction from achieving my career goals and inspiring others to follow the path and enjoy the benefits of becoming certified.
— Eric Patel
Case Study 9-4: Certification is one of the best ways to complement a software engineering degree.
Certification: Making My Life Easier
I have found that software quality certification is one of the best ways to complement a software engineering degree. An engineer by trade solves problems. A quality engineer attempts to solve problems in the most effective and efficient means while assuring quality. Organizations typically pay software quality engineers to drive end-product quality by testing prior to delivery. Some organizations realize that focusing on activities earlier on and throughout the development process can help achieve software quality. The tools and skills that I developed have allowed me to increase customer satisfaction, reduce development time, and have a team that upon project completion was sane enough to succeed in the future.
Another reason why certification adds value is that it makes my daily functions easier. If I identify a process improvement that saves months of overtime or a metric that aids in resolving a real issue, my life is easier and, more importantly, less chaotic. I was recently discussing this issue with a manager of a Software Quality Department in a very successful company. We were discussing how their products come to "releasable quality levels." His answer was that quality is achieved by extensive testing. Furthermore, we talked about how although testing may be a necessity, it can be a very ineffective process.
As part of the certification program of study, tools and techniques are identified and applied with the goal of preventing defects from being inserted into the product in the first place. This allows the entire team to be more effective and produce a higher quality product or service. The team is not solely dependent upon testing to produce high quality software. We also acknowledged that subjects like prototyping, modeling, and project management weren't new ideas but ones that are hard to implement. Certification taught me to "tool-smith" my abilities and develop skills to fit the right tool to the job.
Attaining certification is the first step. Certifications must be renewed. This means constant learning, demonstration, and application, all of which require ongoing commitment. As a hiring manager, I have found that there is no better way to reward this professional commitment than to recognize individuals' professional certification and accomplishments.
— Darin Kalashian