51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2114|回复: 2
打印 上一主题 下一主题

[原创] 测试人员必学的软件快速测试方法(二)

[复制链接]
  • TA的每日心情
    开心
    2018-8-15 14:22
  • 签到天数: 63 天

    连续签到: 2 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2018-3-12 11:06:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    以下是测试专家Cem Kaner在黑盒软件测试中总结的一些快速测试方法,这里进行补充和调整,并同步更新到我们的测试知识共享库中,使用时可灵活增删改查。

    1.用户界面        
    若软件在应用商店中销售,界面很可能成为用户是否安装或购买的重要因素        
    1).漫游用户界面 ,发现是否有任何令人厌烦的界面设计。
    2).可参考受欢迎的界面设计,以发现被测产品的可改进之处"

    2.边界        
    软件在处理数值边界时可能出错        
    1).发现业务的范围和边界,测试边界上的值和临近边界的值
    2).测试超出范围的值
    3).令数值计算产出超出范围的值
    4).令一个模块输出其他模块不能接受的值,如界面字段只能显示10个字符的字符串,测试人员让后台产生11个字符的字符串。后台DB的字段是8位整数,测试人员让前台网页传递大于255的整数"

    3.溢出        
    整数和浮点数运算可能溢出,会导致计算错误和安全漏洞        
    留意软件的数值计算,若觉得某个计算有溢出的风险,就传入极大值或极小值去触发潜在的溢出

    4.计算和操作        
    数据转换和数值计算有些典型错误        
    1).输入错误的数据以测试数据转换,如软件期望输入整数,测试输入浮点数、无效字符串、空字符串
    2).除0
    3).除很接近0的极小数值,会产生很大的计算结果,有可能导致数值越界或溢出
    4).将高精度数值强制赋给低精度数值,可能导致精度丢失,甚至计算错误
    5).浮点数运算很可能产生误差,一些小的误差会累积出严重的偏差,所以测试要关注涉及多个变量或步骤的数值计算,仔细检查其结果的精度"

    5.初始状态        
    一段程序在使用一个变量时,可能对该变量的状态有不正确的假设,这会导致软件故障        
    变量通常有5个状态,测试要检查程序的对变量状态的假设是否总是正确的:
    1).未初始化
    2).已初始化
    3).默认值
    4).已经被赋予当前计算需要的值
    5).带有其他计算的结果
    6.被修改的值        
    软件可能不能侦测到它所依赖的事物发生了变化 ,这会导致错误        
    为一个变量设置值,让一些功能依赖于该变量,然后修改该变量的值,并检查相应功能是否正确。
    eg.用图片应用浏览图片,切换到OS界面下删除正在显示的图片,返回图片应用,看被删的图片如何显示

    7.控制流        
    控制流的意外跳转可能暴露隐藏的问题        
    测试要想办法打乱软件的控制流,如触发异常、输入异常数据、造成环境失败等

    8.序列        
    有些软件错误会在漫长的操作序列中暴露        
    考虑反复执行以下操作:
    1).产生错误消息的操作
    2).令任务被迫中断的操作
    3).会执行递归计算的操作
    另外, 测试可编写测试程序,用随机的顺序调用已有的自动化测试用例,实施长序列的测试"

    9.消息        
    软件与外界的通讯可能中断        
    若软件与网络服务、DB、其他软件有任何形式的交互 ,测试要破坏它们之间的通讯。
    可编写测试程序来监听并篡改信息,或强制被依赖的软件返回错误信息,以测试软件如何处理破损的消息

    10.时序和竞态条件        
    软件可能对操作的时序有不正确地假设        
    测试异步调用时,测试让软件先后启动A和B两个计算,并让B先完成计算。有些软件不能处理后提交的在计算先返回的情况,会发生故障。
    测试可同时启动多个操作去访问共享的数据或功能,以检查并发计算是否造成数据损坏。"

    11.错误处理        
    软件的错误处理代码需要应对意外情况,有较高的编写难度,故易出错
    测试尝试触发软件的错误信息,然后反复执行导致 错误消息的操作,以检查错误处理代码是否产生了资源泄漏问题。
    强力测试软件,来检查错误处理代码是否将软件恢复到正确状态。"

    12.失败处理        
    软件的失败恢复可能包含错误,使得损失加重        
    测试要检查失败处理代码的正确性。如,文档崩溃重启后,是否显示用户最近的编辑成果,避免或降低了用户的损失。

    13.文件系统        文件系统的异常情况会影响软件的运行        
    1).用调试工具令OS的文件读写API返回错误,可模拟出磁盘损坏等异常情况
    2).删除正在被使用的文件
    3).删除即将被使用的文件
    4).锁住即将被使用的文件
    5).窃取软件持有的文件句柄
    6).修改一个需要更高权限才能修改的文件
    7).令文件名和文件路径的长度超过OS支持的最大路径长度
    8).令文件名包含OS禁止的字符
    9).修改文件名后缀为大写或其他无效的后缀名
    10).将文件名修改对OS有特殊含义的单词
    11).读写尺寸巨大的文件
    12).将文件写入只读的磁盘
    13).将文件写入容量即将耗尽的磁盘
    14).将文件写入网络磁盘,在写入过程中,断开网络
    15).将文件写入移动硬盘,在写入过程中,拔出移动硬盘



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-15 14:22
  • 签到天数: 63 天

    连续签到: 2 天

    [LV.6]测试旅长

    3#
     楼主| 发表于 2018-3-12 11:49:16 | 只看该作者
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 02:24 , Processed in 0.065748 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表