前面提到QA面试中五个if else语句的coverage。 想起以前公司印度女QA写test case的事情。那时候我刚进team,需要测一个大概工作流程。
例如:修改名字,trigger资料修改类型1.1,修改性别也是1.1, 改安省的地址2.1, 改BC到AB是2.3, 改NB到其他国家是3.1,改其他加拿大电话是4.1这种,改成国外电话是4.1, 国外改国外电话是4.1 。修改SIN卡是5.1,这种修改会在API中可以看到的这个数字显示。
每一个combination加上不同的line of business,就会trigger不同的工作流程,每一个工作流程都有一个数字在API上有显示,代表不同类型的工作流程。
除了以上这几种举例的资料修改,还有其他还有很多,我没有一一举例举出来。
DEV这边一个做完,就给我们测。Agile就这点好,可以在code刚刚写出来以后就给QA以减少以后错误的发现,越晚发现bug,毕竟成本更高,需要花费更多人力去测试。这暂且称第一阶段的测试。
随着时间的推移,开始要测intergration,就是第二阶段所有已经写完的程序合在一起的资料修改组合了。印度QA女决定把所有的资料修改的combination都写出来,例如改安省改安省的地址,安省改称AB省,安省改成BC省...BC改AB,AB改BC。还有例如地址安省改安省加上电话从安省修改称安省。她在预估写test case的时候就想预估大量的时间。我一听,晕。这得测到猴年马月去啊,几何级别的test case需要执行啊。
我那时候在team里已经有一小段时间了,有的时候会和DEV交流一下。team里有一个中国女DEV,是其他team里借来救急的。她已经做了一段时间了,对程序也比较了解。我每次一问她,她都能很确切地给我答案。我于是就去问她,这个workflow到底怎么个运行发的?是不是不管资料如何修改只要数字加起来符合某一个工作流程的combinatino,这个工作流程一步步运行下去没有问题,就应该是没问题了?她说是的。
那我心里就有数了,这个工作流程设计大概是怎么样的。只需要修改不同的资料的组合,看工作流程号码是否显示正确。然后抛开资料修改,走流程,所有节点走完了,工作流程就应该测完了。
她不太相信我说的,后来要找DEV team lead开会问。那个dev lead是一个这里长大滑铁卢毕业的印度阿差。那天我们正准备开会,那人正准备溜回家。被那印度女同事抓一个正着,因为我们看到他背着背包正要往外面走。接着就去开会了,果然他说的和我打听到的一样,整个intergration测试完全可以测不同的资料修改组合是否trigger了正确的工作流程号码,然后在测一个流程能否各个节点都走正确。这样test case组合就少了多了去了。
那个印度女QA也在印度和加拿大加起来至少做了10多年了。很多QA team在测试的时候,从来没有什么者DEV lead给大家讲解程序是如何设计的,估计qa lead/manager也从来不要求自己的team去搞懂这些。
我有听到consulting这一边的印度lead报告的时候说他们一天测试了几千个test case。我曾经看到过他们的test case,绝大部分都是copy paste,然后中间某一个字改一改,看得我都晕死了,根本不知道这一堆test case到底有那些不一样。还得一个字一个字的去查不同的地方。那些印度QA manager居然一点不质疑他们这几千个test case一天是怎么测的。