-
软件测试目的
1)确保软件质量
2)减少质量问题给企业及用户带来隐患
-
测试分类
1)安装测试
2)构建测试
3)白盒测试
4)黑盒测试
5)性能测试
6)迁移测试
……
-
单元测试
1、定义:开发人员针对程序模块(软件设计的最小单位)来进行正确性检验的测试;
2、单元测试是和开发最接近的一种测试;
3、单元测试是粒度最小的软件测试
- 过程化编程:单个程序、函数、过程
- 对象化编程:方法、基类、抽象类、派生类
4、子系统只有通过单元测试之后才能集成到大系统中
白盒测试
定义:指测试人员可直接访问内部数据结果、算法及其代码实现的测试
常见的方法:
- 接口测试
- 代码覆盖率测试
- 缺陷注入测试方法
“单元测试”和“白盒测试”区别
1、测试目的不同
“白盒测试”是测试程序的整体逻辑
“单元测试”是测试程序中一个独立的模块
2、执行人员不同
“白盒测试”一般是由专门的白盒测试人员完成
“单元测试”一般是由程序员自己完成
功能测试(黑盒测试)
1、定义:通过黑盒模式发现代码集成后存在的功能问题的测试(关注的重点是系统的功能;可以自动或手动执行测试用例)
2、与“单元测试”的区别:粒度不同
3、单元测试关注的是最小代码片段
4、功能测试关注的是一个完整的业务功能
性能测试
1、关注重点:验证软件的非功能性需求的测试
2、相应测试项:吞吐率、稳定性、可靠性
3、主要手段:通过自动化的方法模拟真实用户并发访问的场景
4、最终目的:1、验证系统的性能指标或发现其性能瓶颈;2、从根本上保证用户体验和长远利益
手工测试特点
优点:
- 方便灵活
- 首次投入成本低
- 人员素质要求低
缺点:
- 效率低
- 重复开销大
- 难以模拟复杂的使用场景,如:并发或连续事务
自动化测试特点
优点:
- 效率高,提供很强的生产力
- 重复活动开销小
- 基本可以模拟任何复杂的使用场景
- 弱化了软件测试人员个体差异的影响
缺点:
- 首次投入成本高
- 变更成本大
- 人员素质要求高
自动化 vs 手动测试
- 形成良好互补,2/8原则
- 创造性的工作交付人来做,重复性工作交付机器来做
- 大项目适合自动化测试,小项目适合手工测试
针对小规模项目分析:
- 小规模测试基本上手动和自动都可以适用
- 在很小规模的时候,手工在成本上有很大的优势
- 随着回归次数增加,手工成本基本线性增加,自动化则成本趋于稳定
大规模项目分析:
- 软件项目随着规模增大,很容易产生滚雪球效应
- 手工测试很快遇到天花板,无论是成本还是可操作性都会出现障碍,投入成本增幅远高于开发成本增幅
- 自动化将成为主流,基本成本的增长和开发的成本投入幅度相当
note:自动化脚本的开发工作并不是越早越好,而是应该基于稳定的测试环境和测试计划。
参考借鉴原地址:http://www.cnblogs.com/beer/p/4805146.html