`

测试的第二重境界:站在Bug之上

阅读更多

测试的第二重境界:站在Bug之上

    测试的价值仅仅是发现Bug吗?通过“站在Bug之上”测试第二重境界的介绍,希望能帮助读者正确理解测试的真正价值是什么,在实际工作中如何操作以体现 这些价值。不同的理念,将会牵引着测试人员朝不同的方向迈进,“站在Bug之上”可以拓宽测试人员的视野,找到更多可以充分体现测试价值的测试链,让测试 人员为项目的成功做出更大的贡献,从而带来更宽范围的测试成功。

测试的价值不仅仅是发现Bug

    一提到测试,大家马上会想到Bug。测试仅仅就是为了发现Bug吗?这是值得我们思考的问题。

从软件测试最基本的定义出发,早在1979年J. Myers在《软件测试的艺术》一书中提到:
l  软件测试的目的就是尽早发现Bug。
l  一个成功的测试就是发现了至今为止尚未发现的Bug的测试。

    总之,测试就是为了发现Bug,测试所做的工作无一不是围绕Bug而展开,如图2-8所示。测试发现Bug越多,测试人员越自豪,越有成就感,这个观点已几乎根深蒂固地扎在了我们的心里,测试除了发现Bug真没其他事情可做吗?

    发现了很多Bug,测试人员高兴了,但老板肯定是不高兴的。很明显的道理,为了解决这些Bug,他必须付出更多的成本,包括开发人员与测试人员的工资,更 严重的还可能影响产品交付市场的时间。商场如战场,时间就是金钱,时间能给产品带来更多的市场空间,为企业赢得更多的利润。理解这些商业知识能帮助我们做 正确的事,并且正确地做事。认识到这一点后,相信测试朋友就不会再为某个Bug还没有解决,版本却上市而耿耿于怀了。测试人员应该跳出仅发现Bug就沾沾 自喜的圈子,看到项目整体,站在公司的角度想测试可以做什么。只有项目成功了,公司才能获得利润,最终达到员工与公司双赢的目标。

    质量、成本、时间是项目管理的三要素。它们像三足鼎立,稳如泰山,即质量好、成本低、工期短,这样的项目当然是项目经理求之不得的。但它们又是矛盾地存在 着,形象地看,它们犹如一个等边三角形,如图2-9所示。对其中的任何一个元素处理不当,三元素的三角关系就会变得不稳定,将给项目的成功带来风险。

    软件测试团队是整个项目团队大家庭中的成员之一,在软件质量上把关,要尽可能早、尽可能多地发现Bug。这也是软件测试成立的根本,是质量上能给项目做出 贡献的地方。那么在成本与时间的控制上,测试可以做些什么,要如何做呢?也就是前面提到的测试如何配合项目的成功做正确的事,并且正确地做事。

小贴士:

做正确的事与正确地做事

    做正确的事出发点是企业利益最大化,而不是站在个人和小团体的立场去做事,也不是怕承担责任,把事推给别人。要求我们在众多的可能性中选择,辨别出什么是正确的,什么是最直接、最可行的做事方式和方法,把企业效益最大化作为办事的标准。

    正确地做事,是驱动具体做事的人员如何按照领导的意见去做事,而不去考虑是否符合企业效益最大化的原则。

    对于测试,做正确的事就是站在用户的角度,进行常用功能(模块)重点测试,而避免非常用功能的过度测试,浪费成本,包括人力与时间的投入。正确地做事,就是采用合理、全面的测试方法验证软件是否符合用户需求,不想当然地通过用户根本不可能用到的非法操作或后门进行验证。下面讲述关于软件测试的2-8原则,通过此2-8原则,可以使软件测试在项目的成本与时间的应用上做到效益最大化。

    举个大家在日常生活中常遇到的例子,如经常看到广告上说,现在的手机软件的功能如何强大,如何丰富,但每一功能用户使用的频度都一样吗?回答是否定的。这 就有了在软件测试范围侧重点上存在的2-8原则,即要把80%的精力放在测试20%的重点功能上。从用户角度出发,这是值得的,也是需要这样做的。

    首先,分析在我们的软件系统中,哪些功能对用户来说是核心且重要的功能,然后安排合适的测试工程师负责这些模块。设计出的测试方案、用例进行重点评审,测 试执行过程重点跟踪。每一次软件版本发布时,即使没有更改此部分的代码,也对它们进行回归测试(这种回归需讲究策略与方法),因为它们太重要了,不允许有 错误。

下面是软件测试2-8原则的详细内容。

1.80%的错误是由20%的模块引起的

    简单、容易的模块或功能是很少引入过多Bug的,而对于存在复杂逻辑的一些关键模块往往会引起系统80%的错误。只有关键模块稳定了,整个系统才可能真正的健壮和稳定。

    这个原则对于测试来说就是站在用户角度(而不是研发实现的角度),正确地选择重要功能模块作为测试的重点,不偏离方向。

2.80%的测试成本花在20%的软件模块中

    设计测试用例时,常会用日产多少条用例来衡量工程师的工作。用例的多少与需求量有关,而影响软件架构设计的需求描述往往是比较少的。在这种情况下,设计测 试用例时特别需要结合软件的概要设计、详细设计一起考虑。如果用例设计人员为了达到用例的数量,通过大量复制用例,修改个别字眼,而没有真正去设计高效的 测试用例,那么用如此低效甚至更多的用例数量来对待复杂的20%的核心模块,在测试执行过程中必将导致一部分关键Bug找不出来。

3.80%的测试时间花在20%的软件模块中

    对于复杂的模块,前期的测试设计和思考可能会耗费大量时间,而产出的用例量可能并不大。对于复杂的系统,特别是对于全新系统,必须舍得投入充足的时间来优先考虑设计,前期方案、用例设计的时间越短,后期的风险越大。

    在项目进展到一定阶段后,增加人力并不一定能解决缩短时间的问题。例如,如果复杂且核心模块在项目的后期才开始执行测试,由于Bug较多,而项目又需要短 时间把版本稳定下来,通常的做法是加人。然而加入的新兵需要一段时间的熟悉期,必要时还需要老兵来带,这本身又会影响到老兵的工作。另外一些性能测试、自 动化测试工作也只有等版本稳定后才会有更好的效果。

 

本文节选自《软件测试之魂:核心测试设计精解(第2版)》一书

肖利琼

电子工业出版社出版

0
8
分享到:
评论

相关推荐

    软件测试bug统计分析图表

    2. **评估测试进度**:时间轴上的趋势图可以反映bug的发现和解决速率,帮助团队评估测试活动的进展,判断是否需要调整测试策略。 3. **提高沟通效率**:图表形式比纯数字报告更直观,便于跨部门沟通,如向管理层汇报...

    软件测试通过及BUG分级标准

    在软件开发过程中,软件测试是确保软件质量的重要环节之一。本文将详细阐述软件测试通过的标准以及BUG分级的相关知识点,旨在为软件测试人员提供一个清晰、准确的参考依据。 #### 一、软件测试通过标准 1. **功能...

    测试资料(详细的bug测试,以及测试用例的用法)

    7. **回归测试**:在修复bug后,重新运行相关的测试用例,确保修复没有引入新的问题。 接下来,我们来讨论测试用例。测试用例是为某个特定测试目标设计的一组有序的操作,用于验证软件的一个或多个功能是否按预期...

    测试bug定义规范

    "测试bug定义规范" 测试bug定义规范是指对bug的严重程度进行分类和定义,以便更好地识别和解决问题。本规范涵盖了bug的定义、严重程度、修复时间等方面,旨在确保bug的解决符合公司的质量标准。 一、bug 严重程度...

    bugfree2.0软件测试bug管理工具

    BugFree 2.0 是一款专为软件测试而设计的开源Bug管理工具,它提供了高效、易用且灵活的环境来跟踪和管理软件开发过程中的缺陷。这款工具旨在帮助开发团队更好地协调工作,确保产品质量,减少错误并提高整体开发效率...

    软件测试与常见Bug大全

    3. 兼容性Bug:软件在不同操作系统、浏览器或设备上的表现不一致,比如在某个版本的Android系统上崩溃。 4. 安全性Bug:这类Bug可能导致数据泄露、权限滥用或其他安全风险。测试人员需要进行安全性审计以发现潜在...

    软件测试工作的三重境界

    测试的第一重境界:围着Bug转  测试的第一重境界:围着Bug转  “意识决定行动,行动决定结果”是管理学中众所周知的名言。做测试的前几年,笔者并没有这个意识,也没有主动地去思考过这个问题,但随着一个个项目...

    软件测试中bug的知识

    在软件测试过程中,Bug状态的管理对于追踪缺陷的修复进展至关重要。它不仅帮助团队成员了解每个Bug当前所处的状态,还能有效协调资源,确保问题得到及时解决。 - **New**:当测试人员首次发现并提交一个新的Bug时,...

    软件测试Bug和bug生命周期中的各种状态

    10. Postponed(延期):有些时候,对于一些特殊的 Bug 的测试需要搁置一段时间,事实上有很多原因可能导致这种情况的发生,比如无效的测试数据,一些特殊的无效的功能等等,在这种情况下,Bug 的状态就被设置为...

    测试思考之bug缺陷趋势曲线图

    测试思考之bug缺陷趋势曲线图.上周参加了关于测试的培训,虽然没有想象中的那么大的帮助,感触还是有的,现对于某几个相关的问题写了一些个人的想法,这次说的是关于bug曲线图的问题,  上周参加了关于测试的培训,...

    软件测试BUG清单分析说明

    在软件开发过程中,软件测试是确保产品质量的关键环节。其中,BUG的发现和分析对于提升项目的整体质量至关重要。本文将深入探讨“软件测试BUG清单分析”,旨在提供一种有效的评估方法,以便测试人员和开发人员能够更...

    软件测试创建bug原则.docx

    在软件测试过程中,创建bug是发现问题并推动修复的关键步骤。...测试人员应当站在修复者的角度思考,提供所有可能有助于解决问题的信息,使bug报告成为有效沟通的工具,从而提高整个软件开发流程的效率和质量。

    BUG 状态流程图 测试人员需要知道的

    在IT行业的软件开发过程中,BUG状态流程图是测试团队与开发团队之间沟通的重要工具,它清晰地描绘了从发现BUG到解决BUG的整个生命周期。本文将深入解析标题和描述中提及的知识点,涵盖BUG状态流程图的核心概念及其在...

    软件测试方法与技术:01Bug.pdf

    为了解决这一问题,全球进行了大规模的软件升级和修正,这也是软件测试史上最大的一次挑战之一。 6. 软件测试中的文化和习惯 文档中还提到了一个问题,即OCR扫描产生的文字识别错误。这是提醒测试者在处理文档或...

    软件测试BUG写作指南

    ### 软件测试BUG写作指南 #### 一、引言 在软件开发过程中,BUG的存在几乎是不可避免的。为了确保软件质量,及时有效地报告BUG至关重要。本文档旨在为初学者提供编写有效BUG报告的指导原则,帮助提升BUG修复效率。 ...

    网站测试bug分享

    在软件测试中,bug是不可避免的,但是通过分析和总结这些bug,我们可以避免类似的问题发生。下面是我们从网站测试中总结出的常见bug和注意事项: 1. 相关性检查: 在软件测试中,相关性检查非常重要。我们需要检查...

    bugfree2.0 软件测试工具

    **Bugfree 2.0 软件测试工具详解** Bugfree是一款开源的软件测试管理工具,主要用于协助软件开发团队进行高效、规范的测试工作。它以简洁的界面和强大的功能,深受软件测试人员的喜爱。在本文中,我们将深入探讨Bug...

Global site tag (gtag.js) - Google Analytics