白盒测试和黑盒测试的区分:
主要是根据软件测试工作中对软件代码的可见程度进行的划分
黑盒测试:
不关心盒子的内部结构,只关心软件的输入输出结果
黑盒设计方法:
1.等价类
2.边界值
3.错误推断法
4.正交实验法
5.判定表法
6.因果图法
7.场景法
8.状态迁移图
白盒测试:
把盒子打开,研究里面的源代码和程序执行结果
灰盒测试:
既关注输入输出同时关注内容表现,不会像白盒那样详细、完整,只是通过表征性的现象、事件来判断内部的运行状态。
主要用于多模块构成的稍微复杂的软件系统,对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。
功能测试:
检查实际功能是否符合用户的需求,测试的大部分工作也是围绕软件的功能进行。设计软件的目的就是满足用户对其功能的需求,如果偏离了这和目的,测则任何测试工作都是没有意义的。
功能测试细分为:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
随机测试:
其目的是模拟真实用户操作,发现边缘性的错误,缺点是覆盖率不够,重大问题难以发现,只适用于测试的最后阶段。
探索性测试:
是一种测试思维,强调在测试人员的主管能动性,挖掘新思路,新想法的测试。
性能测试:(时间和空间性能)
通过自动化的测试工具模拟多种正常、峰值、以及异常负载条件对系统的各项性能指标进行的测试。
性能主要包括:时间性能和空间性能
1.时间性能:软件的具体相应时间。例如商品交易所需要的时间等。如果仅仅抛开其他,仅分析一次事务的相应时间是没有意义的,需要搭建一个具体且独立的测试环境进行。
2.空间性能:主要是软件运行时所消耗的系统资源、,例如硬件资源、CPU/内存、网络带宽消耗等。
自动化测试:(功能自动化和性能自动化)
1.功能自动化测试:是以人为驱动的测试行为转化为机器执行的过程。通过工具或者框架,编写或者录制脚本,对功能进行测试,并验证测试结果,代替手工和节省成本(人工和时间)。
2.性能自动化测试:通过性能工具来模拟成千上万的虚拟用户向系统发送请求,从而验证系统的处理能力。
接口自动化:
1.模块接口自动化:主要是模块之间的调用与返回,强调的是对一个类方法或函数的调用,并对返回结果的验证
2.WEB接口测试:浏览器与服务器的接口,WEB分为前后端,用户操作在前端,前端通过调用后端的接口来获取需要的数据,通过HTTP协议实现前后端的数据传递。
什么样的项目适合做自动化:
1.任务测试明确,不会频繁变动
2.每日构建后的测试验证
3.比较频繁的回归测试
4.软件系统较为稳定,变动少
5.多平台运行相同的测试用例,大量的重复任务
6.软件维护周期长
7.项目压力不太大
8.被测试软件系统较为规范,具备可测试性
9.具备一些自动化平台
一般满足3点即可
1.软件需求变动不频繁
2.项目周期时间长
3.自动化测试脚本可重复使用