`

第二章,软件测试技术(续)

阅读更多

   软件质量缺陷的原因

  • 缺乏或者没有进行沟通
  • 软件复杂度
  • 编程错误
  • 不断变更的需求
  • 时间的压力
  • 开发人员的压力
  • 缺乏文档的代码
  • 软件开发的工具

测试的原则

  1. 尽早并持续的测试
  2. 使用测试用例
  3. 避免自检
  4. 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
  5. 充分注意测试中的群集现象
  6. 应当对每个测试结果做全面检查
  7. 妥善保存测试产物

测试体系

  • 整个测试体系包括:测试过程、测试方法、测试工具、测试管理工具、测试用例库和缺陷库
  • 根据系统特性选择相应的测试方法
  • 未来高效的利用测试方法,要使用有效的工具
  • 通过测试灵活的组合各种测试方法,并有效管理
  • 为了有效的管理和改进测试过程,要采用测试管理工具
  • 测试过程的主要财富是“测试用例库”和缺陷库
  • 通过分析“缺陷库”可以有效的进行过程和改进,并评价一个软件的质量

可测试性

  • 可操作性
  • 可观察性
  • 可控制性
  • 可分解性
  • 简单性
  • 稳定性
  • 易理解性

一个好的测试的属性

  • 一个好的测试发现错误的可能性很高
  • 一个好的测试并不冗余
  • 一个好的测试应该是最佳品种
  • 一个好的测试既不会太简单,也不会太复杂

测试显示了什么

  • 一个成功的测试是指没有找到错误的测试,我们的目标是设计这样的测试,它们能够系统的揭示不同类型的错误,并且耗费最少时间与最小工作量
  • 显示了错误、与需求不一致、性能问题和质量的迹象

注意:测试无法说明错误不存在,它只能表示软件错误已经出现

 

谁来测试软件

开发人员:理解并构建系统,但是迫于交付计划的压力,只是进行少量的测试,开发人员一般负责进行单元和组件的测试

独立的测试人员:必须学习系统,但是被质量所驱动尽力的找到系统的缺陷,测试人员负责计划、设计、实施和评估测试,并对测试过程和测试资产进行管理

 

注意:我们每个人都不可能彻底的测试

 

测试用例的设计

“错误 潜伏在角落里,聚集在边界上”

目标:发现错误

标准:以一种完全的方式

约束:以最小的工作量和时间花费


软件测试的方法

(黑盒测试、白盒测试)

黑盒测试:若了解产品德特定功能,则构造测试,以证实各功能完全可执行,同时在各功能中寻找错误

白盒测试:若了解产品的内部构造,则构造测试,以确保“所有的齿轮吻合”,即内部操作依据规约执行,而且所有的内部构造被充分利用

 

白盒测试

它有时被称为玻璃盒测试,是一种测试用例设计方法,它使用程序设计的控制结构导出测试用例。

软件工程师使用它能够产生测试用例:

  1. 保证一个模块中的所有的独立路径至少被使用一次,
  2. 对所有的逻辑均需测试true和false
  3. 在上下边界及可操作范围内运行所有循环
  4. 检查内部数据结构以确保其有效性

白盒测试主要关注程序结构,通过分析程序中的关键结构设计测试用例

白盒测试的主要方法:语句覆盖方法、分支覆盖方法、逻辑覆盖方法

 

为什么要进行白盒测试呢?

  1. 逻辑错误和不正确假设与一条程序 路径被运行的可能性成反比
  2. 我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行
  3. 印刷上的错误是随机的

白盒测试的方法

 

语句覆盖方法的步骤:

  • 程序结构化:将程序转化为流图
  • 环形复杂度计算:得到的是要覆盖所有语句,独立路径数量的上限N
  • 构造独立路径:构造N条独立路径
  • 确认分支点:针对每条独立路径,确认独立路径上的所有分支点
  • 构造执行条件:根据一条独立路径上的所有分支点集合确认路径执行条件集合
  • 编制用例:对这些路径和路径执行条件集合进行分析,编制用例

 

 

 

分享到:
评论

相关推荐

    软件测试技术--中国软件评测中心

    测试基础(续) 第一章 软件测试的发展 第二章 软件测试的定义 第三章 软件测试的模型 第四章 质量保证与测试 第五章 测试方法 第六章 测试策略 第七章 测试实施

    JINI核心技术

    第二部分 Jini 的开发 第5章 Jini起步 65 5.1 运行Jini服务 65 5.2 按部署情况进行开发 66 5.2.1 运行多个HTTP服务器 67 5.2.2 警惕代码基问题 67 5.2.3 设置安全管理器 68 5.2.4 注意安全策略 68 5.2.5 注意...

    JINI 核心技术

    第二部分 Jini 的开发 第5章 Jini起步 65 5.1 运行Jini服务 65 5.2 按部署情况进行开发 66 5.2.1 运行多个HTTP服务器 67 5.2.2 警惕代码基问题 67 5.2.3 设置安全管理器 68 5.2.4 注意安全策略 68 5.2.5 注意...

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    Java面试宝典和大学生面试宝典

    一个求职者就碰到两家公司问了同样的问题,第一次答 不出,回去没查,第二次又被问到,当然这是很郁闷的事情。  3.2 电话面试 电话面试主要是对简历上一些模糊信息的确认、之前经历的验证、 针对应聘职位简单技术...

    iBATIS实战

    第二部分 iBATIS基础知识 第3章 安装和配置iBATIS 44 3.1 获得一份iBATIS发布 45 3.1.1 二进制发布 45 3.1.2 从源代码构建 45 3.2 发布中包含的内容 47 3.3 依赖性 48 3.3.1 针对延迟加载的字节码增强 48 3.3.2 ...

    C#微软培训资料

    第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 ...

    vb 专门人才管理系统 论文 完整版

    第二章 开发工具的选择 现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有: Microsoft公司的Visual Basic Microsoft公司的...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_3

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_1

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_2

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_6

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_5

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

Global site tag (gtag.js) - Google Analytics