前言
在此之前我搜集一些关于测试用例的知识,后来在我们的QQ群里专门定了一期讨论,来探讨测试用例,毕竟这是一个很大的话题,很难做到面面俱到,但我会尽量全面,用通俗的语言来说测试用例。
1、测试用例(test cases)的概念是什么?
测试用例是一组有条件的用例,QA可以依靠这些条件来确定应用程序、软件系统或某些功能是否按预期执行。
测试用例是QA执行的单个可执行测试。它指导QA完成测试的步骤。你可以将测试用例看作是一组按部就班的指令,以验证某些功能是否符合需求。
2、设计测试用例的步骤
Step 1:定义测试流程目标
首先,你需要了解软件需求规范。
当开始为软件的功能特性编写测试用例时,首先要做的是理解并确定需求。
Step 2: 确定软件系统的性能指标(基于你对系统的理解)
为了编写一个好的测试脚本,你需要熟悉功能需求。
还需要了解软件是如何使用的,包括各种功能和组织功能。
Step 3: 确定非功能性需求
第三步是了解与非功能需求相关的软件的其他方面,如硬件需求、操作系统、安全方面。除了准备测试数据之外,还需要考虑其他先决条件。
测试非功能性需求非常重要。
例如,如果软件需要用户填写表单,你必须确定一个合理的时间框架,这样用户在等待提交时就不会超时。同时,还需要检查登录时间,以确保用户会话没有过期,这称为安全测试。
Step 4: 确定测试用例模板
应该选择的测试用例样本、测试用例模板必须包括测试类型
例如UI、功能、容错、兼容性和性能。每种类型都应该根据应用程序的逻辑来定义。
Step 5: 指出软件模块之间的交互
此时,你必须理解每个模块的功能及其与其他模块的交互,以识别系统流。测试用例的设计应涵盖模块交互的最高级别。
例如:在测试一个电子商务网站的购物车功能时,你需要测试库存管理系统来验证是否从商店中扣除了相同数量的购买产品。类似的,在处理重新测试时,你需要测试它对应用程序的财务部分以及库存管理系统的影响。
3、测试用例的结构
典型测试用例的格式包括:
Test Case ID: 确定测试所需实例数量所需的值。
Function: 根据系统的功能,可以分割功能来创建更清晰的测试用例。
Test Data: 需要为测试准备的数据。
Test Steps: 描述测试步骤。
Expected results: 以上步骤的预期结果。
A result: 通常为PASS,FAIL或PENDING。这是系统环境中测试用例的实际结果。
Comments: 本专栏用于在执行测试用例时记录屏幕截图和相关信息。
此外,您可以添加更多的列,例如:测试人员、执行日期等。
4、 编写Facebook登录功能的测试用例(桌面端)
Step 1: 确定的需求
第一个任务是测试Facebook的登录表单:https://www.facebook.com/
测试目的: 测试登录Facebook成功(仅在Web环境中),不要测试注册功能。
性能测试: 登录表单通常包括2个文本框:email/phone和password,登录按钮,忘记密码的链接。
确定非功能性需求: 检查未注册电子邮件的保密性,将密码保存到浏览器。此外,检查网络系统和计算机硬件。
确定合适的测试用例模板: 要求将包括测试组件,例如UI,登录功能,登录速度。
确定模块之间的交互:检查用户登录帐户的真实性。成功登录后,将用户重定向到主页。
Step 2:构造测试用例
定义UI用例:UI用例包括color, font, size, color of the label, length, width, height, textbox类型,button, 表单位置, textbox, button, 页面上的URL等等,如果将每个UI拆分为一个用例,则测试用例将太长,因此我们应将它们合并到一个通用的UI测试用例中,或将它们拆分为UI子类。
定义功能用例: 这里的功能是使用2个文本框登录到Facebook,这些文本框是电子email/phone 和 password,一个登录按钮,一个忘记密码的链接。因此,将出现以下情况:
email/phone box:
正常情况将包括:使用正确的电话号码或电子邮件地址登录,然后使用空白,错误的电话号码或电子邮件地址登录。
异常情况将包括:使用区号的电话号码(例如+849…)或没有电子邮件域(@http://facebook.com)的电子邮件地址登录。另外,还有网络断开、cookie窃取、浏览器登录等情况……
边界用例将包括:测试每个文本框中可以输入的最小字符数和最大字符数。创建要测试的多个字符的电子邮件,或要测试的尽可能短的电子邮件。
Password框类似,另外还需要检查密码框的加密。
Login按钮:
正常情况将包括:在文本框中输入一个值,单击login按钮或按键盘上的Enter键。
正常情况是:点击Continue 按钮。
边界用例将包括:无需检查这种情况。
作者:程序员老陈