软件测试(功能、接口、性能、自动化)详解
一、软件测试功能测试
测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。
黑盒测试常见测试用例编写方法
1、等价类
选取少数有代表性的数据,这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错误;特性:必须设计的用例;涵盖了大部分情况;
2、边界值
所谓边界条件,是指输入和输出等价类中那些恰好处于边界、超过边界、或在边界以下的状态 ;特征:选择一个或多个元素,以便等价类的每一个边界都经过了测试;与仅仅关注输入条件不同,还需要考虑结果空间(输出等价类)设计测试用例;
3、因果图
输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;
分析思路:
a、分析规格说明描述,确定原因和结果,并赋予标识符;
b、分析规格说明语义,找出原因与原因之间,原因与结果之间关系,画出因果图;
c、有些原因与原因之间,原因与结果之间组合不会出现,用记号表明约束或限制条件;
d、因果图转换为判定表;
e、判定表的每一列作为依据,设计测试用例;
4、判定表驱动法
分析和表达多逻辑条件下执行不同操作的情况的工具 ;略过因果图的绘制,直接列出所有组合进行筛选;
5、正交实验法
利用因果图来设计测试用例时, 输入原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到;往往因果关系非常庞大,以至于测试用例数目巨大,为了有效地、合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
6、功能图法
一个程序的功能包括静态和动态说明。动态说明描述输入数据的次序或转移的次序,和业务流程紧密对应。静态说明描述了输入输出条件之间的对应关系。对于面向市场的产品,其逻辑复杂、组合庞大,必须用动态说明来补充功能说明。 功能图设计方法:功能图方法使用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。我们在不同文档中看到的“状态迁移图”、“流程图”、“菜单树”,在一定程度上都是功能图的不同表现,不同测试人员可能对具体方法的使用稍有不同。
7、场景实验法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。
8、错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见问题为主。
9、需求转化
根据需求,执行需求分析,并编写测试用例。
10、设计文档
参照设计文档,可以理解软件系统内部设计流程及处理机制,对比写好的测试用例,可以在对应功能及模块处新增;
11、探索式测试
无限创意的测试点,永无止境的探索测试;我们要在测试的最前沿发挥洞察力、技术及应变措施,找出产品的缺陷;
二、软件测试接口测试
1、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2、为什么要做接口测试?
a) 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
b) 接口测试相对容易实现自动化持续集成,且相对 UI 自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
c) 现在很多系统前后端是分离的,从安全层面来说:
1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
3、如何做接口测试
a、根据后端开发提供的接口测试文档进行接口测试验证
如图:
然后根据接口文档输入 url,参数,查看响应是否正确
b、在没有接口文档的情况下,使用抓包工具进行接口数据抓取,抓包工具:fiddler
三、软件测试性能测试
1、性能测试领域分析
根据对项目背景,业务的了解,确定本次性能测试要解决的问题点;是测试系统能否满足实际运行时的需要,还是目前的系统在哪些方面制约系统性能的表现,或者,哪些系统因素导致
系统无法跟上业务发展?确定测试领域,然后具体问题具体分析。
2、用户场景剖析和业务建模
根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理一个业务场景表,当然其中最好对用户操作场景、步骤进行详细的描述,为测试脚本开发提供依据。
3、确定性能目标
前面已经确定了本次性能测试的应用领域,接下来就是针对具体的领域关注点,确定性能目标(指标);
比如:
①登录请求到登录成功的页面响应时间不能超过 2 秒;
②报表审核提交的页面响应时间不能超过 5 秒;
③文件的上传、下载页面响应时间不超过 8 秒;
4、性能测试脚本的编写
性能测试工具:loadrunner、jmeter
这里使用 jmeter,因为 loadrunner 安装包太大不够轻便。
jmeter 性能测试,就是通过接口对服务器进行高并发访问的,所以脚本的编写的就和接口测试的时候差不多,输入 url,参数等,
四、软件测试自动化测试
1、ui 自动化测试
a、web 端 ui 自动化测试、一般是使用 python+selenium,定位页面元素然后通过浏览器驱动,模拟人进行页面操作,实现 web 端 ui 自动化测试
b、移动端 ui 自动化测试、一般是使用 python+appium,通过调用 Android 的 jdk,获取 app 页面元素,模拟人进行 app 操作,实现移动端 ui 自动化测试
2、接口自动化测试
接口自动化测试一般使用的是 python+requests,或者 httpx。这里博主使用的 requests,因为比较简单。简单的例子,如图:
评论