软件测试员每天的主要工作之一就是了解用户的需求,通过测试产品,我们可以验证其是否符合用户期望,测试需求分析是软件测试工作的重要环节,在需求评审过程中,优秀的测试人员往往更善于挖掘隐藏的需求,这些需求可能涉及用户未明说的部分,某些用户可能更看重程序的性能,而不是简单的功能需求,这种情况下,测试人员能够更全面地了解用户的真正需求。
网上冲浪中,我们经常听到"男友求生欲"成为热搜话题,不少男生对女友"没生气"的言论表示不满意,在这个处理矛盾时,女生更关注男生的态度,这正是女生的"隐形需求",男生可能执着于追求对错,解决问题后却得不到回应,这也是女生的隐性需求。
专业一点的例子同样适用,一个PC客户端的命令行工具能够接收三个参数:前两个是数字,最后一个是一个运算符(加、减、乘、除),操作符仅限于这四种,该工具的功能是将前两个数字进行运算,然后输出运算结果。
在软件测试中,面试中经常会遇到关于写测试用例的问题,我相信,大多数人在编写功能测试用例时都能覆盖到三个参数的所有正常和异常情况,当处理矛盾时,女生往往会更关注男生的态度,这正是女生的隐性需求,男生可能更愿意追求对错,解决问题后却无法得到回应,这也是女生的隐性需求。
参数类型和参数个数是需求中明确写出来的,这些我们称之为显性需求,能够考虑到显性需求的用例会有很多,参数个数和最大值也可能被视为隐性需求,如果一个测试用例不考虑参数个数的正常和异常情况,也不会考虑数字的最大值,那么它可能无法覆盖到这些情况,如果一个测试用例不熟悉边界值分析法,可能无法考虑到参数个数的所有异常情况,如果一个测试用例不懂编程,可能也无法问出数字类型的问题,更不用说如何构造最大值了,这些都属于隐性需求范畴。
这里"隐形需求"是指参数分隔符的问题,开发人员可能会按照自己的习惯使用默认空格来分割参数,但测试后期发现,很多人会使用逗号进行分割,这可能带来新的修改成本,是否考虑参数分隔符并不是显性的需求,而是隐性的需求,因为"参数分隔符"只是一个常规的编程问题,其重要性不言而喻。
通过以上分析,我们可以看到,良好的需求分析是软件测试工作不可或缺的基础,只有从多个角度出发,全面理解用户需求,才能有效降低测试成本,提高测试效率。
