更多测试人员-软件测试中人群规模和时间限制的影响

引用:Mika V. M?ntyl?, Itkonen J . More testers – The effect of crowd size and time restriction in software testing[J]. Information and Software Technology, 2013, 55(6):986-1003.

摘要

上下文:在软件验证和确认中,一个测试任务需要多少人和多少时间是非常关键的。在软件测试领域,还缺乏使用多个测试人员所带来的积极影响的研究。

目的:研究增加个体和施加时间压力是如何影响人工测试任务的有效性和效率。

方法:我们让130名学生在两种条件下进行了测试,一组是限制在2小时之内,另一组没有时间限制。

结果:我们发现有证据表明,人工软件测试是一项具有上限效应的可进行相加组合的任务,就像软件评审和可用性检查一样。我们使用了信息检索领域的F-score度量,从测试结果的有效性和测试效率两个方面分析了最优测试人数,可提供更清晰明了的分析结果视图。

结论:与无时间限制的个体相比,具有时间限制的个体具有更好的缺陷检测效果。然而,由于本研究仍然存在局限性,我们建议在软件测试任务中使用的人群规模应该根据人群产生的重复 告和无效 告的比例以及处理重复 告机制的效率来确定。

关键词:软件测试,团队绩效,分工,人为因素,众包,SQA方法和V&V方法,测试管理

1.介绍

2.理论背景

2.1 Steiner的任务分类

Steiner的一个关键观点是,除非能确定手头的任务类型,否则研究小组表现是没有意义的。我们在表1的编程和测试上下文中反映了这种分类。然而,斯坦纳的分类并不适用于大型任务

表1 基于Steine理论的软件工程任务分类

2.2 作为可相加任务的软件验证和软件确认

2.2.1 人类认知

许多认知偏差会影响人类进行验证和确认。这种偏差将导致遗漏缺陷和检测结果出错。这些偏差可以帮助我们理解软件测试的加法性质的根源。

  1. 只有一个人来测试系统提供了一个有限的观点,这个人可能会坚持他最初的假设。如果有四个个体来测试系统,然后系统从四个可能不同的初始假设开始测试,发现错误的可能性要大得多。
  2. 个人有限的注意力是软件测试需要更多的人的另一个因素,当软件测试中的一些缺陷由于注意力有限而被忽略时,增加更多的人到任务中很可能会增加检测概率。
  3. 影响缺陷检测的其他因素是知识或专业技能,经验丰富的人比经验不足的人更容易发现问题。

这些先前关于人类认知的工作可以帮助我们理解为什么软件验证和验证任务是可相加的。

2.2.2 小组缺陷检测效率

在人工测试中结合不同的技术时,更高的缺陷检测效率主要是通过拥有更多的测试人员而不是运用更多的技术来提高的。

在可用性检查(也称为用户测试)领域,为了发现更多可用性问题和减少评估者的影响,提出了几个检查人员,即,不同的评估员检测不同的问题集。Folstad研究了工作领域专家和可用性专家之间的可用性检查效率,发现当评估师的数量增加到5人时,工作领域专家发现了55%的问题,而可用性专家发现了68%的问题,相比于人数少的数据出现了明显的增多。

最后我们需要认识到关于重复检测模型的目标是用不同的数学模型来评估个人发现的共有的和独特的人工测试缺陷内容。重复检测模型的一个关键内容是不同的缺陷具有不同的检测概率,需要许多样本来获得可靠的估计结果。

2.2.3 个体缺陷检测效率

个体的缺陷检测效率是影响多人共同进行测试是否产生效益的重要因素。在人工软件测试、软件评审和可用性检查中,不同数据集之间的差异很大。在许多研究中,单个缺陷检测效率低于50%,在一些例子中,检测效率低于20%。这一点很重要,因为当单个缺陷检测效率较低时,这意味着可以通过向V&V任务添加另一个个体来提高效率。影响个体缺陷检测效率的因素有很多,人类的认知能力可以部分解释这些因素(如2.2.1)。

2.3时间压力对任务执行情况的影响

在其他研究中,时间压力被认为具有u型效应,少量的时间压力可以提高性能,但当时间压力变得过大时,由于错误增加和不合理的时间安排导致个人无法完成任务,这些会产生负面影响。在本研究中,我们关注的是小任务,因为它们比项目级别的大任务具有更好的控制性和更准确的度量,并且我们的小任务不同于其他的类似研究(分离和优化),而是相加和最大化。

3.方法与结果

本研究目标是研究在多人人工软件测试中应如何进行合理分工。我们特别感兴趣的研究问题有:

  • RQ1:在非交流的测试人群中增加单个测试人员对缺陷检测性能的影响是什么?
  • RQ2:时间限制对TR和NTR测试人员的缺陷检测性能有什么影响?
  • a)在个人层面

    b)在群体水平上(控制工作量时)

    第一年,79名学生在TR条件下参与实验,进行了两次限时测试,每次2小时,测试特征集A和B。第二年,51名学生在NTR条件下进行测试,不限时间,只测试一般特征集B。

    措施:

    在信息检索领域,效率 E的定义如下:

    其中E为效率,vdf为发现的有效不重复缺陷的数量,vdt为总有效不重复缺陷的数量。

    其中V为有效性,vdf为发现的有效不重复缺陷数量,idf为发现的无效缺陷数量。

    我们使用在数学上更可靠的F-score作为结果测度,同时使用E和有V进行计算,如下:

    F-score是一种在效率和有效性之间提供平衡的度量,F-score的峰值告诉我们测试人员数量的最佳位置。

    结果:

    缺陷数量和效率:

    通过实验我们发现,随着测试人员数量的增加,被发现的缺陷的数量也在增加。就所有数据集中发现的缺陷的数量而言,拥有n+1个测试人员比只有n个测试人员要好。随着测试人员数量的增加,由于缺陷的耗尽,添加更多测试人员的优势自然会减少。然而,在所有情况下,增加测试人员的数量会增加被发现缺陷的数量,因此,如果需要非常高的质量水平,那么对于传统的软件工程来说,拥有大量的测试人员(例如40人)实际上是一个很好的质量保证措施。

    我们发现时间限制在个体层面上,如有时间限制时人均发现缺陷数量降低,但对个人每小时发现缺陷的数量则增加。在当比较受时间限制的人群和不受时间限制的人群时,有时间限制的人群明显发现缺陷的效率更高。

    最后,我们发现测试人员越多,缺陷检测效率的波动越小,即使用多个个体的好处是“好(可以发现多的缺陷)”(95%)和“坏(发现少量的缺陷)”(5%)场景之间的差异较小。

    有效性和F-score:

    重复缺陷 告不作为无效缺陷 告:

    随着测试人员数量的增加,在我们所有的条件下,效率都会增加,但是有效性会降低。从实验数据中可以看出,时间限制对个体F-score有负向影响,但是对群体的F-score有积极影响。

    重复缺陷 告作为无效缺陷 告:

    随着更多的测试人员被添加到测试人员群里中,重复缺陷 告的数量在总 告数量中的比重迅速增加。在本节中,重复 告被认为是无效的。在个人层面,时间压力对有效性的影响与上节相同。与上一节不认为重复无效的情况相比,F-score的峰值更低,此时的测试人员的数量也更少。当重复被视为无效缺陷时,使用TR或NTR测试人员之间没有明显的区别。

    4.讨论

    4.1 RQ1:将单个测试人员添加到一群测试人员中的效果

    4.1.1 观点1 –不重复缺陷数量和效率

    从发现不重复缺陷的角度来看,RQ1可以说明测试人员数量的增加增加了人群的缺陷检测能力。基于本研究,在系统级别上的人工软件测试,就Steiner ‘s taxonomy[12]而言,是一项可相加任务,由于缺陷的耗尽而产生“天花板效应”。这些任务之所以具有可加性,是因为不同的测试人员或评审人员发现了不同的缺陷[6,7]。此外,我们假设个体之间的这种差异是由软件测试的两个基本因素引起的:覆盖率和缺陷检测能力。首先,随着更多的测试人员被添加,每个个体都会用不同的任务执行方式。验证和确认任务的覆盖范围会增加,不同的测试人员也会检测到不同的缺陷集。第二个因素缺陷检测能力,这在不同的人之间是不同的例如,认知风格和知识水平存在个体差异,此外,不同角色也 (开发人员、测试人员、用户)将导致不同缺陷的检测,不幸的是,我们的数据无法区分这些因素的影响。

    我们讨论了具有高度现实意义的问题,即,从一个个体到两个个体在软件验证和确认过程中所带来的收益。研究数据表明,在V&V任务中加入第二个体对缺陷检测效果有积极影响。平均来说,添加第二个个体来执行相同的V&V任务可以使发现不重复缺陷的效率提高大约50%,但是从个体层面来看,所提高的效率差异很大(25%-78%)。是否值得用额外的成本来换取25%-78%的预期收益仍然是一个需要考虑的决定。

    4.1.2 观点2 – 有效性和F-score

    虽然添加更多的测试人员会带来发现更多缺陷的积极影响,但也会放大负面影响,因为无效的缺陷 告和重复的缺陷 告的相对份额增加了。一个重要的主题是我们如何影响F-score的峰值,如使用有效的重复处理工具,让测试人员在提交 告之前进行排重处理等。总之,这个讨论强调了合理的测试人群的大小取决于这个人群会产生多少重复和无效的缺陷 告,以及如何处理这些缺陷 告。

    最后,我们证明,在所有的研究条件中,没有一个是通过使用一个一个测试人员得到的最大F-score,达到F-score峰值的测试人员最少为3人。因此,建议使用多个测试人员来执行特定特性的测试。此外,我们认为未来对软件验证和确定的研究也应该使用有效性和F-score,以便更全面地了解每种验证和确定技术的优缺点。

    4.2 RQ2: 时间限制对TR和NTR测试人员的影响

    4.2.1 观点1 –不重复缺陷数量和效率

    在个体层面上,NTR测试人员比TR测试人员发现更多的缺陷(11.28 vs. 7.53),因为NTR测试人员平均花费9.87小时进行测试,而TR测试人员被限制为2小时。考虑到效率,我们发现TR测试人员的效率明显更高(1.33 vs. 3.79缺陷/h)。可以假定这是由一组较为容易被发现的缺陷引起的,而TR测试人员在短时间内检测到这些缺陷而忽略一些难以被发现的缺陷,这将导致更高的效率,但更低的有效性。

    在人群层面上,在控制工作量时,时间限制测试人员的表现优于非时间限制测试人员。从实验数据中可以发现,TR测试人员的高效率并不仅仅是因为检测容易发现的缺陷。很容易被检测到的缺陷能因人而异,因此,在个体层面上TR测试人员的高效率仍然可以用只检测容易检测到的缺陷来解释,但是个体之间“容易检测到的东西”的巨大差异可以用来解释TR团队的高效率原因。根据我们的数据,让几个测试人员在时间压力下工作是有益的。

    时间压力是一个可能的因素,可以解释为什么在人群之间的工作量相等的情况下,使用多个TR测试人员会比使用单个NTR测试人员获得更高的效率。我们列出另外三个假设来解释这种差异,首先是不同的测试人员会发现不同的缺陷。其次,我们认为拥有更多的测试人员有助于TR测试人员克服“习惯化”。一般来说,习惯化意味着,如果刺激在环境中持续存在,那么随着时间的推移,个体将不再关注它,因此经过几个小时的测试或调试,个人不太可能发现软件相同特性中的新缺陷。当一个人不能发现更多的缺陷时,可以引入第二个个体,或者给第一个个体一个心理工具来改变他们的缺陷搜索和检测过程。第三,我们认为NTR测试人员很有可能在工作上花费过多的精力,因为他们不知道什么时候停止测试,而且为了谨慎起见,他们更有可能做过量的测试。这将显示出高有效性但低效率。

    4.2.2 观点2 –有效性和F-SCORE

    在个体水平上,TR测试者的有效性较高(d=0.55), F-score低于NTR测试者(d=- 0.90)。这意味着,虽然对于单个TR测试人员,有效缺陷的比例更好,但是NTR测试人员的整体性能更好。很明显,时间限制对个人的表现有负面影响。

    在人群层面,当重复被忽略时,NTR测试者在F-score方面整体表现较好,但在有效性上,一组TR测试者与一组NTR测试者的表现没有差异。当将重复的缺陷 告视为无效的缺陷 告时,TR和NTR测试人员在F-score方面表现相似,但是对于NTR测试人员来说,有效性更好。因此,当有效的重复处理策略和工具就位时,大量的TR测试人员可以提供更好的整体性能,而当没有这些工具就位时,TR和NTR测试人员之间的表现是相同的。

    4.3 未来的工作

    5.结论

    第三,我们的实验表明,软件测试中时间压力在个体水平上提高了效率,但同时也降低了个体水平上的效益。

    第四,基于F-score分析,我们展示并讨论了测试人员产生的重复和无效 告的数量以及预防和处理重复和无效 告的工具和策略的有效性如何影响测试人员的最优数量。有效的预防和处理机制使得雇佣更多的测试人员成为可能,并取得更好的结果。在这个分析中,我们引入信息检索领域常用的措施——效率(被发现缺陷/所有缺陷),有效性(在所有的发现中有效缺陷的比例),和F-score(效率和有效性的调和平均数),并展示如何使用它们来衡量软件测试。建议今后的研究还应提出以往工作中经常忽略的有效性和F-score测度,使研究结果更加透明,便于研究之间的比较。

    致谢

    此文由南京大学软件学院2019级硕士吉品翻译转述。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年1月1日
    下一篇 2019年1月1日

    相关推荐