浅谈测试基础理论
1. 软件测试是什么?
一款软件从无到有的开发会经历不同的人来参与,所以最终软件是会存在问题的;因此为了保证软件功能的可用性和用户有一个良好的体验,我们必须进行测试。
2.为什么做软件测试呢?
1.国内对专业测试的需求量慢慢变大;
2.从专业度,思维定式以及测试力度来说开发工程师与专业测试人员有一定的差异;
3.软件测试基本介绍
1.定义
通过手工或者工具对“被测试对象”进行测试操作,来验证实际结果和预期结果之间是否存在差异。
2.三大作用
(1)发现并修复软件当中存在的缺陷;
(2)记录软件运行中产生的一些数据,从而为决策提供数据支持;
(3)降低同类型产品开发遇到问题的风险;
3.七大原则
(1)测试显示软件中存在的缺陷;
(2)穷尽测试时不可能的
(3)开发中测试尽早介入
(4)缺陷集群性(2/8原则)
(5)杀虫剂悖论;
(6)测试活动依赖测试内容;
(7)没有错误就是好事谬论;
4.测试的对象
在开发中不同的阶段不同的对象:
需求分析阶段 测试各种需求规格说明;
软件架构阶段 测试API接口文档(接口测试);
编码实现阶段 测试源代码(白盒测试,单元测试);
系统功能使用 测试软件功能主体(当前行业做最多的一种测试)
5.测试级别
(1)单元测试(UT unit test)
(2)集成测试(IT system ingertaion test)
(3)系统测试(ST system test)
(4)验收测试
-(1)α测试----》内测
-(2)β测试----》公测
-(3)UAT(user acceptance test)测试 ----》由客户派出业务精通的人员进行测试
-(4)验收测试
系统测试分类
1.功能测试:验证当前软件主体是否可用
2.兼容测试:验证当前软件在不同的环境下是否可用
3.安全测试:验证软件是否只能为授权用户提供服务
4性能测试:相对于当前软件消耗的资源,它的产出能力
常见的系统测试方法
1.安测试对象进行分类:
(1)白盒测试:测试主体软件底层代码和逻辑
(2)黑盒测试:测试软件外在主体功能
(3)灰盒测试:接口测试
2.按照对象是否执行分类
(1)静态测试:测试对象不执行;(例:一般文档)
(2)动态测试:将软件运行在真实环境中进行测试;
3.按测试手段进行分类
(1)手动测试:由测试人员手动的对被测对象进行验证,优点:可以灵活地改变测试操作和环境;
(2)自动测试:第一种是自己写脚本对对象进行测试;第二种是用第三方工具对被测对象经行测试;优点:可以高效率的去执行一些人工无法实现的操作;
软件质量特性
6大特性:
1.功能性:软件需要满足用户显示或者隐式功能;
2.易用性:软件易于学习和上手使用;
3.可靠性:软件必须实现需求当中的具体功能;
4.可移植性:当前软件可以从一个平台移植到另一个平台去使用的能力
5.可维护性:要求软件具有将某个功能修复后继续使用的能力;
6.效率性:类似与软件的性能;
软件测试流程
1.需求分析
2.设计用例
3.评审用例
4.配置环境
5.执行用例
6.回归测试及缺陷跟踪
7.输出测试报告
8.测试结束