登陆 注册

NO.1 软件测试:测试基础

陈双义 2018-05-08 264人围观 ,发现0个评论 软件测试白盒测试自动化测试黑盒测试 百度未收录

软件测试:测试基础.jpg

一、测试基础

1、测试定义
通过人工或自动的手段,对被测对象进行检测的活动。目的在于发现被测对象是否实现用户的需求,或者弄清实际结果与预期结果之间的差异

需要理解什么是软件,包括以下几点:

  • 源代码

  • 用户手册

  • 配置数据

2、测试目的
  • 发现被测对象与用户需求之间的差异 — 俗称找BUG

  • 通过测试活动,发现并解决缺陷,增加人们对被测对象的质量信息;

  • 通过测试活动,获取被测对象的质量信息,为决策提供数据依据;

  • 通过测试活动,预防缺陷,从而降低项目或产品的风险。

3、测试原则
1. 测试证明软件存在缺陷;
2. 不可能执行穷尽测试;
3. 测试应该尽早启动,尽早介入;
4. 测试存在群集现象,在软件测试过程中,某个功能部件已发现的缺陷越多,找到它的更多未发现的缺陷的可能性就越大;
5. 杀虫剂悖论,即对软件进行越多的测试,那么该软件对软件测试人员的测试就越具有免疫力;
6. 不同的测试活动依赖不同的测试背景;
7. 不存在缺陷的谬论。

二、测试对象与测试级别

1、测试对象
1. 软件源代码
2. 与软件源代码匹配的文档
3. 支撑软件源代码运行的配置数据
4. 需求阶段

需求文档 — 测试需求文档是否正确实现用户的需求

5. 设计阶段
  • 概要设计文档

  • 详细设计文档

  • 是否有设计或逻辑上的错误

6. 编码阶段

测试源代码 — 发现编程上的错误

7. 系统测试阶段

验证被测对象是否满足用户需求

2、测试级别
  • 单元测试

针对被测系统最小的组成单元实施测试活动。一般是类或函数,也可能是最小的功能单元。
  • 集成测试

针对组件/单元与组件/单元之间的接口实施的测试活动,验证接口设计是否与设计相符。
分3种集成:
1. 函数间集成
2. 模块间集成
3. 子系统间集成
  • 系统测试

将通过集成测试的软件,部署在真实的用户环境下执行测试。
  • 验收测试

以用户为主的测试,验收组应该由项目组成员、用户代表组成。
1. α测试
在受控环境下执行测试;
由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题及时沟通解决。
2. β测试
在不受控环境下执行测试;
开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改。
3. UAT测试

用户接受度测试,一般商业用户验证系统可用性进行的测试。

三、系统测试类型

1、功能性测试
在指定使用条件下,使用被测对象,验证其是否满足用户显性或隐性需求。
测试关注点:
  • 是否有不正确或遗漏或多余的功能;

  • 满足系统显性或隐性需求;

  • 是否对输入输出做出了正确的响应,输出结果能否正确的显示。

2、性能测试
通过模拟被测对象运行业务压力或使用场景,验证被测对象是否满足预先设定的性能指标。
  • 验证系统是否具有宣称的能力;

  • 了解测试系统典型场景,并具有确定的性能目标;

  • 要求在真实环境下实施。

3、安全性测试
测试被测对象的安全保护机制保护系统不受非法侵入,能够接受正确授权的操作。
4、兼容性测试
验证被测对象在不用的操作系统、硬件信息等环境下的运行情况。

四、测试方法

1、黑盒测试
也称功能测试,不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性或隐性需求。
2、白盒测试
又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
3、灰盒测试
是介于白盒测试与黑盒测试之间的一种测试,既关注被测对象的外部特性,又关注其内部设计。
4、静态测试
不执行被测对象程序,不运行被测对象的测试方法。仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
5、动态测试
执行被测对象,进行的检测活动。通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
6、手工测试
通过测试工程师试用、验证被测对象是否满足用户需求。由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
7、自动化测试
通过自动化测试工具,或脚本语言自动化完成测试过程。

五、软件质量

1、质量定义
百度百科:质量是物体本身的属性,物体的质量与物体的形状、物态及其所处的空间位置无关,质量是物体的一个基本属性。
软件质量:软件产品满足用户或规定显性需求或隐性需求的程度
  • 内部质量

  • 过程质量

  • 外部质量

  • 使用质量

2、质量特征
1. 功能性:软件在指定条件下使用时,满足用户明确和隐含需求的功能的能力。是软件产品的首选质量特性。
  • 适合性:软件为指定的任务和用户目标提供一组合适功能的能力。

  • 准确性:软件提供具有所需精确度的正确或相符的结果或效果的能力。

  • 互操作性:软件与一个或更多的规定系统进行交互的能力。

  • 保密安全性:软件保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问。

  • 功能性依从性:软件遵循与功能性相关的标准、约定或法规以及类似规定的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。

2. 可靠性:软件在指定条件下使用时,维持规定的性能级别的能力。
  • 成熟性:软件为避免由软件中错误而导致失效的能力。

  • 容错性:在软件出现故障或者违反指定接口的情况下,软件维持规定的性能级别的能力。

  • 易恢复性:在失效发生的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力。

  • 可靠性依从性:软件遵循与可靠性相关的标准、约定或法规的能力

3. 易用性:在指定条件下使用时,软件被理解、学习、使用和吸引用户的能力。
  • 易理解性:软件使用户能理解软件是否合适,以及如何能将软件用于特定的任务和使用环境的能力。

  • 易学性:软件使用户能学习其应用的能力。

  • 易操作性:软件使用户能操作和控制它的能力。

  • 吸引性:软件吸引用户的能力。

  • 易用性依从性:软件遵循与易用性相关的标准、约定、风格指南或法规的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等,如企业内部的界面规范。

4. 效率:在规定条件下,相对于所用资源的数量,软件可提供适当性能的能力。
  • 时间特性:在规定条件下,软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力,即完成用户的某个功能需要的响应时间。

  • 资源利用性:在规定条件下,软件执行其功能时,使用合适的资源数量和类别的能力。

  • 效率依从性:软件遵循与效率相关的标准或约定的能力

5. 可移植:软件可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。
  • 易分析性:软件诊断软件中的缺陷、失效原因或识别待修改部分的能力。

  • 易改变性:软件使指定的修改可以被实现的能力。

  • 稳定性:软件避免由于软件修改而造成意外结果的能力。

  • 易测试性:软件使已修改软件能被确认的能力。

  • 可移植依从性:软件遵循与可移植性相关的标准或约定的能力。

6. 可维护:软件从一种环境迁移到另外一种环境的能力。
  • 适应性:软件无须采用有别于为考虑该软件的目的而准备的活动或手段,就可能适应不同指定环境的能力。

  • 易安装性:软件在指定环境中被安装的能力。

  • 共存性:软件在公共环境中同与其分享公共资源的其他独立软件共存的能力。

  • 易替换性:软件在同样环境下,替代另一个相同用途的指定软件产品的能力。

  • 可维护依从性:软件遵循与维护性相关的标准或约定的能力。

本文标题:NO.1 软件测试:测试基础
本文链接:http://www.chenshuangyi.com/post/105.html
作者授权:除特别说明外,本文由 陈双义 原创编译并授权 陈双义博客 刊载发布。
版权声明:本文使用「署名-禁止演绎」创作共享协议,转载或使用请遵守署名协议。协议见页脚-知识共享许可协议。
谢谢打赏
支付宝 支付宝
微信 微信
请发表您的评论
最新留言
站点信息
  • 文章总数:252
  • 页面总数:9
  • 分类总数:10
  • 标签总数:366
  • 评论总数:104
  • 浏览总数:101695
扫描关注官方微信公众号
官方微信公众号
不容错过