测试基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试基础相关的知识,希望对你有一定的参考价值。

一、 软件测试基础

1. 测试的定义:

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

  (2)    需要理解什么软件:

    a)      源代码

    b)     用户手册

    c)      配置数据

 

2. 测试的目的:

  (1)    发现被测对象与用户需求之间的差异—俗称bug

  (2)    通过测试活动发现并解决缺陷,增加人们对被测对象质量的信心

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

  (4)    通过测试活动,预防缺陷,从而降低项目或者产品的风险

 

3. 测试的原则:

  (1)    测试证明软件存在缺陷

  (2)    不可执行穷尽测试(即值测试过程中要覆盖所有的测试点、测试场景)

  (3)    测试应该尽早启动,尽早介入

  (4)    缺陷存在集群现象

  (5)    杀虫剂悖论(要随时根据产品的情况,更新测试用例,保证测试用例的有效性)

  (6)    不同的测试活动依赖不同的测试环境

  (7)    不存在缺陷的谬论

 

4. 测试对象:

  (1)    软件源代码

  (2)    与软件源代码匹配的文档

  (3)    支撑软件源代码运行的配置数据

  (4)    需求阶段

    a)      需求文档:测试需求文档是否正确实现了用户的需求

  (5)    系统设计阶段:

    a)      概要设计文档

    b)     详细设计文档

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

  (6)    编码阶段:

    a)      测试源代码:发现编程上的错误

  (7)    系统测试阶段:

    a)      被测对象是否满足用户需求

 

二、 软件测试级别:

1. 单元测试

  (1)    针对被测系统的最小组成单元实施测试活动,一般是类或者函数,也有可能是最小的功能单元

2. 集成测试

  (1)    针对组件/单元与组件/单元之间的接口实施测试活动,验证接口设计是否与设计相符

  (2)    分成3种集成

    a)      函数间集成

    b)     模块间集成

    c)      子系统间集成

3. 系统测试

  (1)    将通过集成测试的软件,部署在真实的用户环境下测试

4. 验收测试

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

  (2)    α测试:

    a)      由用户在开发环境下执行测试活动,开发者在测试人员身边,发现问题及时解决问题

    b)     在受控环境下执行测试

  (3)    beta(β)测试:

    a)      开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改

    b)     在不受控的环境下执行测试

  (4)    UAT测试:用户接受度测试

    a)      一般商业用户验证系统可用性的测试

 

三、 软件测试的类型

1. 功能测试

  (1)    指定使用条件下,使用被测对象,验证其是否满足用户的显性或隐性需求

  (2)    测试关注点:

    a)      是否有不正确或遗漏或多余的功能

    b)     满足系统显性或隐性的需求

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

2. 性能测试:

  (1)    通过模拟被测对象运行业务压力或者使用场景,验证被测对象是否满足预先设定的性能指标

  (2)    验证系统是否具有宣称的能力

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

  (4)    要求在真实环境下实施

3. 安全性测试:

  (1)    测试被测系统的安全保护系统不受非法入侵,能够接受正确授权操作

4. 兼容性测试:

  (1)    验证被测对象在不同的操作系统、硬件信息等环境下的运行情况

 

四、 软件测试的方法

1.黑盒测试:不关注被测对象的内部结构,仅从用户需求角度考虑,是否满足用户的显性或隐性需求

2.白盒测试:结构测试、逻辑驱动测试

3.灰盒测试:即关注被测对象的外部特性,又关注其内部设计

4.静态测试:不执行被测对象程序,不运行被测对象的测试方法

5.动态测试:执行被测对象,运行检测活动

6.手工测试:通过测试工程师试用,验证被测对象是否满足用户需求

7.自动化测试:通过自动化测试工具或脚本语言自动化完成测试过程

 

五、 软件测试质量

1.质量的定义:

  (1)    质量是物体本身的属性,物体的质量与物体的形状、物态及其所处的空间位置无关,质量是物体的一个基本属性

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

  (3)    内部质量

  (4)    过程质量

  (5)    外部质量

  (6)    使用质量

2.质量的特性:

  (1)    功能性

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

    b)     适用性:软件为指定的任务和用户目标提供一组适合的功能的能力

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

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

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

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

  (2)    可靠性

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

    b)     成熟性:软件为避免因软件中错误而导致失效的能力

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

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

    e)      可靠性依从性:软件遵循与可靠性相关的标准、约定和法规的能力。

  (3)    易用性:

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

    b)     易理解性:软件使用户能理解软件是否合适,以及如何能将软件用于特定的任务和使用环境的能力

    c)      易学性:软件使用户能学习其应用的能力

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

    e)      吸引性:软件吸引用户的能力

    f)       易用性依从性:软件遵循与易用性相关的标准、约定、风格指南或法规的能力,这些标准要考虑国际标准

  (4)    效率:

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

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

    c)      资源利用性:在规定的条件下,软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力

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

  (5)   可移植性

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

    b)     适应性:软件无需采用有别于为考虑该软件的目的而准备的活动或手段,就可能适应不同指定环境的能力

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

    d)     共存性:软件在公共环境中同于其分享公共资源的其他独立软件共存的能力

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

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

 

  (6)   可维护性

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

    b)     易分析性:软件诊断软件中的缺陷、失效原因或识别待修改部分的能力

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

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

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

    f)       维护性依从性:软件遵循与移植性相关的标准或约定的能力

以上是关于测试基础的主要内容,如果未能解决你的问题,请参考以下文章

软件测试基础理论体系学习1-软件测试背景和测试基础

性能测试基础---性能测试基础指南

测试基础之06 测试基础理论

软件测试基础基础基础

UE4基础知识总结(四)

软件测试——软件测试基础篇