• 0
  • 0
分享
  • 外表简单内里复杂的功能测试,如何进行?——软件测试圈
  • 曼倩诙谐 2022-07-29 13:49:19 字数 1728 阅读 1470 收藏 0

问题引出

不知道大家有没有遇到这样的测试场景:一个Web应用,待测功能很简单,只需要点击按钮启动运行,经过一系列内部运算,返回给用户一个结果列表。

从可见的交付给用户的最上层UI功能来看,待测功能只是一个简单的“启动”—“观察结果”。

但是,我想当测试人员接手这样一个测试项目的时候,恐怕应该是先“惊喜”后“恐慌”吧?!

“惊喜”:这么简单,点一下看一下结果不就测完了?

“恐慌”:这么简单?会不会还有什么测试点我遗漏了,怎么感觉有点惴惴不安呢?!

这样的测试场景,我想几乎每个测试人员在职业生涯中都会遇到。那么,是不是真的就是“点一点”看看结果就行了呢?显然不是。

那么,对于这样类型的待测项目我们应该怎么去设计测试或者进行测试呢,或者有什么测试技巧需要掌握的呢?

需要说明的是:在这里,我们不讨论什么先进行单元测试、再进行集成测试、最后系统测试这类的分层测试设计理念,也不细致讨论使用什么判定表、等价类等具体的黑盒或白盒测试方法。

我们本文讨论的核心是:从业务层面出发,思考如何进行这类项目的测试,及我们需要借助或抓住的一些测试灵感。

问题思考

问题1:如何确定“点一点”返回的结果是正确的呢?

比如:点一点搜索某个“number=100”的数据有多少个,返回结果有10个。

既然,我们不能确定“点一点”返回给我们的结果是正确的。那么,我们可以模拟数据,以此判定结果的正确性。具体怎么做呢?

例如:确定系统内没有number=200的数据,模拟、输入100个number=200的数据。通过被测系统查询,返回number=200的数据数量。

若返回数量为100个则表明系统正确性,通过测试;

若返回数量不是100个,则表明系统存在错误,测试失败。

以此模拟数据,来判定被测系统的正确性与否。

因此,如何进行外表简单的应用功能测试?需要掌握的第一个测试技巧是:学会模拟测试数据。

问题2:如何丰富测试数据样本呢?

比如:在1中,我们证明了某类测试数据测试场景下,被测系统的正确性。但是,在其他类型测试数据输入情况下,被测系统是否会响应正确呢?

也许,看到这个问题,有的人会说:继续模拟更多类型的测试数据呗,比如string啊、int啊、list啊等等。

不得不说,这的确是一个方法。但是,数据类型多种多样,系统数据边界我们也不得而知(从业务层面出发,我们不知悉代码内部细节),我们如何能够枚举完所有的数据类型和模拟数据边界值呢?!

要解决这个问题,从用户的角度出发,有一个很好的建议:如果可以,尽量使用真实数据进行测试。

如果我们能获得真实数据采样样本,那么可以很好地解决我们模拟数据样本不够丰富和模拟数据与真实数据之间存在差异的问题。而且,真实数据能让我们更接近用户的使用环境。

问题3:对于内部逻辑复杂的应用,最终返回结果正确,但是我还是有点担心内部运算有没有出问题呢?

比如:某个应用,只需web页面点击即可触发,但后台程序涉及多个组件,如何确定运算过程中各个组件的正确性。

解决多个组件联合作业的问题,常用的方法是:阶段性测试,即每次只测试一个组件正确性,最终联合确定整个系统正确性。

但从业务层面出发,有一个简单的技巧就是:如果可以,请随时观察后台程序日志打印。

日志是一个很好的测试媒介,借助日志可以发现许多未曾暴露到前端呈现在用户面前的问题。我们要善于抓住日志中的“error”、“warn”等等信息。

问题4:如何快速地了解被测系统的一些“不为人知“的细节?

比如:观察到日志中某个”可疑“信息,但是无法确定是否是故障,或者系统重启后,表现与预期不一致,无法确定是否是故障。

这个时候,作为场内测试人员,你就需要同开发人员保持良好的伙伴关系。

开发人员对被测系统内部细节的了解程度远胜于测试人员,同开发人员保持良好的伙伴关系,可以在遇到问题的第一时间求助开发人员而得到很好的答疑。并且,在开发人员的指导下,可以帮助我们更快地熟悉被测系统。

问题总结

针对本文的核心问题:如何进行外表简单的应用功能测试?在此给出了4点建议。如下表所示:

1.png

我们不谈测试技术,我们谈的是如何思考测试。


作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/52/n-7792252.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、引言最近再整理测试开发相关的面试题,不是因为我有什么想法,而是被求职者折磨了。既然都准备寻找新的环境,那还不做充足的准备,总想着吃老本,希望遇到的面试官技术都不太好的。不可否认,有的时候确实能碰巧蒙混过关,但是在小鱼这里,就一个字:不要想,现实点!!!但是,为了能让各位求职者提前刷刷题,我也整理了一份移动APP的面试题。这份面试题,能记住,就可以完成小鱼80%的面试问答,剩余的 20%,会根据求职者的简历,进行扩展了哦。今天的移动APP面试题,分两部分,针对不同的求职者和面试官,毕竟不是所有的面试官都会这么深的技术。2、基础篇2.1开篇介绍,APP测试流程面试移动APP测试开发的同学,面试...
            2 3 14124
            分享
          •  一、API调试常用解决方案1、Postman + Swagger + Mock + JMeter作为一个后端开发,我做的大部分项目一般都是基于 Swagger 来管理 API 文档,基于 Postman 来做接口调试,基于 JMeter 来做接口性能测试,基于 RAP 等工具 Mock API 数据。2、存在的问题(1)多系统数据不互通API设计者、前端开发、后端开发、测试人员大量重复工作。(2)效率低可视化程度低、操作不友好。(3)无法团队协作单机离线使用为主,成员之间无法实时同步数据,无法协作。(4)学习成本高初学者难以入手,需要大量的学习成本、培训成本。(5)数据一致性困难每...
            0 0 638
            分享
          • 当面对大量用户模拟和性能测量需求时,单台计算机运行 JMeter 往往显得力不从心。因此,构建一个多节点的JMeter集群成为了一种提升测试性能的有效途径。接下来,本文将详细介绍如何组建和配置一个JMeter测试集群。一、准备工作:服务器搭建首先,我们需要数台性能相匹配的服务器,每台服务器都需装备如下:Java运行环境必须预装好。各服务器间应保持通信畅通,可通过SSH或RDP等手段实现。二、安装环节:搞定JMeter接下来,在每台机器上部署JMeter。可从JMeter的官方网站下载最新版本的安装包并顺利安装。安装后务必配置 环境变量,操作如下:在服务器的 ~/.bashrc&nbs...
            0 0 378
            分享
          •   一个项目的完成不能仅靠一个团队的付出,一项测试工作也不是单凭一己之力。那么,如何让测试工作进展的更加顺利?测试团队间工作效率又该如何提升呢?一起来看看以下几点分享:  一、分工合理,权责明确  团队是由个人组成的,团队中的成员往往经历不同、背景不同、性格有差异、水平有高低。在开始测试工作前,测试团队首先应该进行合理的分工,结合每个人的特点,充分发挥出每个人的特长。分工完成后,每个人对应的职责也就确定了,这时应同每一位团队成员进行明确说明,个人任务完成情况与日常考核挂钩,以避免推诿、相互等待的情况出现。  二、发挥主观能动性,积极沟通  测试工作是一项沟通要求比较高的工作,一般需要同项目经理...
            0 0 1164
            分享
          • 放眼全球,了解技术发展的边界和趋势,有助于组织和个人的发展及竞争力的提升,偶尔看到国外某网站的一篇文章,读来颇值得参考。也许这篇文章会给你一份指南,让你快速成长与发展。如今,随着世界数字化,我们目睹了技术进步的巨大变化。也将标志着技术和数字化转型的巨大变化,从而要求组织不断创新和重塑自我。1)敏捷与DevOps很多组织已采用了敏捷与DevOps,用敏捷来响应快速变化的需求,用DevOps来响应对速度的要求。DevOps涉及有助于集成开发和运维的活动(实践,规则,流程和工具),以减少从开发到运维的时间。对于正在寻找缩短软件生命周期,从开发到交付和运维方法的组织,DevOps已成为一种广泛接受的解...
            0 0 1024
            分享
      • 51testing软件测试圈微信