• 0
  • 0
分享
  • 探索式测试的若干问题——软件测试圈
  • 北极 2022-10-08 14:17:03 字数 3268 阅读 971 收藏 0

探索式测试的范围

探索式测试是不是就是一种黑盒的测试?显然探索式测试不区分黑盒还是白盒,可以用在任何一个测试里面,但是它需要我们更加理解产品,去产品内部理解产品的设计细节,才能发现一些更深层次的、隐蔽的问题。

探索式测试能不能用于硬件上?理论上来说,纯硬件是很难做探索式测试的,脚本测试都很难,硬件一般我们关注的是行数验证,硬件的老化测试,但是硬件上的软件是可以用探索式测试的。对纯硬件进行某一领域的探索式测试,如果造成了损坏,结果往往是不可逆的。

探索式测试怎么融入用户体验测试?探索式测试是一种 Test Style,不会局限于哪一种测试,把用户体验测试融入探索式测试就可以。

ET(探索式测试)主导和ST(基于测试用例的测试方法)辅助的探索式测试方法适合什么类型的项目?我们牢牢抓住探索式测试更灵活、适应性强、不需要编制繁杂的测试用例、鼓励测试人员探索出难以发现的问题等特点,所以就能得出ET主导和ST辅助的探索式测试方法适用于:

  1. 采用MVP模式的敏捷项目。

  2. 在Bug优先级定义中,出现的Bug不会是很高优先级且项目本身是中等类型的项目(因为特别高优先级的Bug往往是需要记录在规范的测试用例中以便审查的)。

  3. 离核心模块比较边缘的项目。

探索式测试的价值

探索式测试能够提供给团队什么帮助?探索式测试最大的特点就是机动性,通过探索式测试得出的结果,分析探索出来的缺陷密度,可以帮助调整团队的测试计划、测试策略以及测试设计,并且探索式测试可以分配到整个软件生命周期中。

做探索式测试的价值高吗,目前很多公司没有推行?有很多时候,在做了探索式测试之后,才会得到一些额外的测试用例,想要得到价值高的时候,那么它的价值就是很高的。为什么公司没有实行,因为有些公司对软件质量的要求不高,当一个软件的质量关乎重大利益的时候,对质量要求也很高的时候,那么探索式测试就很有价值,公司自然也会推行。

怎么在合理的时间内,进行有效的探索性测试,并且度量探索性测试的结果是合理并且是足够的?不管是敏捷模型还是瀑布模型,会有测试轮次的概念,第一轮会跑全链路的 Case,第二轮做 Bug 验证,第三轮会做全链路 Case 的回归;第一轮测试往往会用交叉测试的思路,这就是探索式测试的思路,在计划内、时间内去做探索性测试,做到什么样的程度是可控的;还有一个判断标准是,有没有在一个独立的 Session 内,到底有没有关注到很多探索式测试的执行,你关注到在探索式测试执行中后,你在这个 Session 内测了很多东西,即使没有发现 Bug 也没有关系,因为你知道自己测了什么,哪部分是没有问题的,然后根据自己的计划想停止就停止,不停止也可以,所以进行到哪种程度是和我们的测试模式是有关系的。

度量探索式测试做得好还是不好,Bug 和问题的产出可以来度量,但很难证明探索式测试的价值,从 Bug 产出的角度来看,不同实践方式做的探索式测试产出的 Bug 数量是不一样的,例如用ET主导、ST主导、Free Style的 ET,还是结对测试 BugBash 得出的 Bug 产出是不一样的;一个 Session 做完了,综合起来看 Bug 的数量、Issue 的数量,Test Note,Test Data 可以反映出一个价值。

探索式测试的前提条件

探索式测试对测试工程师的能力有什么特别的要求?探索式测试也要分阶段,这里的阶段包括对软件系统业务流以及数据流熟悉程度的不同阶段,还有测试设计能力的不同阶段,所以不要想到自己要做多么完美,把自己当前能力能做的探索式测试做好就行,每个阶段都可以做探索式测试。

探索式测试方法论比较依赖经验,是不是不适合新人?除了ET主导和ST辅助不适合新人以外,其它的方式新人都可以尝试学习,只要不把自己当新人,这些方法都可以去实践。

探索式测试怎么做

项目安排紧张,怎么保障足够的探索式测试?瀑布模型内做探索性测试,60-120分钟的时间都抽不出来,那就没办法做了,肯定是要抽一定时间来做探索式测试的,一个功能至少要进行两到三次探索式测试,还要进行功能与功能间结合式的探索;敏捷模式基本在敏捷开发中每个 Stage 都会做,在一张卡的各个阶段也会进行实施。

如何在大量回归测试过程中,进行探索式测试?第一是先用交叉方式,第二用 PI Testing(突变测试),可以缩小测试的范围,精确的测试该测的地方,第三实在没有时间,那就用 Bug Bash 借助更多人的力量,不仅能 cover回归测试的范围,还可以找到一些测试范围以外的场景 case。

探索式测试的区别和优势

探索式测试和传统测试的区别是什么?依书中所言,从结果来看的话,传统测试流程和方法每小时发现Bug的数大概在0.2-0.3个,ET辅助和ST主导每小时大概在1.0左右,ST辅助和ET主导大概在1.5左右,Feel Style大概3个 Bug,其次探索式测试为了看系统是否能做超出既定期望的事,以及做了超出期望的事之后系统所做出的反应。

探索式测试和随机测试的区别以及探索式测试有什么优势?adhoc测试可以理解为错误猜测方法的升级版,随机测试没有那么聚焦的目的,探索式测试有明确的聚焦,发现Bug核心的影响力要比adhoc更大,探索式测试是抱着发现Bug的目的去做的,更重视UT。

探索式测试和混沌工程之间有什么联系和差异?没有关联,思路不同;混沌工程的核心就是故障注入,故障注入分系统层面、应用层面、中间键层面,断网,超时等一些破坏性测试,有日志级别的和代码级别的故障注入;做故障注入已经是知道这一块会出现故障,已经知道这里会设计怎样场景,探索式测试是不清楚情况,不断去探索,才会知道哪里可能有问题。

探索式测试的内容延伸

探索式测试跟我们的测试覆盖率是不是矛盾的?根本不矛盾,算测试覆盖率的时候我们要有明确的分母才能算出,如果探索式测试是保证每个功能都测试到了,那么我们的测试覆盖率就是100%;如果探索式测试的分母是整个测试用例集,是无法统计出测试覆盖率的。

活文档会花费 QA 较多时间来记录和管理吗?这个“活”字看大家怎么去理解,开发们的单元测试和 swagger 文档就是典型的例子,对于 QA 来说活文档是自动化测试代码的更改,要改其实和修改传统的测试用例一样的,花时间维护活文档带来的好处是会使活文档与产品代码保持一致性,并且及时提醒哪些文档错了需要修改,所以花时间去管理是很有意义的。

如何提高测试设计能力?首先要了解测试的基本理论,还要加深了解被测对象,然后去熟悉相关的测试类型所需要的测试知识和工具。

探索式测试的发展

探索式测试会越来越重要吗,它以后发展的趋势是怎么样的?国外是一种稳中求胜的趋势,在 Facebook 上都经常能看到很多探索式测试一些新奇的讨论;国内逐渐被自动化测试的声浪盖过去了,这个趋势跟大环境有关,其实有很多公司虽然说在做敏捷,其实并不是真正的敏捷,探索式测试做得很差,甚至不知道如何实施探索式测试,真正意义上在做敏捷的公司和项目,就会觉得探索式测试是真的很重要的,得到的回报往往在敏捷项目上反映得最明显(感觉作者也很认可敏捷)。

在我把这些问题总结出来然后去和前辈们交流的时候,有一些感悟,其实测试的本质就是对软件系统各个变量的单变量验证以及各种变量的组合验证,假设整个软件系统所有变量的组合结果为如图所示的空间几何体,已知的变量组合结果空间为S(可理解为我们期望软件系统能做和不能做的事,往往是故事卡上写的 AC)那么未知的变量空间区域为 S’(可理解为软件系统能不能做更多期望之外的事,以及做了更多不能做的事的反应)那么 S’就是我们要探索的一个领域。

在我们平常测试过程中,页面上的一个按钮、一个选择框其实就是一个变量,我们会去验证按钮和选择框各自的功能,也会去验证选择框加上按钮一起的组合功能,然后在这些变量上我们可能会去产生探索其他场景的想法;API的各个参数验证也是相同的道理。


作者:梁庆祥

原文链接:Thoughtworks思特沃克中国的博客-CSDN博客

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 我们生活在一个每天创建超过 50 万个网站的时代。截至今天,世界上有近 400 万个网站,其中只有 150 万个处于活动状态。剩下的呢?根据记录,90% 的 Web 应用程序因浏览器兼容性问题而无法运行,而 62% 的移动应用程序卸载是由于移动崩溃引起的。这些发人深省的统计数据充分说明了跨浏览器测试对于开发功能完备的 Web 或移动应用程序的重要性。来自不同组织的 QA 和开发人员确实定期努力使跨浏览器测试达到标准,合适的策略将有助于避免阻碍应用程序及时发布的瓶颈。现在是我们重新评估跨浏览器测试工具和方法并寻找更好的替代方案的时候了。今天我们讨论一流的测试策略,这些策略将使跨浏览器测试更简单、...
            0 0 697
            分享
          •   一、自动化测试简介  1、什么是自动化测试  软件测试是软件产品开发过程中不可或缺的环节,众所周知,软件测试的分类方法非常多,根据不同的分类,测试可以分为很多种不同的测试方式。如果根据不同的测试点分类,可以将测试分类划分为功能测试、性能测试,这也是我们最常见的的软件测试范畴。而我们的自动化测试,一般意义上来说,是指对功能、性能进行脱离手工的自动化的测试。  对于自动化测试,更广泛的意义,是对界面功能的自动化测试。因此,按照对软件测试的自动化程度,可以分为手工测试、自动化测试。再进一步细分,界面自动化测试,又可根据平台的不同,分为Web自动化测试、移动端自动化测试,而他们的测试工具及框架基本...
            0 0 3361
            分享
          •   继 PlayStation 5 Pro 的传闻之后,微软也加入了这一行列,预告将推出拥有"有史以来最大技术飞跃"的下一代 Xbox。这一令人兴奋的消息是在暗示将推出传统游戏机之外的独特 Xbox 硬件的同时发布的,其中可能包括传闻已久的掌上设备。  在 Xbox 官方播客中,Xbox 总裁莎拉-邦德(Sarah Bond)承诺下一代 Xbox 硬件将有重大进步:  我们还有更多精彩等着你,将在这个假期分享一些令人兴奋的硬件产品,并且还致力于下一代路线图。我们真正关注的是在新一代硬件中实现有史以来最大的技术飞跃,让玩家、创作者和他们正在构建的愿景都能得到更好的体验。  微...
            0 0 280
            分享
          •   Twitter公司的前身 Twitter 正准备对其算法进行一次"重大更新"。马斯克说,目前该应用的"For You"推送会显示来自其更广泛网络的热门和趋势帖子,以及你关注的人的精彩内容,而新算法将显示来自相对影响力不那么大的一般账户的帖子。  他指出,这些帖子和账户将包括用户"好友和关注"网络之外的账户,这意味着这一变化将试图让用户接触到他们可能觉得有趣但尚未发现的新账户。这也将使小型创作者有机会被更多人发现,这也符合马斯克将 X 打造成一个创作者平台的计划。  在过去的几个月里,X 平台针对创作者推出了一些功能,比如支持长篇文...
            0 0 159
            分享
          •  Fiddler是一款强大的抓包工具,通过改写HTTP代理,让数据经由Fiddler,借此来监控并截取到请求和返回数据。这样一来它不仅可以定位前后端问题,还能够记录客户端和服务端的所有http请求、设置断点、篡改数据等,功能非常强大。  Fiddler界面简介  Fiddler的基本界面包含:工具栏、会话列表、命令行工具、HTTP Request信息栏、HTTP Response信息栏等。  1、工具栏:快捷功能菜单,可以进行清除会话、保存会话等操作;  2、会话列表:截获的请求会话列表,每一个请求为一个会话;  3、QuickExece命令行:允许直接输入命令(如:Help、Cls、bpu)...
            3 4 2325
            分享
      • 51testing软件测试圈微信