如何设计一个完整的测试用例

软件测试的W模型,就要求测试与开发同步,在开发设计需求设计说明书的时候就开始测试流程,一般情况下,讨论需求设计的时候需要测试主管或者组员的参与,了解这个项目设计的总体情况

登录界面测试用例 登录界面测试用例英文登录界面测试用例 登录界面测试用例英文


登录界面测试用例 登录界面测试用例英文


登录界面测试用例 登录界面测试用例英文


事实上,测试用例的编写一般是在需求设计说明书定下来之后才真正的开始的

因为测试用例的内容要以需求设计说明书为依据,设计说明书上没体现的功能,不需要在测试用例中体现

编写测试用例(这里指功能测试用例的编写),首先要做的就是设计测试用例的模板

每个公司都有适合自己公司用例编写的模板,各有各的特点

测试用例的格式包括,测试用例摘要、测试用例需求编号(一个需求设计说明书可以分好几个用例编写)、编写用例的日期、编写人员、编写日期、前置条件、准备数据等等

格式没有固定的要求,可以根据自己测试用例设计的思路,对测试用例的格式作相应的改变

下面以一个登陆窗口为例,说说我设计登陆界面的思路和方法

我把这个测试用例分为三层结构,表单测试、逻辑判断、业务流程

层,表单测试为层(最基础的)

这部分的测试用例是对登陆窗口这个界面的输入框、按钮功能、界面等最基本功能的测试

一般来说登陆用户名和登陆用户密码是输入框的形式体现,那么,我们需要的是针对这两个输入框进行功能的测试

这时,我们只要考虑这个输入框的功能,而不需要考虑业务方面的内容

这样,我们考虑就是这个输入框的长度限制是多少?能否输入特殊字符?能否输入全角字符?当然,登陆窗口还有其他按钮,例如登陆按钮、退出按钮、界面设计等,这一层的测试用例只对他们最简单的功能的测试

我觉得这一层的测试用例对新开发项目很重要,也必须执行,因为这些是最基本的功能保证,当项目进入维护阶段后,如果没有修改就不需要执行这部分的测试了或者说把这层的用例优先级置为,时间不充足的情况就不用去执行

第二层,逻辑判断层

根据需求的设计,各功能之间的简单逻辑联系

以登陆窗口为例,账号登录,账号和密码必须对应才能登录,否则登录失败

根据这一点,我们就可以从这个要求设计这一层测试用例

例如,账号和密码不一致时;账号为空时;密码为空时;账号密码对应时等等情况

输入这些情况时,程序是作怎么样的逻辑控制的?控制是否正确?是否有相应的提示信息?我觉得,这一层的用例时最常规的一层,平时使用这个软件用经常碰到的一些情况,在常规测试或修改这部分的功能之后,这一部分的测试用例也必须执行

第三层,业务流程层

这部分不关心软件的本身的基本功能,而是关心这个软件的业务有没有实现,不同的需求就有不同的业务需求

以登陆窗口为例,就可能有不同的需求,可能用户要求停用的账号能够登录系统(可能要求登录后不允许进行其他作),也可能用户直接要求停用的用户账号不准登录系统

根据不同的业务需求,就有不同的业务流程

这样这层的测试用例,我们就只要考虑业务需求,仍然以登录窗口为例,我们就只要考虑删除的用户能否登录?停用的用户能否登录?超级用户是如何登录的?普通用户是何种方式登录的?简单的说,这层的用例只描述业务流程,不关心具体这个业务是怎么实现的,执行这部分用例时,不要考虑哪个输入框控制了多少长度,能否输入空格等其他功能,因为这部分的测试需要基于上面两层的测试用例都已经测试通过了,所以在项目维护阶段或者说时间很紧迫的阶段,我们只需要执行这部分的用例,保证业务能够通畅的完成

其实个人觉得在执行这部分用例时,对包含了对基本功能的测试,一些明显的问题应该能被发现,虽然严格来说测试覆盖率很低,但是基本能达到要求

这三层的组合起来才是一个完整的测试用例

这是我个人对测试用例设计的一个思路和方法

真正设计这个测试用例的时候,可能会使用到黑盒测试用例的方法,例如等价类划分、边界值分析、错误猜测法(主要是个人经验)、正交分解等方法针对具体情况设计测试用例

分层测试用例的思路主要来自对自动测试实现的考虑

因为我觉得,如果需要实现自动化测试就必须对测试用例进行细分,划分得越细就越有利于自动化的实现

以上三层的划分也并不是很全面,需要在实践中不断完善,例如可以增加对数据库的部分功能的数据校验的分析

总之,测试用例写的细致、全面、步骤清晰,那么无论是用手工测试的方法还是用自动化测试的方法实现,只要能完整的跑完整个测试用例,就达到了测试的目标了

登录界面包含以下信息,在编写测试用例的时候需要考虑哪些情况呢?用户名、密码、、语言切换?

编写测试用例,要看需求。一般登录页面要检查的测试点如下。

1用户名为空

2用户名长度过短(长度小于需求)

3用户名长度过长(长度大于需求)

4用户名长度边界值测试

5用户名字母、数字、汉字、特殊字符的输入。

6密码为空

7密码长度过短(长度小于需求)

8密码长度过长(长度大于需求)

9密码长度边界值测试

10密码 字母、数字、汉字、特殊字符的输入。

11重复密码的(6-11)的测试点

12重复密码长度小于密码长度

13重复密码长度大于密码长度

14重复密码长度等于密码长度,但是密码内容不同

15密码与重复密码长度相同

16输入正确

17输入错误

以上测试点仅供参考。具体按需求文档规定。测试用例根据测试点编写

登录功能,怎么设计测试用例?

具体需求:

有一个登录页面,有一个账号和一个密码输入框, 一个提交按钮。

此题的考察目的:

1、了解需求(测什么都是从了解需求开始);

2、是否有设计 Test Case 的能力

3、是否熟悉各种测试方法;

4、是否有丰富的 Web 测试经验;

5、是否了解 Web 开发;

了解需求:

1、登录界面应该是弹出窗口式的,还是直接在网页里面;

2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);

3、界面美观是否有特殊要求?(即是否要进行 UI 测试);

4、····

用例设计:

测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:

功能测试(Function Test)

1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)

2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)

3、登录成功后能否跳转到正确的页面(低)

4、账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)

5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)

6、记住账号的功能

7、登录失败后,不能记录密码的功能

8、账号和密码前后有空格的处理

9、密码是否加密显示(星号圆点等)

10、牵扯到的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确

12、输入密码的时候,大写键盘开启的时候要有提示信息。

13、什么都不输入,点击提交按钮,看提示信息。(非空检查)

界面测试(UI Test)

1、布局是否合理,2 个 Testbox 和一个按钮是否对齐

2、Testbox 和按钮的长度,高度是否符合要求

3、界面的设计风格是否与 UI 的设计风格统一

4、界面中的文字简洁易懂,没有错别字。

性能测试(Performance Test)

1、打开登录页面,需要几秒

2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过 5 秒

安全性测试(Security Test)

1、登录成功后生成的 Cookie 是否有 HttpOnly(降低脚本盗取风险)

2、账号和密码是否通过加密的方式,发送给 Web

3、账号和密码的验证,应该是用端验证,而不能单单是在客户端用 jaScript 验证

4、账号和密码的输入框,应该屏蔽 SQL 注入攻击

5、账号和密码的输入框,应该禁止输入脚本(防止 XSS 攻击)

6、错误登录的次数限制(防止)

7、考虑是否支持多用户在同一机器上登录;

8、考虑一用户在多台机器上登录

可用性测试(Usability Test)

1、是否可以全用键盘作,是否有快捷键

2、输入账号,密码后按回车,是否可以登录

3、输入框是否可以以 Tab 键切换

兼容性测试(Compatibility Test)

1、主流的浏览器下能否显示正常已经功能正常(IE6~11, FireFox, Chrome, Safari 等 )

2、不同的平台是否能正常工作,比如 Windows, Mac

3、移动设备上是否正常工作,比如 iPhone, Android

4、不同的分辨率

本地化测试 (Localization Test)

1、不同语言环境下,页面的显示是否正确。

软件辅助性测试 (Accessibility Test)

软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能

1、高对比度下能否显示正常(视力不好的人使用)

用等价类划分法为“登陆界面”列出输入域等价类表,并设计出相应的测试用例。

等价类:用户名:个要求可以划分为个字符是字母和非字母两种

第二个要求可以划分为用户名全是字母、数字+字母(因为个要求规定必须 是字母,所以排除全是数字的情况)、字母+其他字符(如汉字、非法字符等)

密码:个要求与用户名第二个要求类似,再加上全是数字的情况

第二个要求输入字符查看密码是否以显示就可以了

第三个要求分为是6位的和不是6位的

测试用例就根据这些写就可以了

软件测试的用决策表法为QQ登录界面设计测试用例(只考虑用户名和口令)

用户名: Y Y Y N N

密码: Y Y N Y N

匹配: Y N

成功登录: X

重新输入用户名: X X

重新输入密码: X X

Y表示正确,N表示错误。X表示动作

测试用例:用户名 密码 结果

123234123 3338838f 正确登录(密码用户句匹配)

123234123 4656566 重输密码

34536473 393939 重输密码

123a eettet344 重输用户名

345 空 重输密码

注:有效QQ号:5-10位数字

有效密码:1-16数字,字符

用户注册界面测试用例

1.填写符合要求的数据注册:用户名字和密码都是长度(边界值分析)

2.填写符合要求的数据注册:用户名字和密码都是最小长度(边界值分析)

3.填写符合要求的数据注册:用户名字和密码都非和最小的数据(边界值分析,取内点)

4.必填项为空注册

5.用户名长度大于要求注册1位(边界值分析)

6.用户名长度小于要求注册1位(边界值分析)

7.密码长度大于要求注册1位(边界值分析,取离点)

8.密码长度小于要求注册1位(边界值分析)

9.用户名是不是符合要求的字符注册(划分几个无效的等价类,如是否有#,空格, 等

10.密码是不是符合要求的字符注册(划分无效等价类)

11.俩次输入密码不一致(可以划分几个无效等价类)

12.重新注册存在的用户

13.改变存在的用户的用户名和密码的大小写,来注册

14.看是否支持tap和enter键等;密码是否可以粘贴;密码是否有加密 号等

具体情况.具体分析。比如密码不用考虑非法输入和英文字母输入。也不用考虑tap键

1.不能输入旧密码,直接改密码

2.输入错误旧密码

3.不输入确认新密码

4.不输入新密码

5.新密码和确认新密码不一致

6.新密码中有空格

7.新密码为空

8.新密码为符合要求的最多字符

9.新密码为符合要求的最少字符

10.新密码为符合要求的非最多最少字符(取中间值)

11.新密码为最少字符-1

12.新密码为最少字符+1

13.新密码为最多字符-1

14.新密码为最多字符+1

15.新密码为非允许字符(如有的密码要求必须是英文和数字组成.那么要试汉字字符等)

16.看是否支持tap和enter键;密码是否可以和粘贴;密码是否以进行加密

17.看密码是否区分大小写,新密码中英文小写,确认密码中英之大写

18.新密码和旧密码一样能否修改成功,另外一些其他想法如下:

A:要测试所有规约中约定可以输入的特殊字符,字母和数字,要求都可以正常输入,显示正常和添加正常

B:关注规约中的各种限制,比如长度,是否支持大小写

C:考虑各种特殊情况,比如添加同名同户,系统是否正确校验给出提示信息

D:数字上的长度之类的,包括出错信息是否合理

E:特殊字符:比如: / ' " 等是否会崩溃

F:注入式BUG.比如密码输入or 1 = 1