测试定义
通过人工或者自动的手段,对被检测对象进行检测的活动,目的在于发现被测对象是否实现用户的需求,或者弄清楚实际结果与预期结构支架的差异
测试目的
- 为了发现被测对象与用户需求间的差异
- 为了发现并解决缺陷,增加人们对被测对象的质量信心
- 通过测试活动,获取被测对象的质量信息,为决策提供数据依据
- 通过测试,预防缺陷,从而降低项目或产品的风险
测试原则
- 测试证明软件存在缺陷
- 不可能执行穷尽测试
- 测试应该尽早启动,尽早介入
- 缺陷存在群集现象
- 杀虫剂悖论
- 不同的测试活动以来不同的测试背景
- 不存在缺陷的谬论
系统测试对象与测试级别
测试对象
- 软件源代码
- 与软件源代码匹配的文档
- 支撑软件元代啊的配置数据
- 需求阶段 —> 需求文档 ----> 测试需求文档是否正确实现了用户的需求
- 系统设计阶段 ----> 概要设计文档;详细设计文档;是否有设计或者逻辑上的错误
- 编码阶段 ----> 测试源代码 ----> 发现编程上的错误
- 系统测试阶段 ----> 被测对象是否满足用户需求
测试级别
为了更加明确
组件单元测试
针对被测系统最小的组成单元实施的测试活动(一般是类或者是函数,也可以是最小的功能单元)
集成测试
主要针对组件、单元、组件之间的接口实施的测试活动,验证接口设计是否与设计相符。
主要分为三种集成测试:函数间集成,模块间集成,子系统间集成
系统测试
将集成测试的软件,部署在真实的用户环境下执行测试。和真实环境类似,
验收测试
以用户为主的测试,验收组应该有项目组成员、用户代表组成。
分为α测试(有用户在开发环境下执行的测试活动,开发者在测试人员(用户)身边,发现问题及时沟通解决),β测试(开发者不在被测人员(用户)身边,发现问题由专人统一收集,再由研发人员进行修改,在不受控环境下执行测试),UAT测试(一般商业用户验证系统可用性进行的测试)
系统测试类型
功能性测试
在指定使用条件下,使用被测对象,验证其是否满足用户显性或者隐性需求
关注点: 是否有不正确或遗漏或多余的功能;是否满足系统显性或隐性需求;是否对输入输出做出了正确的响应,输出结果能否正确显示;
性能测试
通过模拟被测对象运行业务压力或使用场景,验证被测对象是否满足预先设定的性能指标
**关注点:**验证系统是否具有宣称的能力;了解测试系统典型场景,并具有确定的性能目标;要求在真实环境下实施
安全性测试
测试被测对象的安全保护机制系统不受非法侵入,能够接受正确授权的操作
兼容测试
验证被测对象在不同的操作系统、硬件信息等环境下的运行情况
软件测试方法
黑盒测试
不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性或隐性需求
白盒测试
又称结构测试,逻辑驱动测试。与黑盒测试相反,
灰盒测试
既关注被测对象的外部特性,又关注其内部设计
静态测试
不执行被测对象源代码,不运行被测对象的测试方法。
动态测试
运行被测对象,进行检测活动。
手工测试
通过测试工程师试用,验证被测对象是否满足用户需求。
自动化测试
通过自动化测试工具,或脚本语言自动化完成测试过程。
软件质量
软件产品满足用户或规定显性需求或隐性需求的程度
主要点: 内部质量,过程质量,外部质量,使用质量
功能性
定义 软件在指定条件下使用时,满足用户明确和隐性需求的功能的能力
**适合性:**软件为指定的任务和用户目标提供一组合适功能的能力
准确性: 软件提供具有所需精确度的正确或相符的结果或效果的能力
互操作性: 软件与一个或更多的规定系统进行交互的能力
保密安全性:软件保护信息和数据的能力,以及未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对他们的访问。
**功能性依从性:**软件遵循与动能性相关的标准、约定或法规以及类似规定的能力。这些标准要考虑国际标准、国家标准、行业标准
可靠性
定义: 软件在指定条件下使用时,维持规定的性能级别的能力
成熟性: 软件为避免由软件中错误而导致失效的能力
**容错性:**在软件出现故障或者违反指定接口的情况下,软件维持规定的性能级别的能力
**易恢复性:**在失效发生的情况下,软件重建福鼎的性能级别并恢复受直接影响的数据的能力
**可靠性依从性:**软件遵循与可靠性相关的标准、约定或法规的能力
易用性
定义:在指定条件下使用时,软件被理解、学习、使用和吸引用户的能力
**易理解性:**软件使用户能理解软件是否合适,以及如何能将软件用于特定的任务和使用环境的能力
易学性:软件使用户能学习其应用的能力
易操作性:软件使用户能操作和控制它的能力
吸引性 :软件吸引用户的能力
易用性依从性 :软件遵循与易用性相关的标准、约定、风格指南或法规的能力。这些标准要考虑国际标准。。。
效率
定义: 在规定条件下,相对于所用资源的数量,软件可提供适当性能的能力
时间特性:在规定条件下,软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力,即完成用户的某个功能需要的响应时间
资源利用特性: 在规定条件下,软件执行功能时,使用合适的资源数量和类别的能力
效率依从性: 软件遵循与效率相关的标准或约定的能力
可移植性
定义: 软件可被修改的能力,修改可能包括修正,改进或软件对环境、需求和功能规格说明变化的试验性。
易分析性:软件诊断软件中的缺陷、失效原因或识别待修改部分的能力
易改变性:软件是指定的修改可以被实现的能力
稳定性: 软件避免由于软件修改而造成意外结果的能力
易测试性: 软件使已修改软件能被确认的能力
维护性依从性: 软件遵循与维护性相关的标准或约定的能力
可维护性
定义:软件从一种环境迁移到另一种环境的能力
适应性: 软件无须采用有别于为考虑该软件的目的而准备的活动或手段,就可能适应不同指定环境的能力
已安装性:软件在指定环境中被安装的能力
共存性:软件在公共环境中同与其分享公共资源的其他独立软件共存的能力
易替换性:软件在同样环境下,替代另外一个相同用途的指定软件产品的能力
可移植性依从性:软件遵循与可移植性相关的标准或约定的能力