标签:软件测试基础
一、测试的定义:是指通过人工或自动的手段,对被测对象进行检测的活动,其目的在于发现被测对象与客户需求之间的差异,或者说弄清楚实际结果与预期结果之间的差异。
二、软件:源代码、用户手册、配置数据。
三、测试对象:软件源代码、与软件源代码匹配的文档、支撑软件源代码运行的配置数据(系统设计阶段:概要设计文档、详细设计文档、是否有设计或逻辑上的错误;编码阶段:测试源代码(发现编程上的错误);系统测试阶段:被测对象是否满足用户需求)。
四、软件测试的目的(软件测试工程师存在的价值):
1、发现被测对象与用户需求之间的差异--俗称找bug;
2、通过测试活动发现并解决缺陷,增强人们对被测对象的质量信心;
3、通过测试活动获取被测对象的质量信息,为决策提供数据依据;
4、通过测试活动预防缺陷,降低项目或者产品的风险。
五、软件测试的原则:
1、测试证明软件存在缺陷;
2、不可能执行穷尽测试;
3、软件缺陷存在集群现象(二八定律);
4、测试应尽早启动,尽早介入;
5、杀虫剂悖论;
6、不同的测试活动依赖于不同的测试背景;
7、软件不存在缺陷的谬论。
六、软件质量模型(外部和内部质量):
功能性:
1、适合性
2、准确性
3、互操作性
4、安全保密性
5、功能性依从性
可靠性:
1、成熟性
2、容错性
3、易恢复性
4、可靠性依从性
易用性:
1、易理解性
2、易学性
3、易操作性
4、吸引性
5、易用性依从性
效率:
1、时间特性
2、资源利用性
3、效率依从性
维护性:
1、易分析性
2、易改变性
3、稳定性
4、易测试性
5、维护性依从性
可移植性:
1、适应性
2、易安装性
3、易替换性
4、共存性
5、可移植性依从性
七、测试级别(测试阶段):
1、单元测试:针对被测系统最小的组成单元实施的测试活动,一般是类或函数,也可能是最小的功能单元;
2、集成测试:针对组件/单元与组件/单元之间的的接口实施的测试活动,验证接口设计是否与设计相符;
3、系统测试:将通过集成测试的软件,部署在真实的用户环境下执行测试;
4、验收测试:以用户为主的测试,验收组应该由项目组成员、用户代表组成;
α测试:由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题及时沟通解决(在受控环境下执行测试);
β测试:开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改(在不受控环境下执行测试);
UAT测试:用户接受度测试(一般商业用户验证系统可用性进行的测试);
注意:单元测试阶段大约能发现80%左右的缺陷。
八、系统测试类型:
1、功能性测试:在指定使用条件下,使用被测对象,验证其是否满足用户显性或隐形需求;
测试关注点:1)、是否有不正确或遗漏或多余的功能
2)、满足系统显性或隐形需求
3)、是否对输入输出做出了正确的响应,输出结果能否正确显示
2、性能测试:通过模拟被测对象运行业务的压力或使用的场景,验证被测对象是否满足预先设定的性能指标;
测试关注点:1)、验证系统是否具有宣称的能力
2)、了解测试系统典型场景,并具有确定的性能目标
3)、要求在真实环境下实验
3、安全性测试:测试被测对象的安全保护机制保护系统不受非法侵入,能够接受正确授权的操作;
4、兼容性测试:验证被测对象在不同的操作系统、硬件信息等环境下的运行情况;
九、软件测试方法:
1、黑盒测试:不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性或隐形需求; 2、白盒测试(结构测试、逻辑驱动测试):对被测对象内部结构进行测试;
3、灰盒测试:既关注被测对象的外部特征,又关注其内部设计;
4、静态测试:在被测对象没有运行的时候进行的检测活动;
5、动态测试:在被测对象运行的过程中进行的检测活动;
6、手工测试:通过测试工程师试用,验证被测对象是否满足用户需求;
7、自动化测试:通过自动化测试工具或脚本语言自动化完成测试过程;
标签:软件测试基础
原文地址:http://longlanbin.blog.51cto.com/5012686/1832540