黑盒测试(black?box testing)又称功能测试、数据驱动测试或基于规范的测试。用这种方法进行测试时,被测程序被当作看不见内部的黑盒。在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法是既然程序被规定做某些事,那我们看看它是不是在任何情况下都做的对。完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试。
黑盒测试首先是程序通常的功能性测试。要求:
每个软件特性必须被一个测试用例或一个被认可的异常所覆盖。
用数据类型和数据值的小集测试。
用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“坏情况”的结果;
用假想的数据类型和数据值运行,测试排斥不规则输入的能力;
对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)。
不仅要考核“程序是否做了该做的?”还要考察“程序是否没做不该做的2”同时还要考察程序在其他一些情况下是否正常。这些情况包括数据类型和数据值的异常等等。下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,是从更广泛的角度来进行黑盒测试。每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集。
1.等价类划分
等价类划分是一种典型的黑盒测试方法。等价类是指某个输入域的集合。它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。因此我们只要在一个集合中选取一个测试数据即可。等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。这样可使用少数测试用例检验程序在一大类情况下的反映。
在考虑等价类时,应该注意区别以下两种不同的情况:
有效等价类:有效等价类指的是对程序的规范是有意义的、合理的输入数据所构成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。
无效等价类:无效等价类指对程序的规范是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
确定等价类有以下几条原则:
如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。例如,程序的规范中提到的输入条包括“……项数可以从1到999……”,则可取有效等价类为“l考项数<999”,无效等价类为“项数999”。
输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。如某程序涉及标识符,其输入条件规定“标识符应以字母开头……”则“以字母开头者”作为有效等价类,“以非字母开头”作为无效等价类。
如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划分成更小等价类。
输入条件 有效等价类 无效等价类
。。。。。。
。。。。。。 。。。。。。
。。。。。。 。。。。。。
。。。。。。
根据已列出的等价类表,按以下步骤确定测试用例:
为每个等价类规定一个的编号;
设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,后使得所有有效等价类均被测试用例所覆盖;
设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖。这里强调每次只覆盖一个无效等价类。这是因为一个测试用例中如果含有多个缺陷,有可能在测试中只发现其中的一个,另一些被忽视。等价类划分法能够全面、系统地考虑黑盒测试的测试用例设计问题,但是没有注意选用一些“高效的”、“有针对性的”测试用例。后面介绍的边值分析法可以弥补这一缺点。
2.因果图
等价类划分法并没有考虑到输入情况的各种组合。这样虽然各个输入条件单独可能出错的情况已经看到了,但多个输入情况组合起来可能出错的情况却被忽略。采用因果图方法能帮助我们按一定步骤选择一组高效的测试用例,同时,还能为我们指出程序规范的描述中存在什么问题。
利用因果图导出测试用例需要经过以下几个步骤:
分析程序规范的描述中哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类。结果是输出条件。
分析程序规范的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。
由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用持殊的符号标明约束条件。把因果图转换成判定表。把判定表的每一列写成一个测试用例。
3.边值分析法
边值分析法是列出单元功能、输入、状态及控制的合法边界值和非法边界值,设计测试用例,包含全部边界值的方法。典型地包括IF语句中的判别值,定义域、值域边界,空或畸形输入,末受控状态等。边值分析法不是一类找一个例子的方法,而是以边界情况的处理作为主要目标专门设计测试用例的方法。另外,边值分析不仅考查输入的边值,也要考虑输出的边值。这是从人们的经验得出的一种有效方法。人们发现许多软件错误只是在下标、数据结构和标量值的边界值及其上、下出现,运行这个区域的测试用例发现错误的概率很高。
用边值分析法设计测试用例时,有以下几条原则:
如果输入条件规定了取值范围,或是规定了值的个数,则应以该范围的边界内及刚刚超出范围的边界外的值,或是分别对大、小及稍小于小、稍大于大个数作为测试用例。如有规范“某文件可包含l至255”个记录……“,则测试用例可选1和255及0和256等。
针对规范的每个输出条件使用原则〔a〕。
如果程序规范中提到的输入或输出域是个有序的集合(如顺序文件、表格等)应注意选取有序集的第一个和后一个元素作为测试用例。
分析规范,尽可能找出可能的边界条件。一个典型的边值分析例子是三角形分类程序。选取a,b,c构成三角形三边,“任意两边之和大于第三边”为边界条件。边值分析相等价类划分侧重不同,对等价类划分是一个补充。如上述三角形问题,选取a=3,b=4,c=5,a=2,b=4,c=7则覆盖有效和无效等价类。如果能在等价类划分中注入边值分析的思想。在每个等价类中不只选取一个覆盖用例,而是进而选取该等价类的边界值等价类划分法将更有效,后可以用边值分析法再补充一些测试用例。
4.猜错法
猜错法在很大程度上是凭经验进行的,是凭人们对过去所作的测试工作结果的分析,对所揭示的缺陷的规律性作直觉的推测来发现缺陷的。
一个采用两分法的检索程序,典型地可以列出下面几种测试情况:
被检索的表只有一项或为空表;
表的项数恰好是2的幂次;
表的项数比2的幂次多1等。
猜错法充分发挥人的经验,在一个测试小组中集思广益,方便实用,特别在软件测试基础较差的情况下,很好地组织测试小组 (也可以有外来人员)进行错误猜测,是有效的测试方法。
5.随机数法
即测试用例的参数是随机数。它可以自动生成,因此自动化程度高。使用大量随机测试用例测试通过的程序会提高用户对程序的信心。但其关键在于随机数的规律是否符合使用实际。
手机黑盒测试涵盖的内容:
1、基本通话
1.1 来电动作的检测,如来电大头贴、号码、名称的显示,响铃方式(通常由响铃、振动、响铃+振动、无等情况)
1.1.1来电响铃时的接通操作
1.1.2来电响铃结束操作
1.1.3来电响铃过程中有效功能的按键操作(除接通、结束)
1.1.4来电响铃时的无效按键操作
1.2 来电通话
1.2.1来电通话中的基本菜单操作,除挂机(一般有操作SMS,如编辑、发送等,电话簿的编辑、保存).
1.2.2通话中的功能键.
1.2.3结束通话.
1.3 呼叫功能
1.3.1拨号呼出..
1.3.2结束呼叫响铃.
1.3.3呼叫中的无效操作.
1.3.4主叫通话时功能操作.
1.3.5 结束主叫通话
1.4多方通话(SIM一定要支持该业务)
1.4.1主叫多方通话.
1.4.2被叫多方通话.
2、通话设置
2.1 翻盖应答
2.2 单键拨号
2.3自动重拨.
2.4 任意键应答
2.5 呼叫等待
3、短信
短信的具体测试请参阅 http://www.mobiletest.cn/bbs/vie ... &extra=page%3D1
4、彩信
4.1彩信的连接设置和基本设置测试
4.1.1连接设置,如homepage、IP、Port、连接时间,连接方式(GPRS&CSD)等
4.1.2基本设置,如优先级、下载方式(Auto、delay、reject),是否接收阅读报告等一些设定
4.2 编辑操作
4.2.1 正常编辑:如插入所有支持的图片、声音、文本、号码、符号、video、附件
4.2.2 错误编辑:如插入所有不支持的图片、声音、文本、号码、符号、video、附件,DRM对象(肯定插不进去的)等
在内存满的时候编辑MMS,编辑到大页数再试图插入页,单个MMS插入到对象到满再试图插入对象等。
4.3 发送
4.3.1 正常发送,单个接收人、多个接收人、TO&CC&BCC接收人到大值,输入E-mail地址
4.3.2 错误发送:无网络的时候发送,发送时丢失网络等
4.4 接收
4.4.1 正常接收,
4.4.2 内存满的时候接收,无网络的时候接收等
4.5 压力测试
4.5.1 长时间、对次数的查看、发送、接收MMS
5、WAP
5.1设置WAP配置文件
5.1.1电路交换(CSD)参数设置
5.1.2 GPRS参数设置.
5.2登录WAP
5.2.1电路交换(CSD)承载
5.2.2 GPRS承载.
5.3、网络状态标识
5.4、一键上网
5.5、GUI要求
5.5.1屏幕与可显示区域
5.5.2导航菜单
5.5.3滚动标识
5.5.4 键盘映射...
5.6、浏览器界面菜单
5.6.1浏览器的超级链接功能
5.6.2返回上一级页面
5.7、中英语言支持
5.8、图形化文字的支持功能
5.9、内容要求
5.9.1背景音
5.9.2各种图像格式支持
5.10、默认主页地址..
5.11、Bookmark功能
5.12、输入URL登录功能
5.13、历史记录功能..
5.14、语言的支持
5.13.1 XHTML MP语言
5.13.2 WML1.3语言..
5.13.3 WAP CSS(WCSS)...
5.13.4 CHTML,HTML3.2等语言
5.15、基本参数配置
14.1代理服务器(网关)列表..
16、下载业务
15.1内容传送..
17、无线电话应用
16.1语音呼叫请求的处理...
16.2来话GUI通知..
18、跨业务调用
17.1E-mail.
17.2接收短消息...
17.3电话呼入...
19、电子邮件业务...
6、电话簿
6-1 查找姓名
6-1-1 进入退出
6-1-2 输入汉字查找
6-1-3 输入字母查找
6-1-4 输入数字查找
6-1-5 输入特殊字符查找
6-1-6 混合输入查找
6-1-7 不输入字符,直接查找
6-1-8 输入大字符容量查找
6-1-9 按数字检查找
6-1-10 对查到的号码进行操作
6-1-11 交叉事件
6-1-12 呼叫查到的号码
6-1-13 呼叫电话簿里的号码
6-1-14 英语状态
6-2 增加号码
6-2-1 进入退出
6-2-2 使用中文、英文、数字和特殊符号存储姓名
6-2-3 存储含有+、P、#和*的号码
6-2-4 输入各条目
6-2-5 储存不输入姓名的记录
6-2-6 交叉事件
6-2-7 牵连其它模块
6-2-8 在待机画面储存号码
6-2-9 英语状态
6-3 删除号码
6-3-1 进入退出
6-3-2 删除电话簿里的记录
6-3-3 删除特定位置的记录
6-3-4 依次删除号码
6-3-5 交叉事件
6-3-6 牵连其它模块
6-3-7 英语状态
6-4 复制号码
6-4-1 进入退出
6-4-2 复制手机的全部记录到SIM卡(SIM卡电话簿无记录)
6-4-3 复制SIM卡的全部记录到手机(手机电话簿无记录)
6-4-4 逐个复制
6-4-5 全部复制
6-4-6 交叉事件
6-4-7 英语状态
6-5 选择电话簿
6-5-1 进入退出
6-5-2 选择电话簿的功能(存储到SIM卡)
6-5-3 选择电话簿的功能(存储到手机)
6-5-4 交叉事件
6-5-5 英语状态
6-6 剩余空间
6-6-1 进入退出
6-6-2 是否与实际相符
6-6-3 添加记录
6-6-4 删除记录
6-6-5 手机电话簿和SIM 卡之间互相复制记录
6-6-6 交叉事件
6-6-7 英语状态
6-7 单键拨号
6-7-1 进入退出
6-7-2 添加、储存、呼叫、清除单键拨号(输入号码)
6-7-3 添加、储存、呼叫、清除单键拨号(从电话簿选择号码)
6-7-4 关机后开机
6-7-5 在待机画面设置
6-7-6 添加、储存、呼叫、清除单键拨号(从待机画面设置)
6-7-7 交叉事件
6-7-8 英语状态
6-8 号码分组
6-8-1 进入退出
6-8-2 查看/删除功能
6-8-3 增加记录功能
6-8-4 来电铃声功能
6-8-5 来电图片功能
6-8-6 重新命名功能
6-8-7 交叉事件
6-8-9 英语状态
7、场景设置
8、呼叫转接
9、闹钟
设置闹钟
取消闹钟
选择振铃音
10、备忘录
写备忘录
一次型
每天型
每星期型
每月型
每年型
读备忘录
测试子项目:读备忘录-翻页键
测试子项目:读备忘录-编辑备忘录
测试子项目:读所有备忘录-查看备忘录
测试子项目:读备忘录--删除备忘录
退出
测试子项目:读备忘录-备忘录为空时查看
读所有备忘录
删除备忘录
删除所有备忘录
11、语音记录
录音
通话中录音
播放
重命名
删除一个
删除全部
播放
重命名
删除一个
删除全部
12、照相机
13、保密设置
1 PIN码设置
1.1启动PIN码
1.2取消PIN码
1.3更改PIN码
2 手机加锁
2.1启动手机加锁
2.2取消手机加锁
2.3更改手机加锁密码
3 呼叫限制
3.1全部呼出
3.2国际呼出
3.3 全部呼入
3.4 国际漫游呼入
4 固定呼叫
14、编辑器
14.1 编辑器1.
14.2 编辑器2.
14.3 编辑器3.
14.4 编辑器4.
14.5 编辑器5.
14.6 编辑器6.
14.7 编辑器7.
14.8 编辑器8.
14.9 编辑器9.
14.10 编辑器10.
15、通话记录
16、移动梦网
1 移动梦网卡提供的套餐服务
1.1个人助理.
1.2电子邮件.
1.3移动聊天.
1.4位置服务.
1.5电子商务.
1.6娱乐服务.
1.7信息服务.
1.8客户服务.
2 动感地带卡提供的套餐服务
2.1 动感特区.
2.2 动感消息.
2.3 动感密语.
2.4动感乐园.
2.5 动感位置.
2.6 娱乐休闲.
17、应用程序
18、其他手机设置
19、日历
20、长途区号
21、世界时间
22、计算器
23、秒表
24、单位换算
25、游戏
26、文件夹
27、界面图
界面图片与字符输入
1 开关机画面
1.1 LCD1开机画面
1.2 LCD1 关机画面
1.3 LCD2开机过程显示.
1.4 LCD2关机过程显示.
2 待机界面
2.1 LCD1待机界面...
2.2 LCD2待机界面
3 待机按键操作界面
4 LCD2的界面显示状态
4.1 来电时小屏的界面显示
4.2 新到短信时小屏的界面显示.
4.3 闹钟发生时小屏的界面显示.
4.4 自拍时的小屏界面显示.
4 状态提示...
5 菜单分支界面
6 状态进程中的界面
7 通话界面.
8 无SIM卡待机界面
28、菜单结构
29、图标逻辑
30、无SIM卡
1 无SIM卡时的待机界面..
2 无SIM卡按键操作..
3 紧急呼叫
4 查看参数
31、各种SIM卡兼容
32、充电器
33、耳机
34、开关机
34.1 正常
34.1.1 开关机测试-正常关机
34.1.2 开关机测试-正常开机
34.2 开机后
34.2.1 开关机测试-正常开机-打电话..
34.2.2 开关机测试-正常开机-接电话..
34.2.3 开关机测试-正常开机-马上拨打电话..
34.2.4 开关机测试-正常开机-接到普通短信..
34.2.5 开关机测试-正常开机-接到设为自动显示的短信..
34.2.6 开关机测试-正常开机-接到彩信..
34.2.7 开关机测试-正常开机-闹铃到期..
34.2.8 开关机测试-正常开机-闹铃到期..
34.2.9 开关机测试-正常开机-备忘录到期..
34.3 附件
34.3.1 开关机测试-插充电器-关机-开机.
34.3.2 开关机测试-关机-插充电器-开机
34.3.3 开关机测试-没有SIM卡.
34.3.4 开关机测试-设置pin
此外还有J2ME、BT、IrDA、WI-FI、FM等测试
J2ME的测试主要有(可能因为各个公司的解决方案可能不太一样,里面的功能、支持的API和要测试的内容也有所区别):
1 简单的测试:如新建、重命名、编辑、删除文件夹,下载、安装、运行、卸载MIDlet;
2 打断性测试:这跟其它Function的测试差不多,如下载、安装、运行时出现打断性的测试
3 边界测试:如单个文件=Limited Size(现在多数手机没有MIDlet Size的限制了,所以有的可以不用测试此项),Download MIDlet到内存满。
4 错误测试:如没信号的时候去Download MIDlet或Download时中途端掉信号,内存满的时候再Download MIDlet等
5 安全性的测试:因为J2ME平台很开放,MIDlet又分受信任和不受信任的,测试安全性也显得很重要。我这部分不太熟悉,抱歉。
6 压力测试:长时间执行MIDlet
7 其它