按照测试对象划分:
一)界面测试:
1)软件只是一种工具,软件和人的信息交流是通过界面来进行的,界面是软件和用户交流的最直接的一层,界面的设计决定了用户对于我们设计软件的第一映像,界面如同人的面孔,具有最吸引用户的直接优势,设计合理的界面必然可以给用户心仪的感受;
2)界面测试又称之为UI测试,指按照界面的需求(一般是UI设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查:
界面测试包括以下三个方面:
1)验证界面内容展示的完整性,一致性,准确性,友好性,比如说界面对于屏幕大小的一个自适应,换行和内容是否全部清晰的展示,当用户打开这个界面第一感觉队友用户是否有好,操作是否有好,展示是否有好;
2)验证整个页面布局或者是排版是否合理,不同的板块,字体的设计,图片的展示包括颜色大小尺寸高度是否符合需求,布局要合理,各个模块的位置要符合大众的使用习惯,或者有合适的引导;
3)对界面不同控件进行测试,比如说对话框,文本框,滑动条,选项展示按钮是否可以正常使用,颜色大小尺寸高度,确认登陆按钮有效和无效的状态是否设计合理;
4)当前的页面的颜色和步调是否符合当下时事的发展,给用户视觉的友好;
5)文字是否有错别字,文字折叠,病句测试;
cookies/session测试
cookies/session通常用来存储用户信息,Cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
cookies/session测试同理,测试的内容可包括:
1)打开WEB系统后,在浏览器默认存储cookies的目录下看此cookies目录是否存在
2)已知cookies的保存时间,测试时间范围之内和之外的cookies文件是否正常
3)将浏览器下的所有cookies文件全部删除,再次登录web系统,会怎么处理
二)可靠性测试
1)可靠性指的是可用性,一般是表示系统正常的运行的能力或者程度,一般向用户提供软件服务的时间占总时间的百分比表示
2)可靠性=正常运行时间/正常运行时间+非正常运行时间
3)系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务等
三)容错性测试:
容错性测试指的是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性,系统内部对于处理这些突发情况的表现;
容错性测试包含以下方面:
1)输入异常数据或进行异常操作,以检验系统的保护性,如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃;
2)灾难恢复性测试,通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复四)文档测试:
通常是说在需求评审的时候测试人员需要进行需求分析,这就是文档测试
文档测试的关注点:
1)文档的术语
2)文档的正确性
3)文档的易用性,完整性
五)兼容性测试
5.1)浏览器的兼容性,Chrome浏览器,Firefox浏览器,edge浏览器,后面要加上版本以及多少位;
5.2)系统的兼容性:linux,windows,Mac,鸿蒙,安卓,苹果,后面也要加上版本以及多少位;
5.3)终端:PC端还是移动端
5.4)自身版本的兼容性
5.5)其他软件的兼容性:百度APP有直播,小说,贴吧,好看视频里面都有小说的入口,通过矩阵产品来进行引流;
5.6)数据的兼容性,百度APP的账号是否可以正常登录百度网盘的账号
6)易用性测试
软件是否具备简单易上手的特性
易用性:需要具备便捷,简单易上手的属性
假设我是一个从来都没有使用过这个产品的用户,我首次使用是否可以尽快上手,是否符合用户的使用习惯,一个页面登录注册是否摆在了合适的位置,主功能的一些入口;
7)安装和卸载测试:
1)软件不同的安装和卸载方式,PC端下载,手机端
2)应用是否可以在不同的环系统,版本下安装(安装兼容性)
3)安装或者卸载过程中是否可以手动暂停,或者取消
4)安装空间不足的时候系统是否有提示
5)是否可以正常的卸载,以及应用软件的各种卸载方式
6)卸载和安装过程中出现环境问题,软件是否可以正常并且合理的应对,比如死机,断电,断网等
安全测试:
1)针对于软件功能来说,看看软件功能是否崩溃,SQL注入问题,XSS漏洞,黑客传入JS脚本,到直接页面没法使用;
2)垂直越权,下级员工可以看到上级员工的才看到的隐私数据;
3)水平越权,平级成员之间不允许互相访问的私有数据也可以看到了;
4)SQL注入:
比如说咱们平时写的一些项目,涉及SQL的增删改查,比如说有一个搜索界面,需要用户传入一个id,然后后端通过这个id拼接到查询的SQL语句中进行查询
SQL:select * from data where id=${id} 127.0.0.1:8080/Java100?id= 4 or 1=1
结果就会全表数据返回
select * from user where userID=20; select * from user where userID=20 or 1=1;
造成用户信息泄露,太过于信任用户没有对用户输入的参数进行严格的校验
5)伪造Cookie中的SessionID让其登陆成功;
性能测试:
1)资源泄露:
1.1)文件资源泄露导致内存不够从而使系统崩溃
1.2)还有创建对象释放内存
1.3)创建线程来提高程序执行的性能的时候,线程没有结束
2)资源瓶颈:CPU资源,内存资源,网络资源带宽,可以对比一下哪些进程占用的资源更多,哪些进程占用的资源更少,采长补短;
3)用户响时间,事务平均响应时间;
性能测试执行:
1)刷新页面,软件响应时间,页面加载时间和按钮反应时间,用户大量增多
2)同时几千万人同时访问接口,看看页面访问时间,页面是否可正常展现
比如说对于这个登陆注册的接口,设计千万个注册登录的接口,看是否页面可以正确的展现,造成服务器负载压力过大;
2)按照是否查看代码划分:
1)黑盒测试:把代码看作是一个黑匣子,不关心内部结构和内部特性,只是关心功能是否符合产品规格说明书的要求,我们可以构造非常多非常多的一个输入条件,在根据输入条件对应的一个输出来检测是否符合预期,又被称之为数据驱动测试或者是功能测试;
黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用,是否能适当的接收输入数据而输出正确的结果,满足规范需求
黑盒测试用到的测试方法有:等价类,边界值,判定表,正交法,场景法,错误猜测法等
2)白盒测试:又被称之为结果测试或者是逻辑驱动测试,检查程序内部的实现以及程序内部的执行状态是否符合预期,要从代码角度来发现问题;
3)灰盒测试:基于白盒测试和黑盒测试之间,既要关心输入和输出,又要关心程序内部的逻辑结构和内部结构
问题)已经有了灰盒测试,那么为什么还要进行使用白盒测试和黑盒测试呢?
1)灰盒测试没有白盒测试详细,完整
2)灰黑测试还没有黑盒测试产品覆盖范围那么广,因为黑盒测试是覆盖产品功能范围最广的测试,所以说灰盒测试是不能取代黑盒测试和白盒测试的