• 0
  • 0
分享

  测试原则是一个测试人员时刻要铭记在心的,甚至要形成一种本能,指导测试工作。

  原则1:测试找不出所有的Bug

  软件的复杂性仅次于生命体,甚至现在很多软件都已经有了人工智能的属性。对于这样精妙的系统,一小点异常都有可能产生连锁反映,最终让整个系统无法运行。就好像人体只需要吸入一粒微小的尘埃,就可能感染病菌,从而引起人体的高能反应,最终导致人病倒,无法行动。

  像软件这样的精妙系统,就算做再多测试,也无法找出所有的错误,就好像你永远无法保证,人不生病一样。

  原则2:2/8 原则

  少数功能模块会测试到大多数缺陷,用数字来表示就是 80%的问题出现在20%的功能模块中。在很多领域中都存在 2/8 原则,而在测试中同样会运用到这个原则。

  为什么会这样的原因很多,我们只能适当分析。 比如开发某个功能模块的程序员水平不行,引入了大量缺陷; 也可能是这个功能模块非常复杂,可能出现大量没有考虑到的因素。

  原则3:尽早介入测试

  一个软件越复杂,越有可能产生新 bug。 热力学第二定律指出:孤立系统自发地朝著热力学平衡方向──最大熵状态──演化,同样地,第二类永动机永不可能实现。

  这个定律同样适用于信息系统。 当一个软件引入越多的信息,越多的功能,会让软件变得越来越混乱,从而产生越来越多bug。

  如果要少产生bug,首先是要保持软件整体的简单性,还有就是尽早介入测试。 因为在一个功能被开发的早期,功能还足够简单,早期介入测试能更高效的找到bug,如果一个功能演化到后期,被更多其他的程序使用,变得越来越复杂,找到bug会难很多。 尽早介入测试,还可以让开发快速得到反馈,从而尽快修复bug,不会把bug带到更复杂的代码世界中。

  原则4:抗药性原则

  抗药性原则又叫杀虫剂悖论(Pesticide Paradox)。随着时间的推移,重复使用相同的杀虫剂消灭昆虫会导致昆虫对农药产生抵抗力,从而使杀虫剂对昆虫无效,这同样适用于软件测试。

  如果进行相同的重复测试,则该方法将无助于发现新的缺陷。为了解决此问题,需要定期检查和更新测试用例,添加新的和不同的测试用例以帮助发现更多的缺陷。测试人员不能简单地依靠现有的测试技术。他必须不断寻找改进现有方法的方法,以使测试更有效。

  原则5:要有精确的预期结果

  测试用例中一个必需部分是对预期输出或结果的定义,这条显而易?的原则在软件测试中却是最常犯的错误之一,很多测试人员对程序应该产生的结果没有明确定义,只是凭感觉判断结果是否异常。

  尽管“软件测试是破坏性”的定义是合理的,但人们在潜意识中仍然渴望看到正确的结果,所以当程序运行符合测试人员的心理预期时,他们会自以为程序是正常的。没有期望,也就没有所谓的意外。

  克服这种倾向的一种方法,就是通过事先精确定义程序的预期输出,鼓励人们对所有的输出进行仔细检查。因此,一个测试用例必须包括两个部分:1.对程序的输入数据的描述。2.对程序在上述输入数据下的正确输出结果的精确描述。

  原则6:测试显示软件存在缺陷

  软件测试只能证实软件中存在缺陷,但是并不能证明软件中不存在缺陷,只能降低软件存在缺陷的可能性。

  如果说公司的决策层想通过软件测试来证明软件中不存在缺陷,那是行不通的。测试人员只能证明软件中存在缺陷,但并不能证明软件中没有缺陷,软件完美。

  软件测试人员可以通过软件测试活动,找出软件中大部分缺陷,避免软件在上线后给用户带损失,给公司带来风险。

  原则7:无错就是好是谬论

  无错,对软件测试人员来说可望不可即的。

  那真的无错的软件就是好的软件么?

  假设一个软件完全没有bug,完美无缺,但是不符合用户的需求,那能说这个软件是OK的么?

  判断一个软件的好与不好,主要依据的还是用户需求,是否实现用户所期盼的结果,并不是仅仅依赖于软件中是否存在缺陷。

  有些伙伴会说测试理论没什么用,但博主觉得理论看似没用,但却能培养我们的测试思维,让我们对软件测试有更多的认识和了解,测试人员不要只去追求技术上的超越,而思维上的建立也是至关重要。

  原则8:测试活动依赖于测试内容

  在面试过程中有时总会遇到面试官部“做软件测试什么最重要”,想来做过测试的都知道“需求”最重要,对测试人员来说是需求,对公司来说就是业务。

  根据业务的不同,软件测试内部也分不同的行业,比如游戏行业,金融行业,电商行业等等。

  不同的行业,测试活动的开展都有所有不同,比如工具的选择,测试流程都不尽相同,所以软件测试活动的开展依赖于所测试的内容。


者:自动化测试冰茶    

来源:http://www.51testing.com/html/54/n-7793154.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   如果你恰好刚刚进入一家新公司,领导一上来就让你开展自动化测试,作为一名初出茅庐的测试新人,除了手足无措,你只能默默慨叹自己能力尚欠,眼前只会出现一个又一个无从下手的问题:  作为手工测试,如何营造机会和环境解决我们自身提升的瓶颈?(好慌!以为自己手工测试已经登峰造极,不料我慌了……)  如何在最短的时间内能够跨入自动化测试人才的队伍?(我就想想,万一实现了呢……)  如何落地自动化测试呢?(领导一说话,哭泣哭泣怕了怕了……)  又如何在后续继续提升发展呢?(老大不小了,不能一事无成了……)  面对以上种种问题,我们究竟该如何面对?又该如何解决?  你可能会这样做:  1.买了好几本编程语言...
            0 0 785
            分享
          •   会计日期是银行的记账日期,银行所有的账务都以会计日期为准来进行全行账务核对。在测试环境下,会计日期的切换是验证业务逻辑正确性的重要工具。然而频繁执行会计日期切换会影响在正常日期进行的其他测试,也会造成系统环境的不稳定。如何在尽可能满足测试需求的情况下,保证环境稳定可用,是管理测试环境会计日期的难点。要想既满足多数测试人员对会计日期维持当前日的需求,又支持部分测试项目对于特定会计日期的需求,需要设计一套会计日期切换的调度机制和相匹配的管理系统,形成会计日期调度方案。图1:测试效果和系统稳定之间需要权衡  1、会计日期调度现状  出于对权限统一控制的需求和对银行复杂核心系统操作难以普及的考虑,...
            10 10 1969
            分享
          •   由于疫情原因,很多线下活动都取消了,听说一个测试开发者大会在我大深圳召开,机会不可多得,当然是要斥巨资参加的!  据说这个大会每年都会精挑细选出数十个优质的课题供来自全国各地的测试同行们交流学习,课题分别邀请到来自国内外各大公司优秀的团队和讲师前来分享。  大会前纪  第一次参加测试相关的大会,时间为期两天从上午9点到晚上6点,行程是相当的满。第一天是主会场内容比较分散:主讲老师分别来自百度、阿里、腾讯、酷家乐等互联网大厂。内容覆盖了AI测试应用、消息全链路检测、流量回放、测试中台、云原生测试左移等热门关键词。  第二天是专场内容分为:高新领域专场、服务端专场、移动端专场、效能提升专场、质...
            14 14 1474
            分享
          • 前言现在很多公司写后端代码和前端代码已经分工很明确了,前后端把接口定义好,然后各自写各自的代码就可以了。那么对于服务端的开发人员来说,写好了代码后,对外提供了API,这时候没有页面可以调用调试,如果等着客户端写完代码再测试的话,那样工作的效率是及其低下的。那么服务端要学会模拟客户端的调用,来调试自己的代码,提早发现问题,这样后续跟客户端进行联调的时候,就大大提高了效率。我们今天讲讲Postman模拟客户端调试工具,这是我平时工作中最常用的工具之一。Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它只要在Chrome里安装一个插件即可完成强大的功能。但是由于201...
            0 0 1038
            分享
          •   据报道,针对美国政府起诉微软690亿美元收购动视暴雪交易,法官将于1月3日举行首次审前听证会。  去年1月,微软宣布将以每股95美元的现金,收购游戏开发和互动娱乐内容发行商动视暴雪,交易总金额约为690亿美元。交易完成后,微软将成为世界上营收第三高的游戏公司,仅次于腾讯和索尼。  上个月,负责反垄断执法的美国联邦贸易委员会(FTC)要求法官阻止这笔交易,理由是交易将使微软的Xbox游戏平台获得动视暴的独家内容,从而导致竞争对手任天堂和索尼的游戏平台被冷落。  而微软则反驳称,这笔交易将使游戏玩家和其他游戏公司从中受益。同时,微软还承诺,至少在10年内继续向索尼等竞争对手提供《使命召唤》游戏...
            0 0 988
            分享
      • 51testing软件测试圈微信