
在编写测试用例过程中,需要参考和规范一些基本的测试用例编写标准,在ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用例编写规范和模板。标准模板中主要元素如下。
●标识符(identification):每个测试用例应该有一个唯一的标识符,它将成为所有和测试用例相关的文档/表格引用和参考的基本元素,这些文档/表格包括设计规格说明书、测试日志表、测试报告等。
●测试项(test item):测试用例应该准确地描述所需要测试地项及其特征,测试项应该比测试设计说明书中所列出地特性描述更加具体,例如做windows计算器应用程序地窗口设计,测试对象是整个地应用程序用户界面,这样测试项就应该是应用程序地界面地特性要求,例如缩放测试、界面布局、菜单等。
●测试环境要求(test environment):用来表征执行该测试用例需要地测试环境,一般来说,在整个的测试模块里面应该包含整个的测试环境的特殊要求,而单个测试用例的测试环境需要表征该测试用例所单独需要的特殊环境需求。
●输入标准(input criteria):用来执行测试用例的输入需求。这些输入可能包括数据、文件,或者操作(例如鼠标的左键单击,鼠标的按键处理等),必要的时候,相关的数据库、文件也必须被罗列。
●输出标准(output criteria):标识按照指定的环境和输入标准得到的期望输出结果。如果可能的话,尽量提供适当的系统规格说明书来证明期望的结果。
●测试用例之间的关联:用来标识该测试用例与其它的测试(或其它测试用例)之间的依赖关系,例如,用例A需要基于B的测试结果正确的基础上才能进行,此时需要在A的测试用例中表明对B的依赖性,从而保证测试用例的严谨性。
综上所述,如果使用一个数据库的表来表征测试用例的话,它应该有以下的格式:
| 字段名称 | 类型 | 是否必选 | 注释 |
| 标识符 | 整型 | 是 | 唯一标识该测试用例的值 |
| 测试项 | 字符型 | 是 | 测试的对象 |
| 测试环境要求 | 字符型 | 否 | 可能在整个模块里面使用相同的测试环境需求 |
| 输入标准 | 字符型 | 是 | |
| 输出标准 | 字符型 | 是 | |
| 测试用例间的关联 | 字符型 | 否 | 并非所有的测试用例之间都需要关联 |
测试对象:记事本程序文件菜单栏(测试用例标识1000,下同),所包含的子测试用例描述如下:
|---------文件/新建(1001)
|---------文件/打开(1002)
|---------文件/保存(1003)
|---------文件/另存(1004)
|---------文件/页面设置(1005)
|---------文件/打印(1006)
|---------文件/退出(1007)
|---------菜单布局(1008)
|---------快捷键(1009)
选取其中的一个子测试用例――文件/退出(1007)作为例子,测试用例如下表所示:
编号:……
| 编制人 | …… | 审定人 | …… | 时间 | …… | |||
| 软件名称 | 记事本程序 | 编号/版本 | …… | |||||
| 测试用例 | “文件”菜单栏中的“文件”/“退出”命令的功能测试 | |||||||
| 用例编号 | 1007 | |||||||
| 参考信息(参考的文档及章节号或功能项): | ||||||||
| 输入说明(列出选用的输入项,覆盖正常、异常情况): (1)打开Windows记事本程序,不输入任何字符,单击“文件”/“退出”命令 (2)打开Windows记事本程序,输入一些字符,不保存文件,单击“文件”/“退出”命令 (3)打开Windows记事本程序,输入一些字符,保存文件,单击“文件”/“退出”命令 (4)打开Windows记事本文件(扩展名为.txt),不做任何修改,单击“文件”/“退出”命令 (5)打开Windows记事本文件,修改后不保存,单击“文件”/“退出”命令 | ||||||||
| 输出说明(逐条与输入项对应,列出预期输出): (1)记事本未做修改,单击“文件”/“退出”命令,能正确地退出应用程序,无提示信息 (2) 记事本做修改未保存或者另存,单击“文件”/“退出”命令,会提示“未定标题文件的文字已经改变,想保存文件吗?”单击“是”,Windows将打开“保存”/“另存为”对话框,单击“否”,文件将不被保存并退出记事本程序,单击“取消”将返回记事本窗口 | ||||||||
| 环境要求(测试要求的软、硬件、网络要求): Windows 2000 professional中文版 | ||||||||
| 特殊规程要求: | ||||||||
| 用例间的依赖关系: 1009 | ||||||||
测试用例设计考虑因素
测试是不可能实现穷举测试的,因此试图用所有的测试用例来覆盖所有测试可能遇到的情形是不可能的,所以,在测试用例的编写、组织过程中,尽量考虑有代表性的典型的测试用例,来实现以点带面的穷举测试。这要求在测试用例设计中考虑一些基本因素:
●测试用例必须具有代表性、典型性。
●测试用例设计时,要浓缩系统设计。
例二:常见的web登录页面,通过这个例子来阐述从功能规格说明书到具体测试用例编写的过程
A)用户登录的功能设计规格说明书(摘选)
―――――――――――――――――――――――――――――――――――――――
1.用户登录
1.1满足基本页面布局(图示,略)
1.2当用户没有输入用户名和密码时,不立即弹出错误对话框,而是在页面上使用红色字体来提示,见2描述
1.3用户密码使用掩码号(*)来标识。
1.4*代表必选字段,将出现在输入文本框的后面。
2.登录出现错误
当出现错误时,在页面的顶部会出现相应的错误提示。错误提示的内容见3。错误提示是高亮的红色字体实现。
3.错误信息描述
3.1用户名输入为空
| 属性 | 值 |
| 编号 | MSG0001 |
| 显示的页面 | ErrorPage0001 |
| 出现条件 | 当用户输入的用户名为空而试图登录 |
| 提示信息 | 错误:请输入用户名 |
| 属性 | 值 |
| 编号 | MSG0002 |
| 显示的页面 | ErrorPage0002 |
| 出现条件 | 当用户输入的密码为空且没有出现WMSG001的提示信息 |
| 提示信息 | 错误:请输入密码 |
| 属性 | 值 |
| 编号 | MSG0003 |
| 显示的页面 | ErrorPage0003 |
| 出现条件 | 当用户名和密码不匹配时 |
| 提示信息 | 错误:您输入的用户名或者密码不正确 |
―――――――――――――――――――――――――――――――――――――――
B)通用安全性设计规格说明书(摘选)
―――――――――――――――――――――――――――――――――――――――
1.安全性描述
1.1 输入安全性:在用户登录或者信用卡验证过程中,如果三次输入不正确,页面将需要重新打开才能生效。
1.2 密码:在所有的用户密码中,都必须使用掩码符号(*),数据在数据库中存储使用统一的加密和解密算法。
1.3 Cookie:在信用卡信息验证,用户名输入时,Cookie都是被禁止的,当用户第一次输入后,浏览器将不再提供是否保存信息的提示,自动完成功能将被禁用。
1.4 SSL校验:所有的站点访问时,都必须经过SSL校验。
2.错误描述(略)
―――――――――――――――――――――――――――――――――――――――
C)测试用例
结合相关的规格说明书,理解和掌握测试用例设计的关键点,测试用例设计如下表所示。
●测试用例需要考虑到正确的输入,也需要考虑错误的或者异常的输入,以及需要分析怎样使得这样的错误或者异常能够发生。
用户登录功能测试用例
| 字段名称 | 描述 |
| 标识符 | 1100 |
| 测试项 | 站点用户登录功能测试 |
| 测试环境要求 | (1)用户test/pass为有效登录用户,用户test1为无效登录用户 (2)浏览器的Cookie未被禁用 |
| 输入标准 | (1)输入正确的用户名和密码,单击“登录”按钮 (2)输入错误的用户名和密码,单击“登录”按钮 (3)不输入用户名和密码,单击“登录”按钮 (4)输入正确的用户名并不输入密码,单击“登录”按钮 (5)三次输入无效的用户名和密码 尝试登录 (6)第一次登录成功后,重新打开浏览器登录,输入上次成功登录的用户名的第一个字符 |
| 输出标准 | (1)数据库中存在的用户能正确登录 (2)错误的或者无效用户登录失败,在把页面的顶部出现红色字体:“错误:用户名或密码输入错误” (3)用户名为空时,页面顶部出现红色字体提示:“请输入用户名” (4)当密码为空且用户名不为空时,页面顶部出现红色字体提示:“请输入密码” (5)三次无效登录后,第四次尝试登录会出现提示信息“您已经三次尝试登录失败,请重新打开浏览器进行登录”,此后的登录过程将被禁止 (6)自动完成功能将被禁止,查看浏览器的Cookie信息,将不会出现上次登录的用户名和密码信息,第一次使用一个新帐户登录时,浏览器将不会提示“是否记住密码以便下次使用”对话框 (7)所有的密码均以*方式输入 |
| 测试用例间的关联 | 1101(有效密码测试) |
| 字段名称 | 描述 |
| 标识符 | 1100 |
| 测试项 | 站点用户登录功能测试 |
| 测试环境要求 | (1)用户pass/pass为有效登录用户,用户pass1/pass为无效登录用户,pass’jean/password为有效登录用户 (2)浏览器的Cookie未被禁用 |
| 输入标准 | (1) 输入正确的用户名和密码,单击“登录”按钮 (2) 输入错误的用户名和密码,单击“登录”按钮 (3) 不输入用户名和密码,单击“登录”按钮 (4)输入正确的用户名并不输入密码,单击“登录”按钮 (5)输入带特殊字符(/、’、”和#,如pass’jean)的用户名和密码,单击登录按钮 (6)三次输入无效的用户名和密码 尝试登录 (7)第一次登录成功后,重新打开浏览器登录,输入上次成功登录的用户名的第一个字符 |
| 输出标准 | (1)数据库中存在的用户(pass/pass,pass’jean/password)能正确登录 (2)错误的或者无效用户登录失败,在把页面的顶部出现红色字体:“错误:用户名或密码输入错误” (3)用户名为空时,页面顶部出现红色字体提示:“请输入用户名” (4)当密码为空且用户名不为空时,页面顶部出现红色字体提示:“请输入密码” (5)含特殊字符(‘、/、“”、#)的用户名,如数据库中有该记录,将能正确登录;如无该用户记录,将不能登录,校验过程和普通的字符相同,不能出现空白页面或者脚本错误 (6)三次无效登录后,第四次尝试登录会出现提示信息“您已经三次尝试登录失败,请重新打开浏览器进行登录”,此后的登录过程将被禁止 (7)自动完成功能将被禁止,查看浏览器的Cookie信息,将不会出现上次登录的用户名和密码信息,第一次使用一个新帐户登录时,浏览器将不会提示“是否记住密码以便下次使用”对话框 (8)所有的密码均以*方式输入 |
| 测试用例间的关联 | 1101(有效密码测试) |
