一、功能分析
1、菜单概览
- 资讯分类
- 添加分类
- 编辑分类
- 删除分类
- 分类列表
- 资讯管理
- 资讯列表
- 新增资讯
- 编辑资讯
- 删除资讯
- 分享资讯
- 审核资讯
2、关联分析
就像商品需要关联商品分类一样,文章也需要关联分类进行管理。其中,分类管理模块是相对独立的,而内容管理模块则是有关联性的,所以先对内容管理进行分析。
(1)资讯列表。列表有“资讯分类”列,显示所有资讯记录关联的分类。
(2)新增资讯。新增资讯页面可从资讯分类列表中选择并关联分类。
(3)编辑资讯。编辑资讯页面可从资讯分类列表中选择并关联新分类。
(4)删除资讯。从数据库层面来看只是删除了资讯表的一条记录,不影响分类,一般删除成功后筛选分类时不返回此记录。
(6)分享资讯。如果只是生成此资讯的静态资源链接则无需考虑,如果是生成分享图片而图片封面显示分类则需考虑,但一般产品设计时不考虑在封面上显示分类。
(7)审核资讯。需要看需求,此次接到的需求是审核成功时需要关联分类
综上所述,资讯列表、新增资讯、编辑资讯、删除资讯、审核资讯这五个功能与资讯分类有关联。接下来分析资讯分类的哪些功能会影响到资讯的增删改查。
(1)添加分类。功能相对独立,不对资讯的增改查产生影响。
(2)编辑分类。编辑分类对已关联此分类的资讯会有影响。
(3)删除分类。删除分类对已关联此分类的资讯会有影响,所以有的内容管理系统就设计成如果此分类已有关联的记录则无法删除。
(4)分类列表。分类列表的查询翻页等操作无法对资讯产生影响。
二、构造场景
由此可见,【编辑分类、删除分类】会对有关联的【资讯列表、新增资讯、编辑资讯、删除资讯、审核资讯】产生影响。现在可以写脚本构造所有可能发生的组合场景。
1
2
3
4
5
6
7
8
9
from itertools import product
# 将所有有影响的可能项放入此列表
data_list = ["编辑分类", "删除分类", "列表关联此分类的资讯", "添加关联此分类的资讯", "编辑关联此分类的资讯", "审核关联此分类的资讯"]
# 遍历并生成所有可能的排列场景
for j in list(product(list1,list1)):
if j[0] != j[1]:
print(j)
输出结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
('编辑分类', '删除分类')
('编辑分类', '列表关联此分类的资讯')
('编辑分类', '添加关联此分类的资讯')
('编辑分类', '编辑关联此分类的资讯')
('编辑分类', '审核关联此分类的资讯')
('删除分类', '编辑分类')
('删除分类', '列表关联此分类的资讯')
('删除分类', '添加关联此分类的资讯')
('删除分类', '编辑关联此分类的资讯')
('删除分类', '审核关联此分类的资讯')
('列表关联此分类的资讯', '编辑分类')
('列表关联此分类的资讯', '删除分类')
('列表关联此分类的资讯', '添加关联此分类的资讯')
('列表关联此分类的资讯', '编辑关联此分类的资讯')
('列表关联此分类的资讯', '审核关联此分类的资讯')
('添加关联此分类的资讯', '编辑分类')
('添加关联此分类的资讯', '删除分类')
('添加关联此分类的资讯', '列表关联此分类的资讯')
('添加关联此分类的资讯', '编辑关联此分类的资讯')
('添加关联此分类的资讯', '审核关联此分类的资讯')
('编辑关联此分类的资讯', '编辑分类')
('编辑关联此分类的资讯', '删除分类')
('编辑关联此分类的资讯', '列表关联此分类的资讯')
('编辑关联此分类的资讯', '添加关联此分类的资讯')
('编辑关联此分类的资讯', '审核关联此分类的资讯')
('审核关联此分类的资讯', '编辑分类')
('审核关联此分类的资讯', '删除分类')
('审核关联此分类的资讯', '列表关联此分类的资讯')
('审核关联此分类的资讯', '添加关联此分类的资讯')
('审核关联此分类的资讯', '编辑关联此分类的资讯')
三、结果分析
对脚本运行结果进行分析、筛选和去重,结合自己的经验并使用多运行顺序执行法进行列举。
(‘编辑分类’, ‘删除分类’)
(‘编辑分类’, ‘列表关联此分类的资讯’)
(‘编辑分类’, ‘添加关联此分类的资讯’)
(‘编辑分类’, ‘编辑关联此分类的资讯’)
(‘编辑分类’, ‘审核关联此分类的资讯’)
(‘删除分类’, ‘编辑分类’)
(‘删除分类’, ‘列表关联此分类的资讯’)
(‘删除分类’, ‘添加关联此分类的资讯’)
(‘删除分类’, ‘编辑关联此分类的资讯’)
(‘删除分类’, ‘审核关联此分类的资讯’)
(‘列表关联此分类的资讯’, ‘编辑分类’)
(‘列表关联此分类的资讯’, ‘删除分类’)
(‘列表关联此分类的资讯’, ‘添加关联此分类的资讯’)
(‘列表关联此分类的资讯’, ‘编辑关联此分类的资讯’)
(‘列表关联此分类的资讯’, ‘审核关联此分类的资讯’)
(‘添加关联此分类的资讯’, ‘编辑分类’)
(‘添加关联此分类的资讯’, ‘删除分类’)
(‘添加关联此分类的资讯’, ‘列表关联此分类的资讯’)
(‘添加关联此分类的资讯’, ‘编辑关联此分类的资讯’)
(‘添加关联此分类的资讯’, ‘审核关联此分类的资讯’)
(‘编辑关联此分类的资讯’, ‘编辑分类’)
(‘编辑关联此分类的资讯’, ‘删除分类’)
(‘编辑关联此分类的资讯’, ‘列表关联此分类的资讯’)
(‘编辑关联此分类的资讯’, ‘添加关联此分类的资讯’)
(‘编辑关联此分类的资讯’, ‘审核关联此分类的资讯’)
(‘审核关联此分类的资讯’, ‘编辑分类’)
(‘审核关联此分类的资讯’, ‘删除分类’)
(‘审核关联此分类的资讯’, ‘列表关联此分类的资讯’)
(‘审核关联此分类的资讯’, ‘添加关联此分类的资讯’)
(‘审核关联此分类的资讯’, ‘编辑关联此分类的资讯’)
四、最终结果
用以上方法可以很容易得出多运行顺序执行的基础组合场景,后续需要在此基础场景上扩展成测试点,最终形成测试用例。
- 多运行顺序执行法
- 添加关联此分类的资讯 > 编辑分类 > 提交表单
- 添加关联此分类的资讯 > 删除分类 > 提交表单
- 编辑分类 > 编辑关联此分类的资讯
- 编辑分类 > 列表关联此分类的资讯
- 编辑分类 > 审核关联此分类的资讯
- 删除分类 > 编辑管理此分类的资讯
- 删除分类 > 列表关联此分类的资讯
- 删除分类 > 审核关联此分类的资讯
- 编辑关联此分类的资讯 > 编辑分类 > 提交表单
- 编辑关联此分类的资讯 > 删除分类 > 提交表单
- 审核关联此分类的资讯 > 编辑分类 > 审核通过
- 审核关联此分类的资讯 > 删除分类 > 审核通过
附加:列表的测试场景
一般的列表页面有条件查询、列表翻页和列表操作(删除、隐藏、置顶和显示等等功能),用以上的方法也可以轻易得出多运行顺序执行的基础组合场景。
- 多运行顺序执行法
- 列表翻页 > 条件查询
- 列表翻页 > 列表操作
- 条件查询 > 列表翻页
- 条件查询 > 列表操作
- 列表操作 > 条件查询
- 列表操作 > 列表翻页
扩展后的基础测试点如下。
- 测试点
- 列表翻页 > 条件查询
- 列表翻页至最后一页后,输入最后一页不存在的关键字进行查询
- 列表翻页 > 列表操作
- 列表翻页至第二页后,全选删除第二页的记录
- 列表翻页至最后一页后,全选删除最后一页的记录
- 列表翻页至最后一页后,选择删除最后一页的第一条记录
- 条件查询 > 列表翻页
- 查询成功后,翻页至第二页
- 查询成功后,翻页至最后一页
- 条件查询 > 列表操作
- 查询成功后,全选删除最后一页的记录
- 查询成功后,选择删除最后一页的第一条记录
- 列表操作 > 条件查询
- 列表成功删除记录后,关键字查询已被删除的记录
- 列表操作 > 列表翻页
- 第二页的记录全部成功删除后,翻至最后一页
- 列表翻页 > 条件查询