软件测试

祝衍军

目录

  • 1 软件测试概述
    • 1.1 软件测试概述
    • 1.2 软件缺陷(BUG)
    • 1.3 软件测试职业发展
    • 1.4 软件测试分类
    • 1.5 软件测试流程
    • 1.6 课程思政:秘书也疯狂的故事
  • 2 黑盒测试
    • 2.1 黑盒测试概述
    • 2.2 等价类划分法
    • 2.3 边界值分析法
    • 2.4 决策表法
    • 2.5 正交实验设计法
    • 2.6 场景测试法
    • 2.7 错误推测法
    • 2.8 功能需求分析
    • 2.9 测试用例设计
    • 2.10 课程思政:五笔输入法的故事
  • 3 测试执行
    • 3.1 测试计划
    • 3.2 测试执行BUG记录
  • 4 白盒测试
    • 4.1 白盒测试概述
    • 4.2 程序流程图设计
    • 4.3 白盒测试用例设计
    • 4.4 JUnit单元测试
    • 4.5 课程思政:WPS的故事
  • 5 Web应用软件自动化测试
    • 5.1 Python自动化测试基本框架
    • 5.2 登录页面测试脚本设计
    • 5.3 新增文章页面测试脚本设计
    • 5.4 基于Unitest的登录测试用例集脚本设计
    • 5.5 课程思政:大并发案例阿里云的小故事
  • 6 智能终端APP自动化测试
    • 6.1 企业案例
    • 6.2 Android智能终端设备连接
    • 6.3 Android APP应用自动化测试
    • 6.4 Monkey 压力测试
    • 6.5 课程思政:鸿蒙的故事
  • 7 JMeter性能测试
    • 7.1 性能测试需求分析
    • 7.2 文章新增脚本开发
    • 7.3 文章新增脚本完善
    • 7.4 场景设计与运行结果分析
    • 7.5 课程思政:12306网站的技术进步故事
  • 8 Postman接口测试
    • 8.1 Postman
    • 8.2 企业网站管理内容系统接口测试
  • 9 Loadrunner性能测试(1+x考证高级相关知识点)
    • 9.1 录制回放
    • 9.2 思考时间设置
    • 9.3 检查点设置
    • 9.4 参数化设置
    • 9.5 关联设置
    • 9.6 集合点设置
    • 9.7 场景设计与运行分析
  • 10 省技能大赛
    • 10.1 竞赛系统
    • 10.2 相关知识
  • 11 企业案例
    • 11.1 软件测试公司真实案例
功能需求分析

产品分为两种: 一是由客户向公司提出需求,二是公司内部自主研发。不管是哪种产品形式,都要将需求从脑中、嘴中比较虚无缥缈的思路、语言转化为看得见,摸得着的纸面上的存在。产品、开发、测试都要依照纸面上的存在进行,才能保证工作的正确性及全面性,这个存在就是需求说明书。测试通常从以下方面开展需求分析。

1. 模块功能和逻辑规则分析

系统由多个模块组成,模块由多个功能组成,功能由多个字段和按钮组成。在进行需求分析的过程中,需要根据需求说明书中一个字段、一个功能、一个模块的逻辑规则说明,判断出测试过程中可能会发生的情况。判断的有效情况越多,测试覆盖率也就越大,系统测试完毕后可能隐藏的问题也就越少。

2. 模块关联分析

模块之间的关联主要体现在数据的交互,A模块中的数据会在后续的B模块中进行使用,这时我们就要仔细分析测试情况。若A模块的数据进行了修改、删除、状态的变化等操作,B模块会对应产生什么影响,具体影响如下所示。

1)修改。通常修改造成的影响最小,A模块的数据进行了部分字段的修改,B模块中的数据也要进行对应修改。

2)删除。删除可能会对B模块造成一定影响,如A模块是政治面貌管理,B模块为人员信息管理,B模块中存在已创建的人员数据:张三,政治面貌为汉族。此时,若在A模块中将汉族的这一条政治面貌数据删除,通常会有下面几种情况:

提示已有数据使用此政治面貌,不许删除;

允许删除,成功删除,B模块中张三的政治面貌项留存快照,依然显示汉族;

允许删除,成功删除,B模块中张三的政治面貌变为空。

3)状态变化。状态变化在模块关联中隐藏的很深,通常也是测试工程师遗漏的测试点。如资产管理系统中存在资产报废和资产借还两个模块,资产报废可以将正常状态的资产变为已报废状态的资产,不可再次报废。资产借还可以将正常状态的资产变为已借出状态的资产,归还后才可再次借出。这些都是状态变化对自身模块的影响。那么在模块关联中,就要考虑两个模块中间的关联,情况如下:

已报废的资产是否可以借出;

已借出的资产是否可以报废;

已归还的资产是否可以报废。

3. 数据状态分析

单独的字段比较容易判断测试的情况,但是当字段组成了数据,数据就可能会存在状态之分。比如在日常生活中常见的外卖软件,收货地址可以存在多条数据,但并不是所有数据都是有效数据,如果超出配送范围,那么收货地址就会变为不可选取的状态。最常见的数据状态为可用/不可用,当然还有其他种类的数据状态,要根据数据依附的功能实际判断。当数据的状态发生变化时,通常会跟随着一点的规则限制;如报废登记,将正常状态的资产变为已报废状态的资产,那么已报废的资产是否可以再次报废。同理,已借出的资产是否可以再次借出。这些数据状态的变化以及对应的限制,需求说明书中通常都会说明清楚,若未说明,需根据测试工程师的经验进行质疑,反馈给产品经理进行确认。

1. 权限差别分析

权限管理一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,从控制力度来看,可以将权限管理分为功能级权限管理、数据级权限管理两大类。

系统中通常会有角色之分,也就是权限的差别。如张三是总经理,李四是部门经理,两个人的职责不同、权利不同,在同一个系统中所拥有的角色可能会有差别:

张三属于总经理角色,李四属于部门经理角色;

张三可以访问ABCD模块,李四可以访问CDE模块(功能级权限管理);

在两人可以共用访问的CD模块中,张三可以查看全公司的数据,李四只能查看自己部门的数据(数据级权限管理);