软件测试基础知识
1、什么是软件测试,软件测试的目的
软件测试的目的是在受控制的条件下对系统或应用程序进行操作,通过测试去发现软件或程序中的错误或者是BUG,以保证软件的最终质量符合客户的要求。
2、软件测试的分类
1)按照测试方法可以分为:
黑盒测试
白盒测试
灰盒测试
2)按照软件阶段可以分为:
单元测试
集成测试
系统测试
验收测试
回归测试
3)按照程序状态可以分为:
静态测试
动态测试
4)按服务类型可以分为:
B/S(Browser/server):浏览器/服务器模式的测试
C/S(Client/Server):客户端/服务器模式的测试
5)按测试内容可以分为:
功能测试,接口测试,性能测试,大数据测试,安全性测试,兼容性测试等
3、黑盒测试、白盒测试、灰盒测试的区别
黑盒测试:已知产品的功能设计规格,可以通过测试证明每个实现了的功能是否符合要求。黑盒测试是
把测试对象当作一个黑盒子,测试人员完全不考虑内部的逻辑结构,只依据程序的规格说明书,检查
程序的功能是否符合功能说明书。
黑盒测试主要是为了发现以下几类错误:
1)是否有不正确或遗漏的功能
2)在接口上,输入是否能正确的接受?能否输出正确的结果?
3)是否有数据结构错误或外部信息(例如数据文件)访问错误
4)性能上是否能够满足要求
5)是否有初始化或终止性错误
白盒测试:把测试对象看作一个透明的盒子,测试人员利用程序内部的逻辑结构及有关信息,设计或
选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
白盒测试主要是对程序模块进行如下检查:
1)对程序模块的所有独立的执行路径至少测试一遍。
2)对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3)在循环的边界和运行的界限内执行循环体。
4)测试内部数据结构的有效性,等等。
灰盒测试:介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注没有白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法
4、单元测试、集成测试、系统测试
1)单元测试主要测试单元内部的数据结构、逻辑控制、异常处理,属于白盒测试。
2)集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能,属于灰盒测试
3)系统测试主要测试整个系统相对于需求的符合度,属于黑盒测试
5、软件测试用例设计方法
等价类划分法、边界值分析方法、因果图法、正交表分析法、场景分析法、状态图法、错误猜测法
6、软件测试流程
需求分析,需求评审,测试计划制定,测试用例编写、测试用例执行,Bug跟踪管理,进行回归测试,验收测试,编写测试报告等