I'm a software tester (a "quality assurance analyst"). The project I work on used to be QA'ed by an offshore team, and they wrote the absolute worst automated test programs you can imagine. Basically, the client company contracted them to automate 90% of the test cases, so they did just that. Note that there was no stipulation that the test cases would work, so you can run these test suites and 70% of the test cases in them will pass... if you're lucky. Of course, the point of test cases is to test the application and ensure that it's working, so if the test cases are failing, you have to execute them by hand to verify that the failures are due to the test cases being bad, not that the actual application is broken. The offshore team was fine with that - after all, first, they were living up to their contract of having 90% of the test cases automated (but not necessarily working), and second, executing test cases by hand takes a long time, which, of course, means they are being paid for all that time.
We're not fine with that. We are a competent quality assurance team, and we want our automation to work well, so that we can spend our time actually assuring quality. Radical, I know. We want to discard the poor automation that we inherited and replace it with good automation. Our boss, who is both a multi-decade testing professional and an idealist, wants to use a system called BDD, which, in short, is a system where you write the test cases in plain English and the framework interprets what you write automatically and executes them. The thing is, it's not an easy process to get into place. You have to build the framework, which takes skilled developers, and you, as the analyst, have to learn how to write the test cases so the framework can interpret them.
Our team consists of three analysts - me and two others - who do not program, and two SDETs, who are the developers who have the skills to create the framework. The thing is, we don't have the time to do this. This team of five people support four platforms and half-dozen integrations, which are creating new features and releasing new versions every week, not counting other special projects. To give you some idea of how well we're doing replacing the automation, one SDET has been here for 1.5 years and the other 1 year, and they've been able to create one small suite of basic tests - it simply enters the application, does two basic tasks, and logs out. To their credit, they've done it on each of the platforms, but that's all they've done. They've been too distracted by all of the other work that keeps piling in.
So, last week, we started gearing up again for normal work after all the GDPR stuff I mentioned in a previous post, and one of the things is a completely new feature that has a deadline of next month. It needs test cases, so my husband (our team lead) tells me to write the test cases (manual ones, not automated), because that's my specialty here, and he gives me a deadline of Wednesday (which is now tomorrow). I ask him if he wants them written in BDD, and he says yes, because we need to learn how to do that, and I tell him if he wants that, it won't be done by Wednesday - it's time-consuming, especially because we are unfamiliar with it, and this feature is huge. He says, okay, fine, write it normally, and we'll make it BDD after the deadline has passed; we need the test cases more than we need the BDD.
Now, remember, I described our boss as an idealist. He hears this, comes over, and says no, do it in BDD. We tell him that we don't have the time, that we need the test cases now, and he says that we'll get faster as we learn how to write them, and that we need them in BDD so that the SDETs can automate them. We tell him that at the rate we're going, it'll be two years before the SDETs automate them, so we'll have plenty of time to transform them into BDD later, and he turns and points at one of the tech support agents, saying that she'll automate them (she's been doing some automation work when the tech support queue is empty). At this point, I made a pithy comment about when is she going to get paid correctly for her work (I'm sure the TS agents make half of what the SDETs do), and my husband told me to shut up, which yes, he's right, I shouldn't have said anything.
Anyway, basically, the boss insisted, so now I'm here working overtime trying to get these test cases done. The day that we had that discussion, I wrote a total of three test cases in a suite that's turning out to need a good forty of them. Why so few? Because the boss critiqued and rewrote each one, when I wasn't spending a half hour explaining to him what the feature was all about (since he doesn't know a damn thing about the system or the new feature). And writing the test cases so that they're plug-and-play for the SDETs means I have to plan out all of the data and states. For example, I could write a test case for a manual tester that says, "Check to see that the best score from the student's four attempts in a homework assignment is recorded as his overall grade", and the tester can figure out for himself how to set that up to test that correctly and efficiently. To do the same thing for automation, I have to locate the content to be used, decide how many questions will be put in the assignment, and decide how each question will be answered in each attempt so that the scores will be what I want them to be, and then figure out how to communicate all that in the test case. That's an hour's work at least.
And to top it all off, the manual testers have already finished testing the feature. The point of having test cases is to have them ready so that the testers - either manual or automated - use them to test the feature. But no, they're done, and here I am, working late to hit a deadline to produce test cases that the manual testers don't need and the SDETs will probably never even look at for two years, if ever.
At least the company provides free snacks and Diet Pepsi.
Edit: My husband, who took the day off today, just called and asked me to come home, saying that hitting the deadline of tomorrow is not necessary. I refused. I told him that I want to send the boss the message of what his insistence of sticking to ideals would cost, in terms of practicality, quality, and morale.