1.用户输入
定义:输入由应用程序外部引发,并导致应用程序执行某些代码
举例:用户单击一个按钮、点击一个tab列表等,导致软件执行某些代码,并以某种方式作出反应,即是一种用户输入
测试用户输入应注意的事项
** 1)合法输入和非法输入**
开发人员喜欢编写正常功能代码,不喜欢编写错误处理代码。所以测试过程中应关注:
①对于非法输入的屏蔽,检查是否实现了正常的功能,是否可以绕过屏蔽
举例:通过编辑web页面HTML源代码修改输入值为错误信息,如果后面的代码不进行检查,软件可能就出现异常
②在错误输入发生时,应用程序是否给出了合理的响应
③当出现错误信息时,仔细阅读每一条错误提示信息,使用提示信息来引导测试挖掘:哪些输入值可以触发其他错误信息?哪些输入值实际上应该导致错误但软件没有报错?
④对于通用错误提示信息,比如“崩溃提示信息”,要反复测试相关模块,继续使用刚才引发异常的输入数据或者小修改,查看程序运行状态
2)除常规输入外,测试还需要关注非常规输入,即特殊情况进行的输入
举例:小编之前在测试手机端页面滑动时,常规输入:一般都是单点触控进行左右上下滑动;某次测试发现多点触控滑动时,程序就会出现异常,停止响应
** 3)默认输入和用户提供的输入**
举例:一搜索框,需要检查①默认值搜索②删除默认值的搜索③修改默认值的长度、输入类型等搜索
2.软件状态
输入会导致应用程序执行某些代码,相关信息会被存储在软件的内部数据结构中,从而改变被测软件的状态。如果再进行相同输入,由于软件状态不同,输出结果也会不同。所以测试需要考虑输入与软件状态关联因素,建议关注一下两点:
1)如果两个或更多个输入条件在某种程度上是相关联的,那么他们应该放在一起测试
2)如果条件变化在某种方式上被累加起来,就必须考虑是否会发生溢出
举例:比如测试一个资讯类app,它可以通过点击不同tab查看不同类型的资讯新闻。那么是否已启动并浏览过tab页,再点tab查看数据加载的结果是不同的。若浏览记录是保存在手机内存的,当加载的数据过多时,有可能会导致内存溢出
3.代码路径
一连串的代码语句构成了一个代码路径,起始于软件开始运行的语句,终止于一条特定的语句。所以测试人员必须明确知道程序有哪些分支,尽量覆盖所有分支
4.用户数据
尽量用真实的用户数据测试,因为这些数据中包含测试人员不了解的很多相互关系和结构,有利于发现问题
举例:手机联系人的备份还原功能,测试开始时是通过测试小工具生成大量的测试数据进行验证,但是用户填写联系人的字段不同、不同的手机对应的字段不同,该类数据备份还原后会出现较多问题,是测试工具无法测试到的,所以最好用真实数据进行验证
5.运行环境
即被测应用程序具体的用户环境,主要包括操作系统及当前的配置。比如:操作系统、操作系统上可能交互的其他应用程序、驱动程序、代码、文件、设置及网络等。
任何可以影响被测试软件行为的因素都是运行环境的一部分,测试中都必须考虑