zoukankan      html  css  js  c++  java
  • 探索式软件测试方法总结

    一、探索式测试的目标

    1. 理解应用程序如何工作,它的接口,它实现了哪些功能;
    2. 强迫软件展示其全部能力;
    3. 找到缺陷。

    二、局部探索式测试法

    1、输入:合法输入、非法输入

    1)输入筛选器

    需要检查以下几个方面:

    第一,开发是否正确的实现了该功能?

    第二,是否可以绕过屏蔽器?或者当输入值进入系统后还可以修改?

    2)输入检查

    测试必须仔细阅读每一条错误信息,检查该信息是否写错了,错误信息还可以透漏开发编程时的一些想法。

    输入检查和异常处理的区别:

    输入值检查提示的错误信息很精准,异常处理提示的错误信息比较笼统。

    3)异常处理

    如果测试看到一个空乏的通用出错信息,建议测试再反复测试同一段函数,继续很用刚才引发异常的输入数据,或稍微修改一下,看看会不会导致出错。尝试运行其他一些要调用该函数的测试用例,看看会发生什么情况。

    4)常规输入还是非常规输入?

    所有和Ctrl、Alt、Esc按键组合的字符,操作系统、编程语言、浏览器和运行时环境的特定保留词。

    5)默认输入或用户提供的输入?

    输入空或者默认值

    6)使用输出来指导输入选择

    把输出分为合法输出和非法输出,这里主要测合法输出。

    测试先确定用户希望程序什么输出结果,然后考察所有的用户场景,看看如何去生成期望的结果。

    2、状态

    使用状态信息来帮助寻找相关的输入;

    使用状态信息来辨识重要的输入序列。

    3、代码路径

    测试需明确知道代码可能有哪些分支,并理解哪些输入会导致软件走这条分支而不走另一条。

    4、用户数据

    需要考虑:如何模仿真实的用户数据,使用用户真实数据时,如何解决“隐私问题”。

    5、执行环境

    是指使用的操作系统和它当前的配置,还包括运行在同一操作系统上会和被测试软件进行交互的其他一些应用程序,包括会间接或直接影响被测试软件本身或影响被测试软件运行的任何驱动程序、代码、文件、设置等,还包括软件当前连接的网络情况、网络的可用带宽、性能等。

    三、全局探索式测试法(漫游测试)

    1、商业区测试类型(软件的重要功能模块)

    1)指南测试法:测试严格遵照用户手册的建议执行操作;

    变种一:博客测试法:遵循第三方的建议来测试;

    变种二:专家测试法:根据差评创建测试用例

    2)卖点测试法:观看销售录像,按照产品演示的步骤测试

    变种:质疑测试法:创建用户非常在意的测试用例

    3)地标测试法:

    通过指南测试法和卖点测试法,提前确定关键的软件特性(地标),在确定地标的前后顺序,然后从一个地标执行到另一个地标来探索应用程序,知道访问了所有的地标。在这个过程中,需要记录已经使用过哪些地标,并创建一个地标覆盖图来表示工作的进展。

    4)极限测试法

    变种:找麻烦测试法:故意设置各种障碍来看软件如何反应。

    5)快递测试法:测试必须专注于数据,确认那些被存储起来的输入数据并“跟随”它们走遍软件。

    6)深夜测试法:下班之后软件执行各种维护任务,将数据归档,备份文件等等。程序不自动执行的时候,测试强制程序执行。

    变种:清晨测试法:测试软件的启动过程和脚本。

    7)遍历测试法:通过选定一个目标(ex所有菜单项、所有错误消息或所有对话框),然后使用可以发现的最短路径来访问目标包含的所有对象。

    2、历史区测试类型

    历史区:指遗留的代码,或是在前几个版本就已经存在的软件特性,也指那些用于修复已知缺陷的代码。

    1)恶邻测试法:某个区域代码缺陷很多,建议对邻近功能使用遍历测试法进行测试,以此来验证那些修复已知缺陷的代码没有引入新的缺陷。

    2)博物馆测试法:找出遗留代码和老的可执行文件,并确保它们在测试中受到和新代码同样的待遇。

    3)上一版测试法:如果产品更新,必须运行先前版本上支持的所有场景和测试用例。应仔细检查在新版本中无法再运行的测试用例,以确保产品没有遗漏必需的功能。

    3、娱乐区测试类型(辅助特性)

    1)配角测试法:鼓励测试专注于某些特定功能,特别是紧邻主要功能的辅助功能。

    2)深巷测试法:测试使用情况列表中排在最后的几项特性。

    变种:混合测试法:把最流行的和最不流行的特性放在一起混着测。

    补:如何选择混合测试的特性?

    输入:这两个特性会不会处理同一个输入?

    输出:这两个特性功能是否在可见的用户界面上操作同一块区域?它们会产生同一个输出吗?

    有关数据:这两个特性会操作其共享的些内部数据?是读取共享数据?还是修改共享数据?

    对以上任何一个回答“是”,那么这两个功能就会互相交互,需要放在一起测试。

    3)通宵测试法:程序长时间运行,不去关闭。

    4、旅游区测试类型(快速访问软件的各种功能)

    1)收藏家测试法:收集软件的输出,越多越好。确保能观察到软件能生成的任何一个输出。此方法庞大,通常以小组为单位进行。

    2)长路径测试法:测试离应用程序开始点尽可能远的特性。

    3)超模测试法:只测试界面显示。

    4)测一送一测试法:只测试同时运行同一应用程序多个拷贝的情况。测试时运行一个应用程序,然后运行该应用程序的另外一个拷贝,然后再运行一个拷贝。试着用所有不同拷贝同时打开同一个文件,或者让它们同时在网络上传输数据。如果在一个拷贝上发现了一个缺陷,就在所有的拷贝上发现了同样的缺陷。

    5)苏格兰酒吧测试法:特别适用于大规模的复杂应用程序。测试不容易找到的功能。

    5、旅馆区测试类型(经常被忽略或者爱测试计划中较少描述的次要及辅助功能)

    1)取消测试法:启动操作然后停止它。可以对任何提供取消功能或者需要较长时间才能完成的功能做同样的操作。如果没有取消按钮,对于在浏览器中运行的程序可以试着按Esc键或是程序中的回退按钮。另外,按下Shift+F4键或者点击关闭按钮也可以彻底关闭应用程序。还可以开始一个操作,不要停止它,然后开始另一个同样的操作。

    2)懒汉测试法:测试人员做尽量少的实际工作。接受所有默认值,保持输入字段继续为空,在表单中尽可能少填数据,从不点击广告,在进入下一个界面时不点击任何按钮或者输入任何数据等等。

    6、破旧区测试类型

    1)破坏测试法:强迫软件做一些操作;掌握软件成功完成操作必须使用的资源;在不同程度上移除或者限制使用那些资源。比如增加或删除文件,改变文件权限,断网,在后台运行其他程序,把要测试的应用程序部署在有问题的机器上,等等。

    2)反叛测试法:输入最不可能的数据,或者已知的恶意输入。

    3)强迫症测试法:反反复复执行同样的操作。

  • 相关阅读:
    有关C#中List排序的总结
    配置jdk1.8.0_77
    New Day
    HDU 4288 Coder 线段树
    AOJ 169 找零钱 DP OR 母函数
    HDU 3954 Level up 线段树
    HDU 3016 Man Down 线段树+简单DP
    HDU 4027 Can you answer these queries? 线段树
    HDU 3333 Turing Tree 树状数组 离线查询
    POJ 2464 Brownie Points II 树状数组+扫描线
  • 原文地址:https://www.cnblogs.com/lansan0701/p/6714432.html
Copyright © 2011-2022 走看看