探索式软件测试---局部探索式测试法

本文介绍了局部探索式测试方法,强调在测试中如何做决策和关注测试细节。测试应关注合法与非法输入、输入关联、默认值以及输出对输入的指导。软件状态涉及输入的累积效应,而代码路径覆盖是确保测试全面性的重要方面。此外,用户数据的真实性和运行环境的多样性也是测试考虑的关键因素。
摘要由CSDN通过智能技术生成


测试无涯,要把要做的事情分优先级

局部探索式测试定义:
局部探索式测试法是辅助测试人员在执行测试中即时做出决定,注重指导在测试中如何做抉择、应注意哪些测试细节的方法。
比如:如何决定文本框的输入值;如何理解前后两次输入值之间的关系;如何解释错误消息等

测试就是有所变,有所不变

可供选择的输入太多,组合太多,应该怎么办?
必须在测试时确定所有可能发生变化的因素,在要求我们选择某些变量和去掉其他(也就是不必要的)变量时,我们 必须做出明智的决定

从而测试工作简化为在所有输入的全体集合中选择一个子集,然后在输入时使用选中的子集,最后通过推理认为是否这些输入就足够了。

一、用户输入

定义:输入是由应用程序外部引发的,并导致应用程序执行了某些代码。

分类:

  • 原子输入
  • 抽象输入:将相互关联的原子输入合并成一个抽象输入,也把原子们当成一个整体的概念来对待。

输入可以接收到的可能值太多,有必要把他抽象化。

举例:使用"某个长度"这样一个抽象输入来表示1~32768之间的任何一个原子输入长度值。

输入关联(注意点)

  • 不同输入之间的相互影响:比如复选框,单独搜索A或B没问题,但组合搜索出现了问题
  • 输入这些值时的先后顺序:比如a和b,就有aa,ab,ba,bb,有更多的输入,则顺序更多。所以,必须枚举出那些恰当的顺序。

1)合法输入和非法输入
开发人员喜欢编写正常功能代码,不喜欢编写错误处理代码,所以测试过程中应关注:

  • 对于非法输入的屏蔽,检查是否实现了正常的功能,是否可以绕过屏蔽
  • 在错误输入发生时,应用程序是否给出了合理的响应
  • 当出现错误信息时,仔细阅读每一条错误信息,检查信息是否写错了,使用提示信息深挖:输入哪些值可以触发其他信息?哪些输入值实际应该导致错误但软件没报错?哪些输入值实际应该不报错但软件报错了?
  • 错误信息,必须是指出非法值的根本原因及如何让它变成合法输入值。再进一步,继续使用刚才引发异常的输入数据或小修改,查看程序运行状态。
  • 除了常规输入,还要考虑非常规输入,即特殊情况下进行的输入。比如单点触屏左右滑动,若多点触屏滑动,是否有异常呢?

2)默认输入或用户提供的输入?
测试重点①默认值实现了功能 ②去掉默认值,程序反应 ③把值改成默认值附近的值、其他值、或类型

使用输出来指导输入

  • 从抽象角度,最高层的抽象是分为非法输出和合法输出
  • 从输出结果来思考整个问题,测试人员首先确定他们希望程序产生什么样的输出结果,然后考虑所有的用户场景,看看如何去生成期待的结果。

二、软件状态

软件状态:在我们选择下一步使用哪些输入时,必须考虑从前使用过的那些输入所造成的的累积效应。输入导致内部变量的数值发生变化,内部变量所有可能的取值组成了软件的状态空间。
或者用于描述软件记住过去发生的所有输入和输出的一种方式。
比如,无论购物车放置哪些商品,都可以进行结账。这里存在累积效应,可以集中关注边界情况(比如空购物车)。
软件状态分类:

  • 暂时的:当前运行中,被记住,程序终止时,该状态被忘却
  • 长期保存的:比如存到数据库或文件中,程序将来可以再读这个值

如果同一个输入导致软件做出两种完全不同的反应,这说明这两种情况下软件的状态是完全不同的

输入和状态之间的关系很关键,建议关注以下两点:

  • 两个或多个输入在某种程度是相关联的,就应该放在一起测
      输入可以组合是测试的基本常识。比如用户可以使用优惠券来打折,但不能用于打折商品。输入和状态为:打折商品、折扣券、所有购买的商品
  • 状态变化在某种方式上被累加起来,就必须考虑溢出
      当一个输入导致状态信息被更新,紧接着再多次使用相同的输入会导致一连串的状态变化。比如购物车是否会装满?用于存放数据的列表会不会变的太大?

三、代码路径

一连串的代码语句构成了一个代码路径,起始于软件开始运行的语句,终止于一条特定的语句。所以测试人员必须明确知道程序有哪些分支,尽量覆盖所有分支

四、用户数据

尽量用真实数据,这里会包含测试人员不了解的很多相互关系和结构,有利于发现问题。

五、运行环境

即使我们可以测试随着用户输入、状态变迁、用户数据变化而变化的所有代码路径,但是当程序被安装到一个崭新的且它从来没见过的环境中,还可能会失败。这是因为环境本身就是一种数据源,所以测试人员在产品发布前必须尽量尝试各种各样的用户环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值