测试开发

单元测试,最小,

集成测试,避免一次性集成,采用增量集成,自顶向下/自底向上

系统测试/功能测试

验收测试/交付测试,AB测试

回归测试


软件测试基础理论知识,如黑盒测试、白盒测试等;

考编程语言基础,如C/C++、java、python等;

自动化测试工具,如Selenium、Appium、Robotium等;

计算机基础知识,如数据库、Linux、计算机网络等;

测试框架,如JUnit等。


常用的黑盒测试方法有11个:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

黑盒测试的测试方法有:等价类划分、边界值分析法、猜错法、随机数法、因果图。
白盒测试的测试方法有:代码检查法、程序变异、静态结构分析法、静态质量度量法、符号测试法、逻辑覆盖法、域测试、Z路径覆盖和基本路径测试法。


白盒测试需要遵循的原则有:1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。


白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。


自动化测试的意义在于

1、可以对程序的新版本自动执行回归测试

2、可以执行手工测试困难或者不可能实现的测试,如压力测试,并发测试,

3、能够更好的利用资源,节省时间和人力

执行自动化测试之前首先判断这个项目适不适合推广自动化测试,然后对项目做需求分析,指定测试计划,搭建自动化测试框架,设计测试用例,执行测试,评估


测试最规范的过程如下

需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试

来自W模型


搭建测试环境

撰写测试用例

执行测试用例

写测试计划,测试报告

测试,并提交BUG表单

跟踪bug修改情况

执行自动化测试,编写脚本,执行,分析,报告

进行性能测试,压力测试等其他测试,执行,分析,调优,报告


Bug的priority(五个等级)和severity(四个等级),优先级和严重程度


测试计划我觉得还是应该在测试用例之后,之前工作时,需要用测试用例来分配测试工作,从而精确测试安排,每个人的分工和耗时,每个测试环节的时间节点。除非倒排期,先给你deadline,只能硬安排测试计划,这时候的测试计划感觉非常不准


功能测试

界面测试

性能测试

安全性测试

可用性测试

兼容性测试

本地化测试(不同语言


所谓的测试桩,就是你负责测试的模块/方法所调用的,所以你需要模仿他们做一个返回值(假的,但符合设计)。
所谓驱动测试(自底向上集成时使用),就是你负责测试模块/方法是中间的,没有main()入口,怎么编译,怎么启动呢?就需要写一个带main()的方法来调用你的模块/方法,这个就是驱动测试。 

接口测试常见的bug有以下几个:

特殊值处理不当导致程序异常退出或者崩溃

类型边界溢出,导致数据独处和写入不一致

取值边界外未返回正确的错误信息

权限未处理,可以访问其他用户的信息

逻辑校验不完善,可以利用漏洞获取非正当利益

状态处理不当,导致逻辑出现错误

数组类型item个数为0或者item重复时程序异常退出


接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。属于功能测试


自动化测试工具用过selenium和appium

性能测试工具有用过Jmeter


测试的设计都是通用的,首先功能测试看功能有没有实现,然后再对性能、压力、容量、健壮性、安全性、可靠性、恢复性、备份、协议、兼容性、可用性、配置、GUI这些非功能测试去思考。


性能测试常用指标:

从外部看,主要有

1、吞吐量:每秒钟系统能够处理的请求数,任务数

2、响应时间:服务处理一个请求或一个任务的耗时

3、错误率:一批请求中结果出错的请求所占比例

从服务器的角度看,性能测试关注CPU,内存,服务器负载,网络,磁盘IO

对登录功能做性能测试

单用户登陆的响应界面是否符合预期

单用户登陆时后台请求数量是否过多

高并发场景下用户登录的响应界面是否符合预期

高并发场景下服务端的监控指标是否符合预期

高集合点并发场景下是否存在资源死锁和不合理的资源等待

长时间大量用户连续登录和登出,服务器端是否存在内存泄漏

怎么测出可同时处理的最大请求数量

可以采用性能测试工具(WeTest服务器性能),该工具是腾讯wetest团队出品,使用起来很简单方便,但测试功能相当强大,能提供10w+以上的并发量,定位性能拐点,测出服务器模型最大并发


明确系统上线后可能会达到的最大并发用户数,用户期望的平均响应时间以及峰值时的业务吞吐量,将这些信息转化为性能需求指标。


幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。


参数化测试:

  1. @ParameterizedTest 代替 @Test,@ValueSource()输入参数
  2. @MethodSource 创建同名静态方法传入参数,也可以指定方法名
  3. @CsvSource() 中每个字符串代表一行,行内用,分割
  4. @CsvFileSource(resource = {"/.csv"}) 传入csv文件
posted @ 2021-03-07 22:38  一语子  阅读(272)  评论(0)    收藏  举报