软件测试--入门
定义
软件测试就是使用技术手段验证软件是否符合用户需求的工程,并在这个过程中找到与预期结果之间的差异。
目的
发现并解决软件开发过程中产生的bug,来保证软件质量。
软件工程师的职责
1.找bug;
2.运行程序,执行测试用例,进行功能测试;
3.测试计划,测试方案;
4.设计并编写测试用例,用例评审等;
5.编写测试总结,出具测试报告;
测试方向
功能测试
即验证软件功能是否符合用户需求
接口测试
通过工具直接对后端服务进行测试
举个例子:后端服务启动,通过工具模拟请求对接口服务进行测试
接口测试
接口文档解析
接口用例编写
使用工具执行接口测试用例
优势
可以在前端界面未完成的情况下对后端服务进行测试,
可以绕过前端的验证环节
自动化测试
就是把人为测试转化为机器执行的一种过程,通过脚本语言自动测试软件
性能测试
使用测试工具模拟多用户使用软件的情形,找寻服务器bug
测试分类
按测试阶段划分
单元测试
针对源代码进行测试
集成测试
针对模块之间访问地址进行测试
系统测试
对整个系统测试,包括功能、兼容、文档等测试。
验收测试
分内测、公测,使用不同人群来发掘项目缺陷。
按代码可见度划分
黑盒测试
不关注源代码,只针对UI功能进行测试,源代码不可见,UI可见
优势
以用户角度出发,不需要了解代码实现细节,代码修改时不用改测试用例。
缺点
不能保证代码代码路径全覆盖,容易造成漏测。
白盒测试
针对源代码进行测试,像debug,junit测试,代码可见,UI不可见
优点
针对代码,易于调试,容易找出bug
缺点
要求测试成员编程能力高,代码的更改同时伴随测试用例的更改。
灰盒测试
介于白盒与黑盒之间,部分代码可见,UI功能不可见。