• 0
  • 1
分享
  • 绝对的干货:软件测试的7个基本原则——软件测试圈
  • 曼倩诙谐 2022-11-18 11:12:29 字数 2070 阅读 2001 收藏 1

  2022软件测试行业前景如何?结果你来预测。链接:http://vote.51testing.com/


  原则(Principles ),是每个人在行事中所遵循的准则。每个人都有自己的原则,或成人,或尚处襁褓。软件测试也有一套原则让每位软件测试从业人员去遵循,这些原则是前辈们前仆后继在无数的坑坑洼洼中总结出来的。

  软件测试的原则是指帮助测试团队有效地利用他们的时间和精力来发现测试项目的隐藏bug的指导方针。从实际的实践和研究中,研究了以下 7 条软件测试的基本原则,以便测试人员在软件测试领域广泛应用。

  原则一:测试证明软件存在缺陷

  时至今日,依然有不少人容易犯错:没有发现错误的测试说明软件没有缺陷。

  这个原则可以用另一种方式来描述: 测试的本质是证明软件存在缺陷,而不是软件没有任何缺陷。

  测试只能证明软件是存在缺陷的(证伪),而不是证明软件是没有缺陷的(证实)。

  软件测试只能找出应用程序或软件中存在的缺陷,测试是为了辅助开发,降低缺陷存在的可能性而开展的活动,即便对产品或者应用程序进行了多次的、比较彻底的测试都没有发现任何缺陷,也不能证明软件是100%完美的。

  原则二:穷尽测试是不可能的

  测试数据、输入和测试场景的所有组合是不可能的,因为它需要大量的时间。相反,测试团队只能专注于一些重要的指标,例如:设置测试策略的风险和优先级。一般来说,项目周期里永远不可能允许测试团队在项目中进行大量有效的组合测试。

  比如测试一个简单的计算器,你可以尝试1+1,1+2,1+3,1+n……,但是时间上允许你把所有的数字都考虑进去做详尽测试吗?显然是不可能的,从功能本身出发也算是多余操作。

  随着系统承载业务多,代码规模也越庞大,算法逻辑复杂度也越高。要让测试完全覆盖是不可能的。那难道不测?非也!我们可以采取以下策略:

  1、精准测试:改动什么测什么;

  2、二八原则:只测重点;

  3、等价划分;

  等等...

  原则三:尽早介入测试

  这条很重要,但是对测试的要求也会更高。

  “早期的鸟儿有虫吃”或者是“早起的虫子被鸟吃”,对,说的就是这个理儿,早,是我们解决问题的有效办法。

  必须尽早介入测试活动,为软件开发的下一阶段做好准备。只要生成产品需求或文档,测试人员甚至就可以开始测试。

  据调查,缺陷的修复成本与其发现时间成反比,且越晚修复其修复成本将会成指数级增长。

-1.png

  显然,从一开始就解决问题总是更容易、更便宜,而不是如果发现错误太晚就改变整个系统。因此,通过早期测试,测试人员可以检测到错误,并帮助开发团队以更少的成本和精力解决问题。

  另外,尽早介入测试,测试人员能够更全面的了解需求和项目整体进度,知己知彼百战不殆,说的就是这个理儿。

  尽早介入测试原则与测试左移和测试前移具有异曲同工之妙。

  原则四:缺陷具有集群性

  之前听过一种理论,二八原则,即:80%的错误是由20%的模块引起的。

  缺陷聚类指的是在几个模块中发现了大部分缺陷。这一原则要求测试团队利用自己的知识和经验,确定要测试的潜在模块。这一预测有助于节省时间和精力,因为团队只需要关注那些 “敏感” 领域。

  然而,这种方法也有缺点: 一旦测试人员只专注于所有团队的一小块区域,他们可能会错过其他区域的错误。

  原则五:杀虫剂悖论

  当我们反复使用相同的杀虫剂的时候,会有少量害虫产生免疫而存活下来,使得杀虫剂失去药效。

  杀虫剂悖论是指测试人员一直使用相同的方法或手段去重复测试,这些测试只适用于一些有限的模块,而不是整个系统。这种测试可能很难发现bug,甚至无法发现bug。因此,为了涵盖项目的各个部分,它要求测试团队经常审查和更新测试用例。

  原则六:测试是上下文相关的

  各种产品或项目包含不同的元素、特征和要求。因此,测试人员不能对不同的项目应用相同的测试方法。例如,银行行业的应用程序应该比娱乐软件需要做更多的测试。

  原则七:无错误谬论

  在 原则一:测试显示软件存在缺陷 中说明,测试是为了降低缺陷存在的可能性而开展的活动,即便多次测试都没有发现任何缺陷,也不能证明软件是完美的。

  软件测试不仅仅是为了找出Bug而存在的活动,而是还需要确认软件是否满足用户的期望和需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。

  “没有错误” 并不是我们的追求,在互联网时代,始终快速给用户创造最大的价值才是我们孜孜不倦的追求。

  上述原则是由 Rex Black 、 Erick Van Veenendaal 和 Dorothy Graham 的研究 “软件测试基础” (ISTQB 认证) 总结的。这些原则可以作为大多数测试项目的核心指南。然而,如上所述,每个产品或项目都包含非常不同的因素和需求,需要各种测试方法。测试人员应该利用他们的经验和知识来决定和平衡这些方法。


作者:软测小生    

来源:http://www.51testing.com/html/46/n-4477746.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   据《纽约时报》报道,沙特阿拉伯正计划设立 400 亿美元(IT之家备注:当前约 2880 亿元人民币)的 AI 初创企业风投基金。  根据多位消息人士的说法,这一坐拥巨大石油财富的海湾国家正寻求支持一系列的 AI 科技初创企业,涵盖从芯片设计到数据中心领域。该国代表甚至表示沙特正考虑创办自己的 AI 公司。  具体而言,沙特方面与硅谷顶级风险投资公司安德森 霍洛维茨(Andreessen Horowitz)等方就潜在的合作关系进行了讨论,不过计划仍存有变化的可能。该基金有望于今年下半年正式推出。  如果 400 亿美元的规模成真,则这支风险投资基金将在规模上远超典型的美国对手,仅次于世界范...
            0 0 841
            分享
          •   QQ、微信聊天框的主要功能就是发送消息和接收别人发过来的消息。  消息内容类型:  ·纯文字  · 纯图片  · 纯表情  · 文字+表情  · 文件  发送键:  · 点击“发送”发送  · 使用快捷键发送(针对电脑端)  用户在线状态:  · 在线状态  · 离线状态  网络情况:  · 网络正常  · 网络异常  群聊情况:  · @功能 :   @个人、@多个人、@全部  · 提醒功能     - 被@到时,进入群聊是否提示“有人@”  &nb...
            0 0 1002
            分享
          • 作者:IDO老徐 每天收到的问题无数,梳理分析后,无外乎如下几类 。 1. 如何找到一份靠谱的工作 ? 2. 遇到职业迷茫了,如何抉择 ? 3. 目前xx现状,打算入行(或转行)测试,是否适合 ? 4. 遇到具体的xx技术障碍了,不知道怎么解决(找答案) 。 等等 。 今天, 聊聊《如何找到一份靠谱工作 ?》 1. 从现在开始(看完此文后),确定自己的职业发展方向 推荐一文, 之前写的测试从业者18条可行性路径, ...
            2 1 3482
            分享
          •   内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放。短期一般没有明显异常现象,但持续泄漏一定时间后,应用层面会出现交易TPS下降、响应耗时增长、交易成功率下降、CPU升高等异常现象,甚至出现内存溢出,系统宕机等现象,其危害相当严重。  本文对WAS内存泄漏测试过程中的经验进行小结,通过对GC输出分析内存泄漏的最常用操作和场景分析思路的汇总,为测试人员高效高质量的完成性能测试工作提供技术指导。  一、WebSphere 应用服务器的 GC 日志获取  (1)首次获取日志文件,需登陆 WebSphere 公共管理控制台,开启“详细垃圾回收”,设置初始堆大小和最大堆大小。后期测...
            14 14 2115
            分享
          • 从小入手,从简单的开始,然后慢慢的做更系统更复杂的性能测试。确定需求刚接触性能测试的同学往往不知道性能测试是有需求的。比如给我测一下系统的性能线上xx服务器挂了,能否重现一下线上问题如果你是性能测试同学,假设时间有限,这两个需求你只能接一个,你是接哪个?很多同学会选第一个,因为第一个需求似乎是性能测试的需求,第二个跟性能测试似乎没有特别强烈的关系。但是第一个需求太泛泛了,如果不细化的话操作起来会很难,第二个尽管看起来是亡羊补牢的行为,但现实工作中这类的需求很多,操作起来也是有套路的,不会特别发散。总之,建议新人在需求分析的时候接一些具体的,可以操作的需求。需求是否可以细化分解,基本就注定了性能...
            0 0 695
            分享
      • 51testing软件测试圈微信