软件测试基础

软件测试基础

软件测试定义

  • 通过人工或自动的手段,对被测对象进行检测的活动,目的在于发现被测对象是否实现用户的需求,或者弄清楚实际结果与预期结果之间的差异。
  • 什么是软件?
    • 源代码
    • 用户手册
    • 配置数据

测试目的

  • 发现被测对象与用户需求间的差异——找bug
  • 通过测试活动发现并解决缺陷,增加人们对被测对象的质量信心
  • 通过测试活动,获取被测对象的质量信息,为决策提供数据依据
  • 通过测试活动,预防缺陷,从而降低项目或产品的风险

测试原则

  • 测试证明软件存在缺陷
  • 不可能进行穷尽测试
  • 测试应尽早启动,尽早介入
  • 缺陷存在群集现象(二八原则)
  • 杀虫剂悖论
  • 不同的测试活动依赖不同的测试背景
  • 不存在缺陷的谬论

测试对象

  • 软件源代码
  • 与软件源代码匹配的文档
  • 支撑软件源代码运行的配置数据
  • 需求阶段
    • 需求文档:测试需求文档是否正确实现了用户的需求
  • 系统设计阶段
    • 概要设计文档
    • 详细设计文档
    • 是否有设计或逻辑上的错误
  • 编码阶段
    • 测试源代码:发现编程上的错误
  • 系统测试阶段:被测对象是否符合用户需求

测试阶段(测试级别)

1.单元测试

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

2.集成测试

针对组件/单元与组件/单元之间的接口实施的测试活动,验证接口设计是否与设计相符。
分为三种:

  • 函数间集成
  • 模块间集成
  • 子系统间集成

3.系统测试

将通过集成测试过的软件,部署在真实的用户环境下执行测试。(黑盒)

4.验收测试

以用户为主的测试,验收组应该由项目组成员、用户代表组成。

  • α测试:由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题及时沟通解决。
  • β测试:开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改。
  • UAT测试:用户接受度测试,一般是商业用户验证验证系统可用性进行的测试。

测试方法

1.黑盒测试

不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性或隐性需求。

2.白盒测试

结构测试、逻辑驱动测试。

3.灰盒测试

即关注被测对象的外部特性,又关注其内部设计。

4.静态测试

不执行被测对象程序,不运行被测对象的测试方法。

5.动态测试

执行被测对象进行的测试活动。

6.手工测试

通过测试工程师试用、验证被测对象是否满足用户需求。

7.自动化测试

通过自动化测试工具,或脚本语言自动化完成测试过程。

软件质量

1.定义

软件产品满足用户或规定显性或隐性需求的程度。

  • 内部质量
  • 过程质量
  • 外部质量
  • 使用质量

2.特性

功能性

定义:软件在指定条件下使用时,满足用户明确和隐含需求的功能的能力。

  • 适合性:软件为指定的任务和用户目标提供一组合适功能的能力。
  • 准确性:软件提供具有所需精确度的正确或相符的结果或效果的能力。
  • 互操作性:软件与一个或更多的规定系统进行交互的能力。
  • 保密安全性:软件保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不能拒绝授权人员或系统对它们进行阅读或修改。
可靠性

定义:软件在指定条件下使用时,维持规定的性能级别的能力。

  • 成熟性:软件为避免有软件中错误而导致失效的能力。
  • 容错性:在软件出现故障或者违反指定接口的情况下,软件维持规定的性能级别的能力。
  • 易恢复性:在失效发生的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力。(断网后,qq一段时间后自动连接)
易用性

定义:在指定条件下使用时,软件被理解、学习、使用和吸引用户的能力。

  • 易理解性:软件使用户能理解软件是否合适,以及如何能将软件用于特定的任务和使用环境的能力。
  • 易学性:软件使用户能学习其应用的能力。
  • 易操作性
  • 吸引性:软件吸引用户的能力
效率

定义:在规定条件下,相对于所用资源的数量,软件可提供适当性能的能力。

  • 时间特性:在规定条件下,软件执行其功能时,提供适当的响应和处理时间以及吞吐量的能力,即完成用户的某个功能所需要的时间。
  • 资源利用性:在规定条件下,软件执行其功能时,使用合适的资源数量和类别的能力。
可移植性

定义:软件可被修改的能力。修改可能包括修正、改进或对环境、需求和功能规格说明变化。

  • 易分析性:软件诊断软件中的缺陷、失效原因或识别待修改部分的能力。
  • 易改变性:软件使指定的修改可以被实现的能力。
  • 稳定性:软件避免由于软件修改而造成意外结果的能力。
  • 易测试性:软件使已修改软件能被确认的能力。
可维护性

定义:软件从一种环境迁移到另外一种环境的能力。

  • 适应性
  • 易安装性
  • 共存性:软件在公共环境下同与其分享公共资源的其他独立软件共存的能力。
  • 易替换性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值