精华内容
下载资源
问答
  • 在大部分研发项目经理心中,进度通常往往会放在第一位,其次是成本,最后是质量,当然人员队伍也最好要稳定。天下武功,唯快不破:进度 >...1、提升测试效率 提升测试的效率,最有效的手段是制.

    在这里插入图片描述

    在大部分研发项目经理心中,进度通常往往会放在第一位,其次是成本,最后是质量,当然人员队伍也最好要稳定。天下武功,唯快不破:进度 > 成本 > 质量 > 人。

    这个说法并不是绝对,当然今天我们并不是讨论他们之间的优先顺序。而是围绕效率提升,测试可以做什么?

    相信大部分测试人员脑海里首先会跳出来:“自动化测试”或者“敏捷测试”,没错,自动化和敏捷都可以帮助提升研发效率,但是并不是只要做了就都有这个提升作用。

    测试效率提升有以下几个不同段位:

    1、提升测试效率

    提升测试的效率,最有效的手段是制定测试策略。对,你没有看错,是测试策略而不是自动化!

    测试策略提升测试效率的逻辑是:减少不必要的测试,重要的问题早发现早解决。

    测试策略的基础是风险评估,首先从失效概率、失效影响这两个维度,区分高、中、低风险的特性,失效概率是发生错误的可能性,评分一般是依据:同类特性的历史表现,设计中需要考虑的要素多寡,需求变更的频繁程度,是否采用新方法等。失效影响是错误发生造成的影响,评分的一般是参考:错误失效对主要业务流程的影响范围,给研发团队以及客户带来的直接经济损失,修复成本,信誉影响等。这两个风险维度的评分虽然有一些参考维度,但主要是依赖经验。

    风险评估完成后,根据每个测试内容的风险评分,确定测试的时间和强度(测试强度通常是用千行代码用例数来衡量)。原则上高风险的内容要尽可能早测试,低风险的内容在计划安排上灵活性可以大一些。高风险的内容要多测试,比如考虑多种测试设计方法同时使用,安排探索式测试等。测试的过程中,需要持续的分析缺陷数据、指标数据,以确定风险是降低还是升高了,如果发现风险升高,甚至已经成为会阻碍产品发布的问题,则必须进行例外报告,调整开发和测试策略。

    提升测试的效率,基于需求的测试也是有效手段之一,基于需求进行测试设计的目的,是减少不必要的参数组合和虚构的应用场景的测试用例。当然,只基于需求进行测试,往往不那么让人放心,因为总会有意外的情况发生,一般还需要再基于经验、基于错误猜测,或者基于在线应用采集的应用场景进行一些补充。对于特别重要的测试内容,可能还需要基于设计进行更高强度的测试。

    那么,为什么不是自动化?大多数时候,我们是将原本手工执行的功能用自动化的方式来执行,这种情况下自动化测试更多的是服务于质量,其目的是发现新特性对老特性产生的,不为人知的影响。如果新特性每次发布,都导致老特性发生意外的变化,进而导致测试不得不在每个版本都全面测试老特性,那么这种自动化就是提升测试效率的。不过,这种情况比较少见,而且,如果真的发生这种情况,一定是产品架构设计出了问题,优化架构比实现自动化测试的优先级要高。

    2、提升开发效率

    测试活动不再局限于测试活本身,测试帮助提升研发效率,最有效的手段是自动化和工具化,这两个手段是实现TDD和缺陷快速定位的关键措施。

    TDD的作用,是用测试用例的形式表述需求或设计目标,从而确保codeing过程中,始终在做正确的事,在向主干中加入各种分支处理逻辑、或者进行各种修改时,不会破坏已经正确的功能,让开发可以放心的修改缺陷或者重构代码。在TDD实施中,测试的主要价值是提供趁手的工具,这个工具不仅要能够驱动测试用例执行,还要让开发很方便的构建测试用例及其执行所需的条件。我们有些团队在TDD实施的早期,把TDD用例编写和调试的工作也交给测试完成,这种方式无法让开发及时验证自己的每一次改动,做不到及时的质量反馈,也起不到TDD宣称的那些作用,不建议采用。

    缺陷快速定位为什么要拿出来讲呢?因为,我们曾经统计过开发的工作量,在实现阶段,大概有1/3~1/2的开发工作量是耗费在缺陷的确认、重现、定位、修改、验证,如果能加快这个过程,则开发效率会有大幅提升。

    通过缺陷辅助定位工具,可以提高这部分工作的效率。在一个用例执行不通过的时候,工具自动采集缺陷定位所需的信息,如:系统产生的日志和其他过程与结果记录,产生变化的数据库记录,此用例执行覆盖到的代码。通过这些信息,可以在无需重现、无需跟踪执行的情况下定位大部分的问题。当然,要实现这个目的,仅仅有工具是不够的,还需要产品做一些日志上的增强,例如在函数的入口和出口记录函数的输入、输出参数。缺陷修改完成后,再用自动化用例进行验证,就能够对开发的缺陷定位产生积极影响。

    很多团队中,开发会把测试提交的缺陷集中在某个时间去修改,也是为了压缩处理缺陷的时间,但是这样会导致质量风险在开发后期集中爆发,是不值得借鉴的方式。

    提升代码质量,除了TDD和缺陷定位,还可以在环境准备、测试结果采集上,使用工具和自动化提升效率。

    3、提升版本发布效率

    测试服务于研发整体而不是某个环节的效率提升。

    测试帮助提升版本发布的效率,主要方法是自动化和CI(持续集成)、持续交付。

    自动化是CI的基础,而自动化及CI是持续交付的基础。

    CI对自动化的要求,除了用测试用例进行自动化的产品验证,还包括自动化的编译、打包、部署、环境检查等。

    持续交付在一般CI的基础上,通常还需要做到应用场景的自动化验证(通常是基于UI的自动化测试,用于冒烟测试)、常规性能的自动化验证,不同环境的统一部署,以及按不同的策略发布。一般的组织中,持续交付主要还是用于向专门的测试团队交付产品版本。某些互联网公司能够做到将持续交付用于生产环境,这种场景下,除了上述能力,还需要在产品上线初期进行自动化的异常侦测,看护系统和业务的正常运行,此外,还应该有比较可靠的系统和数据回滚机制。在生产环境中,要使这个过程安全的走下来,验证用例最好能比较完整的覆盖基本功能和新增需求,也需要根据历史问题不断完善看护、侦测规则。

    发布时对基本功能的覆盖,除了传统的人工编写自动化用例的方式,利用在线运行抓取实际场景是更能让测试适配产品更新节奏的方式。

    理想情况下,CI可以做到每天(也可能是每周或者其他的周期)都能够有一个质量过关的版本为上线做好了准备。这是比较理想的情况,我没有见到过真正这样实施的团队,在我们团队中,CI更多的还是在开发过程中,检查程序员的代码质量,起到的是质量门槛的作用。

    持续发布是研发整体的工程能力提升,需要的不仅是研发团队的工具开发能力,还需要在过程管理、配置管理,甚至产品架构、质量文化等方面进行匹配。持续发布的实施,有专门的书籍做了详细介绍。

    4、提升特性交付效率

    测试不是依赖工具和自动化,而是依赖分析设计服务于效率提升。

    测试帮助提升特性 交付的效率,需要做到基于需求的测试,此外,敏捷也可以提升特性的交付效率。

    基于需求的测试中,测试帮助研发团队在需求实现方面少一次试错。很多团队认为自己是基于需求进行测试的,但实际上是基于“需求规格说明书”进行测试,后者依赖一份质量优良的文档(标准是,内容完整且正确,研发各个环节都可以完全依据这份文档开展工作,并最终得到正确的特性),但通常这个依赖条件不存在。

    基于需求测试需要做到:

    改善需求质量。利用需求内容模型(5W1H)促进需求内容完整性的提升,利用测试对产品、业务的理解,通过静态测试发现需求中的遗漏、矛盾、错误,从而改善需求,即测试设计输入的质量。

    基于需求测试。根据需求进行单个操作、业务场景和端到端应用场景的测试。并在测试执行时,通过研发测试、邀请客户和需求工程师参与体验和演示等方式,在产品特性半成品上,利用形象的操作过程对抽象的分析进行验证和纠错。

    基于需求的测试除了要会使用上述方法,也比较依赖测试工程师的经验,因为实际应用过程中,我们通常都是参照已经成熟的特性,曾经犯过的错误来进行查缺补漏。

    敏捷提升交付效率的基本逻辑是实现按特性开发和交付。首先,应对这种小步快跑的方式,测试需要及时实现对少量的新增和修改内容进行测试,在最短的时间内进行质量反馈,这要求测试设计、测试执行(自动化测试),甚至发布、部署都要能够在迭代周期的时间窗内完成。其次,按特性发布可以让客户尽可能快的看到和使用特性,以便更快的进行产品应用层面的质量反馈,因此,如果团队按特性开发了,但是并不能按特性 交付,那么对于交付效率的提升还是只完成了一半。

    敏捷是建立在研发的质量文化、产品的架构优化、测试的自动化水平之上的研发模式的演进,如果没有这些基础,仅仅依靠模式的改变是无法既提升效率,又维持质量稳定的。

    围绕效率提升,测试可以开展的工作远不止上面提到的这些,这些都有待我们持续地研究、探索和讨论。。。

    下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
    在这里插入图片描述

    最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


    好文推荐

    转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

    面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

    面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

    什么样的人适合从事软件测试工作?

    那个准点下班的人,比我先升职了…

    测试岗反复跳槽,跳着跳着就跳没了…

    展开全文
  • 在大部分研发项目经理心中,进度通常往往会放在第一位,其次是成本,最后是质量,当然人员队伍也最好要稳定。天下武功,唯快不破:进度 > 成本 >...1、提升测试效率 提升测试的效率,最有..

    在大部分研发项目经理心中,进度通常往往会放在第一位,其次是成本,最后是质量,当然人员队伍也最好要稳定。天下武功,唯快不破:进度 > 成本 > 质量 > 人

    这个说法并不是绝对,当然今天我们并不是讨论他们之间的优先顺序。而是围绕效率提升,测试可以做什么?

    相信大部分测试人员脑海里首先会跳出来:“自动化测试”或者“敏捷测试”,没错,自动化和敏捷都可以帮助提升研发效率,但是并不是只要做了就都有这个提升作用。

    测试效率提升有以下几个不同段位:

    1、提升测试效率

    提升测试的效率,最有效的手段是制定测试策略。对,你没有看错,是测试策略而不是自动化!

    测试策略提升测试效率的逻辑是:减少不必要的测试,重要的问题早发现早解决。

    测试策略的基础是风险评估,首先从失效概率、失效影响这两个维度,区分高、中、低风险的特性,失效概率是发生错误的可能性,评分一般是依据:同类特性的历史表现,设计中需要考虑的要素多寡,需求变更的频繁程度,是否采用新方法等。失效影响是错误发生造成的影响,评分的一般是参考:错误失效对主要业务流程的影响范围,给研发团队以及客户带来的直接经济损失,修复成本,信誉影响等。这两个风险维度的评分虽然有一些参考维度,但主要是依赖经验。

    风险评估完成后,根据每个测试内容的风险评分,确定测试的时间和强度(测试强度通常是用千行代码用例数来衡量)。原则上高风险的内容要尽可能早测试,低风险的内容在计划安排上灵活性可以大一些。高风险的内容要多测试,比如考虑多种测试设计方法同时使用,安排探索式测试等。测试的过程中,需要持续的分析缺陷数据、指标数据,以确定风险是降低还是升高了,如果发现风险升高,甚至已经成为会阻碍产品发布的问题,则必须进行例外报告,调整开发和测试策略。

    提升测试的效率,基于需求的测试也是有效手段之一,基于需求进行测试设计的目的,是减少不必要的参数组合和虚构的应用场景的测试用例。当然,只基于需求进行测试,往往不那么让人放心,因为总会有意外的情况发生,一般还需要再基于经验、基于错误猜测,或者基于在线应用采集的应用场景进行一些补充。对于特别重要的测试内容,可能还需要基于设计进行更高强度的测试。

    那么,为什么不是自动化?大多数时候,我们是将原本手工执行的功能用自动化的方式来执行,这种情况下自动化测试更多的是服务于质量,其目的是发现新特性对老特性产生的,不为人知的影响。如果新特性每次发布,都导致老特性发生意外的变化,进而导致测试不得不在每个版本都全面测试老特性,那么这种自动化就是提升测试效率的。不过,这种情况比较少见,而且,如果真的发生这种情况,一定是产品架构设计出了问题,优化架构比实现自动化测试的优先级要高。

    2、提升开发效率

    测试活动不再局限于测试活本身,测试帮助提升研发效率,最有效的手段是自动化和工具化,这两个手段是实现TDD和缺陷快速定位的关键措施。

    TDD的作用,是用测试用例的形式表述需求或设计目标,从而确保codeing过程中,始终在做正确的事,在向主干中加入各种分支处理逻辑、或者进行各种修改时,不会破坏已经正确的功能,让开发可以放心的修改缺陷或者重构代码。在TDD实施中,测试的主要价值是提供趁手的工具,这个工具不仅要能够驱动测试用例执行,还要让开发很方便的构建测试用例及其执行所需的条件。我们有些团队在TDD实施的早期,把TDD用例编写和调试的工作也交给测试完成,这种方式无法让开发及时验证自己的每一次改动,做不到及时的质量反馈,也起不到TDD宣称的那些作用,不建议采用。

    缺陷快速定位为什么要拿出来讲呢?因为,我们曾经统计过开发的工作量,在实现阶段,大概有1/3~1/2的开发工作量是耗费在缺陷的确认、重现、定位、修改、验证,如果能加快这个过程,则开发效率会有大幅提升。

    通过缺陷辅助定位工具,可以提高这部分工作的效率。在一个用例执行不通过的时候,工具自动采集缺陷定位所需的信息,如:系统产生的日志和其他过程与结果记录,产生变化的数据库记录,此用例执行覆盖到的代码。通过这些信息,可以在无需重现、无需跟踪执行的情况下定位大部分的问题。当然,要实现这个目的,仅仅有工具是不够的,还需要产品做一些日志上的增强,例如在函数的入口和出口记录函数的输入、输出参数。缺陷修改完成后,再用自动化用例进行验证,就能够对开发的缺陷定位产生积极影响。

    很多团队中,开发会把测试提交的缺陷集中在某个时间去修改,也是为了压缩处理缺陷的时间,但是这样会导致质量风险在开发后期集中爆发,是不值得借鉴的方式。

    提升代码质量,除了TDD和缺陷定位,还可以在环境准备、测试结果采集上,使用工具和自动化提升效率。

    3、提升版本发布效率

    测试服务于研发整体而不是某个环节的效率提升

    测试帮助提升版本发布的效率,主要方法是自动化和CI(持续集成)、持续交付。

    自动化是CI的基础,而自动化及CI是持续交付的基础。

    CI对自动化的要求,除了用测试用例进行自动化的产品验证,还包括自动化的编译、打包、部署、环境检查等。

    持续交付在一般CI的基础上,通常还需要做到应用场景的自动化验证(通常是基于UI的自动化测试,用于冒烟测试)、常规性能的自动化验证,不同环境的统一部署,以及按不同的策略发布。一般的组织中,持续交付主要还是用于向专门的测试团队交付产品版本。某些互联网公司能够做到将持续交付用于生产环境,这种场景下,除了上述能力,还需要在产品上线初期进行自动化的异常侦测,看护系统和业务的正常运行,此外,还应该有比较可靠的系统和数据回滚机制。在生产环境中,要使这个过程安全的走下来,验证用例最好能比较完整的覆盖基本功能和新增需求,也需要根据历史问题不断完善看护、侦测规则。

    发布时对基本功能的覆盖,除了传统的人工编写自动化用例的方式,利用在线运行抓取实际场景是更能让测试适配产品更新节奏的方式。

    理想情况下,CI可以做到每天(也可能是每周或者其他的周期)都能够有一个质量过关的版本为上线做好了准备。这是比较理想的情况,我没有见到过真正这样实施的团队,在我们团队中,CI更多的还是在开发过程中,检查程序员的代码质量,起到的是质量门槛的作用。

    持续发布是研发整体的工程能力提升,需要的不仅是研发团队的工具开发能力,还需要在过程管理、配置管理,甚至产品架构、质量文化等方面进行匹配。持续发布的实施,有专门的书籍做了详细介绍。

    4、提升特性交付效率

    测试不是依赖工具和自动化,而是依赖分析设计服务于效率提升

    测试帮助提升特性 交付的效率,需要做到基于需求的测试,此外,敏捷也可以提升特性的交付效率。

    基于需求的测试中,测试帮助研发团队在需求实现方面少一次试错。很多团队认为自己是基于需求进行测试的,但实际上是基于“需求规格说明书”进行测试,后者依赖一份质量优良的文档(标准是,内容完整且正确,研发各个环节都可以完全依据这份文档开展工作,并最终得到正确的特性),但通常这个依赖条件不存在。

    基于需求测试需要做到:

    改善需求质量。利用需求内容模型(5W1H)促进需求内容完整性的提升,利用测试对产品、业务的理解,通过静态测试发现需求中的遗漏、矛盾、错误,从而改善需求,即测试设计输入的质量。

    基于需求测试。根据需求进行单个操作、业务场景和端到端应用场景的测试。并在测试执行时,通过研发测试、邀请客户和需求工程师参与体验和演示等方式,在产品特性半成品上,利用形象的操作过程对抽象的分析进行验证和纠错。

    基于需求的测试除了要会使用上述方法,也比较依赖测试工程师的经验,因为实际应用过程中,我们通常都是参照已经成熟的特性,曾经犯过的错误来进行查缺补漏。

    敏捷提升交付效率的基本逻辑是实现按特性开发和交付。首先,应对这种小步快跑的方式,测试需要及时实现对少量的新增和修改内容进行测试,在最短的时间内进行质量反馈,这要求测试设计、测试执行(自动化测试),甚至发布、部署都要能够在迭代周期的时间窗内完成。其次,按特性发布可以让客户尽可能快的看到和使用特性,以便更快的进行产品应用层面的质量反馈,因此,如果团队按特性开发了,但是并不能按特性 交付,那么对于交付效率的提升还是只完成了一半。

    敏捷是建立在研发的质量文化、产品的架构优化、测试的自动化水平之上的研发模式的演进,如果没有这些基础,仅仅依靠模式的改变是无法既提升效率,又维持质量稳定的。

    围绕效率提升,测试可以开展的工作远不止上面提到的这些,这些都有待我们持续地研究、探索和讨论。。。

    下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

    最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:310357728里面有各种软件测试资源和技术讨论)

    展开全文
  • 有些人感觉测试很累,有些人感觉测试很轻松,排除掉开发的因素和产品功能复杂度的因素,其实和测试技巧也有很大的关系,今天先跟大家聊聊如何提升测试效率,所谓的测试效率就是测试产出和测试时间之比,假设测试产出...

    图片

    有些人感觉测试很累,有些人感觉测试很轻松,排除掉开发的因素和产品功能复杂度的因素,其实和测试技巧也有很大的关系,今天先跟大家聊聊如何提升测试效率,所谓的测试效率就是测试产出和测试时间之比,假设测试产出是一个定值,那要提高测试效率,就是要缩短测试时间。那要怎么才能减少测试时间呢?

    01

    不要做无效的测试
    一般项目前期bug都是较多的而且极为不稳定的,如果有多个较严重的bug,可以拒绝继续测试。一方面继续测试也没有意义,因为阻塞测试地方会有很多,也无法测试全:另一方面即便继续测试出很多bug,也可能由于那些bug引起的,倒不如等这些修复之后再继续测试。
    这样对于前期来说可以节约不少测试时间,把做无效测试的时间留出来想想如何优化测试顺序。

    02

    不要做重复的测试
    要做到这点的前提是要对整个项目的架构,相互的之间的联系等等要十分了解,这样可以避免很多看似不同的测试点,但实际只是一个测试点,仅仅是外面包装的不同而已。
    于是当这一个测试点有bug,那些其他看似不同的测试点其实也不用测试了,肯定也是有问题的,那提bug的时候可以列出核心问题所在,并将其他涉及的点列出来,等验证的时候再把那些点都在验证一遍。这样等于少做了很多测试,只是在验证的同时把测试再覆盖全。

    图片

    03

    不同测试版本的测试侧重点
    对于测试来说肯定需要测试很多轮,每一个测试版本作为一个测试轮,但是不是需要每个版本都做完整的测试呢?答案肯定是否定的,不然测试岂不是要累死?
    那应该怎么取舍和分配呢?这里提供一下思路:
      第一轮:只测试大致功能,不需要细测,列出主要bug。
      第二轮:验证第一轮bug,然后全面细测,列出所有能发现的bug。
      第三轮——第x轮:验证上一轮的bug。
      最后一轮:验证全部bug,并全面细测。
    有人要问怎么才能判断是不是最后一轮?很简单,当所有发现的bug均关闭状态,这个时候就可以作为最后一轮来判断,而这一轮也是最重要的一轮,因为涉及到上线所以需要验证前x轮的所有bug,以避免bug修复完被bug再次覆盖的情况。
    如果按照以上的思路,其实只是第二轮和最后一轮需要全面测试,这样对于测试轮数多的情况下又能节约很多测试时间。

    04

    优化测试顺序

    以上3个都是基于bug多的情况下(而这是常态,没bug反而不是常态了),如果项目质量就是那么好,bug很少,那上面3个其实也省不了多少时间。所以最最关键的其实还是在于测试本身,如何通过优化测试顺序,来节约自己的测试时间呢?这里有一套反常规的理论,就是先测试异常情况,而不是先测试正常情况。
    举个例子:
    就拿注册功能来说,一般会分为3个步骤,注册,验证,登录,一般正常情况都是先测试正常注册,正常验证,正常登录,然后测试异常注册,异常验证,异常登录。但这样有一个缺点,会有重复无用的操作:
    当完成正常测试后再测试异常之前,需要从登录状态退出,然后再点击注册入口进行注册。
    当测试异常验证的时候,需要再次测试正常注册,不然就进入不了验证的步骤。
    当测试异常登录的时候,又需要再次测试正常验证,不然就进入不了登录的步骤。就这3点也许大家觉得最多浪费几十秒的时间,但如果注册信息要填很多呢,如果验证邮件或者短信要延迟很久才收到呢,这样就是浪费了几分钟吧。如果有其中有bug,那可能要测试多次来定位问题,那就可能浪费了10分钟,而这仅仅是一个并不复杂的测试,如果涉及到更复杂的关联,可能会浪费更多的时间在于无效和重复的测试中。
    那么问题来了,这么调整测试顺序呢?
    先测试异常注册,输入各种错误的注册信息,如果没有bug的情况下是跳不到验证界面的;

    然后测试正常注册,可以正常跳到验证界面;
    接着测试异常验证,如果没有bug的情况下是跳不到登录界面的;
    再测试正常验证,可以正常跳到登录界面;
    · 再测试异常登录,如果没有bug的情况下是无法正常登录的;
    · 最后测试正常登录,可以登录完成这样其实覆盖的测试点一个没少,但却没有无效和重复的测试,调整顺序之后可以减少不必要的操作,积少成多的节约测试时间。

    如果有对软件测试感兴趣的小伙伴可以加群了解更多:点击进群icon-default.png?t=LA92http:// https://jq.qq.com/?_wv=1027&k=mDdrPPAp

    展开全文
  • 写在前面:在日常开发过程...首先,我们先来看看测试金字塔(接口测试是在中间部分,底层是单元测试,最顶端是界面测试)。 从三者的面积大小来看,单元测试和接口测试,才是重点,而界面测试真的是太少。这个面积,你

    写在前面:在日常开发过程中,有人做前端开发,有人负责后端开发。接口的主要作用就是连接前后台。但是,由于前端和后端开发的速度可能不一样,尤其是后端开发好了,但前端还未开发。这种时候我们需要做接口测试吗? 在日常工作中,我们主要测试的都是功能板块,如果你想真正了解接口测试,那么这篇文章或许能给你一定帮助。

    1、为什么我们要做接口测试?

    首先,我们先来看看测试金字塔(接口测试是在中间部分,底层是单元测试,最顶端是界面测试)。

    从三者的面积大小来看,单元测试和接口测试,才是重点,而界面测试真的是太少。这个面积,你可以理解为代码覆盖,也可以理解为测试的工作量。 在国内公司越来越重视接口测试了。之前的几年,很多测试资源都放在了界面的测试,看趋势接下来应该会逐步放在接口测试功能、性能、自动化和稳定性测试上面。

    2、什么是接口测试?

    这个有太多文章,就不细说了,百度或者论坛里找就好了。

    3、接口的分类

    在开始做接口测试之前,有必要了解一下接口的分类。这里的分类,主要是HTTP请求方法分类。下面是我们最常见的GET/POST/PUT/DELETE四种方法。工作中接口用到最多是GET和POST方法。

    4、设计接口测试用例

    接下来,我们就一起来聊聊进行接口测试的准备工作。有些同学很好奇,接口测试要流程干嘛?不就是拿着接口文档利用接口测试工具测试。 如果只是三五个接口,你可以这么做一个临时的接口测试。但是如果是上百个接口,或者新项目第一次做接口测试,那么还是很有必要遵守测试的流程的。

    1)接口测试的流程

    接口测试和功能测试一样,流程也大致遵守V模型,请看下图。

    一般来说,接口测试左边的每个阶段,每个公司可能都侧重点不同,例如有些公司就没有需求讨论和需求评审这个阶段。 但是不管如何,用例设计这个是少不了的,而且是重点,是要花时间的阶段。只有覆盖全面的接口测试用例,才能有比较好的测试接口覆盖率,才会找出更多的接口的Bug。

    2)为什么要写接口测试用例

    功能测试用例,大家都写过。接口测试用例,很多人没有写过。在写之前,我们来讨论下,为什么要写接口用例。 ①理清思路,避免漏测 ②提高测试效率 ③跟进测试进度 ④告诉领导做过 ⑤跟进重复性工作 上面五点,结合自己测试实际经验,应该来说是很好理解的。有用例就有思路,避免漏掉测试点。跟着测试用例走,一方面可以避免随机测试那种没有目的性的测试,提高测试效率;另一方面,这对领导检查你的工作、同事询问你的进度时有很多便利,也能够提高对接效率。

    3)接口用例设计

    我们在设计接口用例时,主要可以从这四个方面来考虑:功能,逻辑业务,异常,安全。 ①功能: 功能是否正常;功能是否按照接口文档实现; ②逻辑业务: 是否依赖业务; ③异常: 参数异常和数据异常; 参数异常:关键字参数,参数为空,多,少参数,错误参数; 数据异常:关键字数据,数据为空,长度不一致,错误数据; ④安全测试用例设计: cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题 header:正常接口带header信息,删除header看是否能够返回数据。 唯一识别码:app手机识别码,一般是唯一的。 注:安全测试主要从上面三点检查。第三个是唯一识别码,主要是指app上手机的识别码,一般很少用到,除非很严格的接口测试,例如银行app登录,需要指纹,而指纹来源手机,一般有一个手机识别码判断过程。

    5、接口测试的工具

    目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如,加入让你一天完成100个接口测试任务,你觉得你加班能否完成。如果有工具,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个工具,简单介绍一下。

    1)fiddler

    首先,这是一个HTTP协议调试代理工具,说白了就是一个抓http包的工具。web测试和手机测试都能用到这个工具。既然是http协议,这个工具也能支持接口测试。稍后文章,我们会专门介绍fiddler这个工具。

    2)postman

    这是一款google工程师开发的一个插件,可以安装到chrome浏览器上。支持不同接口测试请求,能够管理测试套件和自动化运行,弱点在于,自动化断言功能不强大。不能和jenkins和代码管理库进行持续集成测试。但是,绝对是一个很好的半手工,半自动化测试工具。

    3)wireshak

    这个是一款计算机上抓包工具,支持抓各种包,TCP,UDP,HTTP都支持。如果做底层网络数据测试,一般都需要用到它。作为接口测试,这个软件有点不友好。因为刷新数据太快,不好定位每个操作对应的接口。所以,我们不会进行过多介绍这个工具。

    4)soupUI

    这个是一个开源免费、企业版收费的软件。在国外的接口测试,使用非常多。这个工具能够支持接口自动化测试和接口性能测试,也能支持和jenkins做持续集成测试。了解一下就可以,自己可以下载一个社区免费版,做一个demo试试。

    5)java代码做接口测试

    代码是万能,笔记工具也是代码开发出来的。为什么要用代码做接口自动化测试呢。因为,有些工具功能是有限制,很多公司,需要一些特定的功能,工具不支持,只好用代码进行开发。 一般用Java做自动化测试,主要是利用httpclient.jar这个包,然后利用junit或者testng这样的单元测试工具,进行测试用例的开发,然后在jenkins上创建一个job,进行持续集成测试。

    6)Python代码做接口测试

    和Java一样,Python中利用一个很好,功能强大的第三方库requests,能够方便都创建接口自动化用例。python下单元测试框架,一般采用unittest。生成测试报告,一般选择HTMLTestRunner.py。同样,可以和jenkins做持续集成测试。

    7)LoadRunner

    不要以为LR只能做性能测试,loadrunner同样可以做接口自动化和接口压力测试。只是我们很多人,不会利用LR的函数,进行开发接口测试用例。

    8)JMeter

    JMeter同loadrunner一样,都是以性能测试出名,一般用JMeter也是做接口性能测试。例如java+Jmeter+ant+jenkins做接口性能监听测试。JMeter如何做接口测试,大家可以网上查下。 写在最后:上面说了这么多工具,基本覆盖了接口功能测试,接口自动化测试,接口性能测试。这里提一下,国内有个综合性的Saas测试工具,不用部署,界面也比较简洁,叫Eolinker,使用地址我贴在下面,自己试试就知道了。 使用地址:www.eolinker.com

    展开全文
  • “仪器程控系统”软件助你极大提升测试效率应用背景:为保证射频器件性能的可靠性,射频器件在生产过程中都会经过绝缘耐压、外观、电气性能等一系列的测试,其中最重要的是电气性能,也就是使用网络分析仪进行器件...
  • 本文通过探究测试需要的样本量来达到提升测试效率的目的 案例:现需要对某测试书籍后续回收做有效判断,观察周期为5天 现已有书籍平均回收经验: * 累计1天ROI=20%时,对应累计5天ROI=40% * 累计1天ROI=22%时,...
  • 提升测试效率?有了这些接口测试用例+工具都不是问题
  • App在上架应用市场之前需要进行机型测试,兼容性测试等验证活动,由于真机类型繁多,需要开发者寻求不同类型的真机进行验证,而HMS Toolkit提供的Cloud Debugging和Cloud Testing功能帮助开发者很好的解决了该问题,...
  • 测试能力分层的组织架构下,一提到效率提升,可能大多数人,首先想到的是测试开发团队,亦或是成败在于此。假如我们也是这样想,我想我们可以尝试换一个角度,也许会有更多的收获。
  • 近些年,随着对于客户体验、管理水平、业务发展要求的提升,业务越来越复杂,迭代周期越来越快,如何做好提高功能测试质量?是很多技术负责人或者测试人员面对的问题。 下面针对自己经验,分享一下功能测试精髓。 ...
  • “根据系统测试发现缺陷数来衡量测试人员的系统测试效率,测试执行效率”,这种方法是很片面的。它的优点是便于统计和分析,缺点是只通过一个方面考核了测试效率等,漏掉了很多其他因素。那么该如何衡量测试人员的...
  • 提升软件测试效率

    2021-02-22 23:44:15
    提升软件测试效率可以从如下几个方面着手 分别是测试策略,测试技术,以及组织结构,测试流程。 测试策略。 测试越早介入越好,从需求阶段开始介入,以个人的业务知识,防止一些不必要的需求介入,同时防止有漏的...
  • 怎样提高软件测试团队的工作效率,各公司软件测试部门都有这样的问题,可以从以下5个方面入手,帮助我们提高或提高软件测试团队的工作效率。  一、技术手段是否能提高效率  工程测试过程中,不可避免地会遇到...
  • 测试能力分层的组织架构下,一提到效率提升,可能大多数人,首先想到的是测试开发团队,亦或是成败在于此。假如我们也是这样想,我想我们可以尝试换一个角度,也许会有更多的收获。 两个必要问题 解决效率问题,...
  • 提升测试质量、测试效率,最大化的发挥测试人员的价值,是我们自己以及管理者需要思考的问题。可以从以下几个方面来参考: 制定冒烟测试用例,如果冒烟测试通过率<90%,则提测版本打回开发,同时尽可能将冒烟测试...
  • 测试时间不够,如何解决

    千次阅读 2021-08-30 13:53:23
    在工作中,我们经常会遇到测试时间不足的情况。这种情况,该如何应对呢? 事实上,做IT的,好像时间就没有充足的时候。项目管理组织有过统计,只有极少数项目能做到按期交付。那么不能按期交付的时候,作为测试人员...
  • 软件测试是目前互联网环境下比较热门的一个求职岗位,今天我们就一起来了解一下,如果软件测试工作效率低的话应该如何改进。效率低突出的几个问题1、测试人员接手新项目,没有好用(容易理解、无歧义、有图文指引、...
  • 前后端分离如何提高开发测试效率三丰 soft张三丰前后端分离项目开发步骤:项目是基于前后端分离的架构进行开发,前后端分离架构总体上包括前端和服务端,通常是多人协作并行开发,对于不同职位的人来说,有不同的侧...
  • 平台基于Web界面构建可以高效实现对API的自动化测试、并根据测试结果输出测试报告全面提升API的测试效率,同时可以对API进行编排实现复杂的测试场景并输出测试报告,同比使用postman测试工具API测试效率提升60%。...
  • 首先在我看来,自动化是必定会提升工作效率的。之前其实我也认为自动化是没有用的,现在想想,只是无知限制了我的思路总结下我经常遇到的场景吧~1.重复工作较多.之前和同事工作中扯淡,他在做一个功能测试,但是仅仅...
  • 随着互联网技术的日益发展,测试开发工程师要达到“保障质量、提升效率”目标,提升效率更体现在方方面面。作为测试开发工程师,需要掌握基本开发技能,对代码能力也有一定的要求,这也是对项目多一道强有力的保障。...
  • 原标题:软件测试人员提升测试技能的10个妙招分享对于软件测试人员来说,测试技能的提升是一个持续的过程。从入门到精通,需要不断的学习技能、实践操作和总结经验,可能还免不了会走一些弯路。除此之外,掌握必要的...
  • mysql> show create table t2\G*************************** 1. row ***************************Table: t2Create Table: CREATE TABLE `t2` (`id` int(11) NOT NULL AUTO_INCREMENT,`rank1` int(11) DEFAULT NUL...
  • 上一篇刚刚学习了 BufferedReader ,想着来验证一下 BufferedReader 的缓冲到底能带来多大的性能提升,于是拷贝了一个100M 左右的日志文件放到本地,测试一下使用 BufferedReader 和不使用的情况下,所耗费的时间...
  • 需求多、人力有限、数据量大…那么如何在人员有限的情况下既提升测试效率,又能保证质量呢? 未名企鹅在为医药行业提供海量数据服务时,我们的测试工程师总结了一些不错的思路和方法,一起来看看。 大数据测试与效率...
  • 作者|王欣宇引 言UI自动化是业内常用的一种测试手段,在回归测试,兼容性测试、线上功能监控、冒烟测试测试场景中都有较多的应用。UI自动化仅仅只可以在测试流程中发光发热么?答案当然是“...
  • 运行环境:操作系统:Windows XPJAVA版本:1.60 update13MySQL版本:5.1.42JDBC版本:5.1.11测试用表说明:测试的表一共只有三个字段:id(int主键自增)、content(varchar)、datetime(datetime)。插入使用SQL语句为...
  • 软件质量保障| 测试质量保障、自动化工具/框架、平台开发、算法测试、BAT/TMD大厂测试岗面试题/面经分享、测试团队建设与管理、测试新技术的分享。 偶尔也聊聊个人工作的收获与经验。可以帮忙内推字节、阿里、百度等...
  • 大家好,我是馨馨紫,软件测试妹纸一枚,有6年的软件测试经验,混过大厂,待过创业公司,独自负责过从0到1的项目测试,也当过测试小组长,今天跟大家分享下软件测试心得,希望对大家有所启发。 文章结构如下: 一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 262,541
精华内容 105,016
关键字:

如何提升测试效率