1.黑盒测试分类:
等价划分
边界值分析
状态转换测试
因果图法
语法测试:有效值域(符合正式语法)、无效值域(不符合正式语法)
2、白盒测试分类:
静态分析法:类型和单元分析、引用分析、表达式分析、接口分析
逻辑覆盖法:
1)语句测试:语句覆盖(最弱)
2)分支/判定测试:(每个判定取真、假至少各一次)
int greatestCommonDivisor(int a,int b){
if(a>0&&b>0){ //1
int temp =0; //2
while(b){ //3
temp=a%b; //4
a=b; //5
b=temp; //6
}
return a; //7
}
else return -1; //8
}
分支:全部分支(一共8个)
判定(1和3,一共两个判定,产生4个分支)
3)条件测试:
if ( A || (B && C) )
(条件覆盖)条件分支测试:每个布尔操作真假值都被测试用例覆盖(弱)
(条件判定覆盖):每个条件所有可能值至少出现一次,每个判定渠道的可能结果也至少出现一次。
(多条件覆盖)条件分支组合测试: 判定中所有布尔操作数的所有组合都被测试用例覆盖执行(2^n)
修正条件判定测试:当某一个操作数在其他布尔操作数不变的情况下,其取真或者假对判定结果产生的影响(最多2*n个测试用例,最少n+1做到100%修正条件判定覆盖)
4)数据流测试:
全定义覆盖
全谓词使用覆盖
全计算使用覆盖
全使用覆盖
5)基本路径测试:覆盖所有路径
绘制流程图 -> 计算圈复杂度 V(G)->独立路径数为V(G)
绘制流程图要把符合条件表达式转换为多个节点:(a>0&&b>0,转化为2个节点)
V(G)=A(A为流程图中区域数量)
V(G)=E-N+2 (E为边数量,N为节点数量)
V(G)=P+1 (P为判定节点数)
6)线性代码序列与跳转测试
软件测试阶段对应的文档
单元测试——软件详细设计文档
集成测试——软件接口说明文档
系统测试——产品需求规格说明书
验收测试——产品规格说明书
4.系统测试:
测试各项功能的正确性,验证产品的各项功能与需求规格说明书的一致性。
1)性能测试:各项性能是否达标
如:网站测试中,能够并发处理的用户请求数量是否能够达到预定值。
手机测试中,手机在睡眠待机、非睡眠待机。屏幕亮等情况下的电流安培数等指标是否达到预定值。
2)压力测试:测试某些关键性能指标的极限
如:网站能够支持并发处理用户请求数量极限值。
手机最长待机时间,手机连续播放视频时间,拍摄并存储一个大容量视频所化最短时间等极限值。
3)健壮性测试:正常运行时碰到突发异常时间的系统保持与恢复能力
网站服务器突然断电时,备用服务器是否能够正常启动并接受用户请求。
4)兼容性测试:
新旧版本或者产品与软硬件环境的兼容。
5)易用性测试:
界面友好,操作简单
6)安装测试:
在各种软硬件环境组合下是否能够正常进行安装卸载。性能测试:本质对时间的利用和对资源的占用,希望做到高时间效率和低资源要求
1)常用性能指标:事务处理效率,IO性能,数据库性能,内存利用率,CPU利用率等
资源利用率:实际使用资源数量/所申请资源总量
CPU利用率:应用程序使用CPU时间/应用程序总运行时间
2)负载测试:加载负荷获得产品在各种加载情况下(参数进行不同频率,不同时间长度,不同负载量)的性能参数,使测试人员了解产品的性能瓶颈。
获得产品某些关键性能指标的极限。
通过获得产品的极限值,作为参考的产品期望工作条件。再根据期望工作条件值对产品进行性能测试和浸透测试。
6.其他测试:
回归测试:
冒烟测试:
安全性测试:
整数溢出;缓存区溢出;函数错误返回值、异常未处理;系统和应用程序信息泄露;
Cookie欺骗:Cookie指一些网站服务器存于用户计算机上的文本文件,为了辨别用户身份而存储在用户本地终端(数据经过加密)。它与服务器有一定的交互性,存储用户名以及网站登录密码。Cookie保存在客户端浏览器中,对通信协议无影响,攻击可以伪造Cookie信息,绕过网站程序的验证,以任意用户(如管理员)身份登录网站。
例题:表单测试
用户名不能为空
邮箱地址不为空,要有‘@’与‘.’
URL不能为空,‘.’应该存在
所有必填项要有值
提交、取消键功能正常
文本域检查非法字符
单选框只能有一个单选被选
边界值检查
?正则表达式检查
关联项检查(如:国家 省份 城市对应)
检查脚本注入漏洞例题: 网站测试
1)内容测试:语义错误、内容组织错误等
2)界面测试:输入格式、兼容性测试
链接、表单、客户端脚步、动态HTML、Cookie、弹出窗口等
3)导航测试:
4)构件测试:功能测试、数据库能力测试
5)配置测试
6)安全性测试
系统测试:
负载测试:确定网站和服务器环境如何响应不同的负载条件。
压力测试