《通信软件测试技术基础》由会员分享,可在线阅读,更多相关《通信软件测试技术基础(31页珍藏版)》请在金锄头文库上搜索。
1、通信软件测试技术基础 教学进度安排 总学时:32学时 课堂教学:28学时 实验教学:12学时 成绩评定 平时成绩:10% 期末考试成绩(暂定闭卷)70% 实验成绩:20% 答疑方式: 电话:88803818 邮件:第一章 软件测试概述 软件测试的意义 计算机在关键领域的重要性 软件对计算机系统的影响 软件测试可以一定程度上减少系统故障 本课程的主要内容 软件测试的基本概念 软件测试技术 白箱法 黑箱法 TTCN树表描述语言 LOTOS时序逻辑描述语言第一节 软件故障与软件测试 两个软件故障的例子 Intel奔腾处理器故障 1994年12月30日,美国Lynchburg大学的Thomas R.N
2、icely博士在一台奔腾PC机上做运算时发现 ,(4195835/3145727)*3145727-4195835不等于0 千年问题 20世纪70年代一个叫Dave的程序员,负责本公 司的工资系统。他把4位数日期缩减为2位,例 如1973年为73。因为工资系统极度依赖数据处 理,Dava节省了可观的存储空间。 第一节 软件故障与软件测试 一组术语 缺陷(bug) 缺点(defect) 统称为缺陷 偏差(variance) 错误(error) 异常(anomaly) 统称为错误 老化(age) 问题(problem) 失败 (failure) 矛盾(inconsistency) 统称为失败 事故
3、(incident) 谬误(fault) 第一节 软件故障与软件测试 第一类称为缺陷:它们都是软件开发过程潜在的隐患,这些 缺陷可能在软件投入运行后出现,使得软件的性能和可靠性等 方面与系统的设计要求不符;有时这些问题可能不出现,软件 的性能和可靠性并不会因为它们的存在而受到影响。 第二类称为错误:这类错误与软件运行状态有关,它们是在 软件运行过程中可观测到的软件错误。这些问题出现的原因是 软件缺陷所致。 第三类称为失败:这是软件运行给用户造成的损失的一类软 件故障,它强调软件失败的结果。失败的直接原因是软件系统 存在软件错误。并不是所有的软件错误都会导致软件失败,如 果对软件错误加以适当的控
4、制,软件错误可以导致安全。 什么是软件测试呢? 所谓软件测试是为了评价一个软件系统的 质量和发现错误而从事的一种工作过程。 可分为局部软件的局部运行和全部运行; 从运行的环境来看,可有仿真运行和实际 运行。这就存在一个软件测试中的方式和 方法的问题。而方法又与采用的技术相关 ,技术不同,方法也不同。所以软件测试 技术是测试的关键。1.2软件测试与软件开发过程 生命周期模型: 软件开发过程中的各种活动构成软件开发的生命 周期,而随着这些活动的组织方式和方法不同, 就构成不同的软件开发生命周期模型。 生命周期与测试的关系: 也就是说,虽然软件开发的生命周期模型有所不 同,但软件开发的阶段性始点和终
5、点是相同的, 而且软件测试是不可缺少的一项工作。1.2.1顺序生命周期模需求阶段体系结构设计阶段系统详细设计阶段编码和单元测试阶段软件集成阶段系统集成阶段验收测试阶段图1-1V 生命周期模型需求阶段体系结构设计阶段系统详细设计阶段编码和单元测试阶段软件集成阶段系统集成阶段验收测试阶段图1-2 瀑布生命周期模型1.2.2 渐进式开发生命周期模型状态1 开发阶段状态2 开发阶段结束中期提交1中期提交2最终提交图 1.3 渐进式开发生命周期1.2.3 迭代生命周期模型需求分析设计评价实现和测试开始完成1-4 迭代生命周期模型1.3 软件测试方法与测试内容 软件测试的种类: 从是否需要执行被测软件的角
6、度,可分为静态测 试和动态测试。 从测试是否针对系统的内部结构和具体实现算法 的角度,可分为白盒测试和黑盒测试; 从测试范围角度,可分为单元测试、系统测试、 集成测试等等; 从测试目标角度,可分为性能测试、功能测试、 可靠性测试等等。 从测试采用的工具角度,可分自动测试,手工测 试等。1.3.1 黑盒测试 黑盒测试也称功能测试或数据驱动测试 ,它是在已知产品所应具有的功能的情 况下,通过测试来检测每个功能是否都 能正常使用。 1.3.2 白盒测试 白盒测试也称结构测试或逻辑驱动测试 ,它是在知道它产品内部工作过程的前 提下,可通过测试来检测产品内部动作 是否按照规格说明书的规定正常进行。 1.
7、3.3 ALAC测试 ALAC测试是一种基于客户使用产品的 知识开发出来的测试方法。ALAC测试 是基于复杂的软件产品有许多错误的原 则。最大的受益者是用户,缺陷查找和 改正将针对哪些客户最容易遇到的错误 。 1.3.4 单元测试 单元测试的对象是软件设计的最小单位 模块。单元测试的依据是详细设计 描述,单元测试应对模块内所有重要的 控制路径设计测试用例,以便发现模块 内部的错误。单元测试多采用白盒测试 技术,系统内多个模块可以并行地进行 测试。 1.3.5 综合测试 综合测试是组装软件的系统测试技术, 按设计要求把通过单元测试的各个模块 组装在一起之后,进行综合测试以便发 现与接口有关的各种
8、错误。1.3.6确认测试(集成测试) 确认测试应检查软件能否按合同要求进 行工作,即是否满足软件需求说明书中 的确认标准。 确认测试标准 配置复审 确认测试的另一个重要环节是配置复审。 复审的目的在于保证软件配置齐全、分类 有序,并且包括软件维护所必须的细节。 1.3.6 、测试 测试是指软件开发公司组织内部人员模拟 各类用户对即将面市软件产品(称为版本 )进行测试,试图发现错误并修正。 经过测试调整的软件产品称为版本。紧 随其后的测试是指软件开发公司组织各方 面的典型用户在日常工作中实际使用版本 ,并要求用户报告异常情况、提出批评意见 。然后软件开发公司再对版本进行改错和 完善。1.3.7
9、系统测试 恢复测试: 恢复测试主要检查系统的容错能力。当系 统出错时,能否在指定时间间隔内修正错 误并重新启动系统。 安全测试: 安全测试检查系统对非法侵入的防范能力 。 强度测试: 强度测试检查程序对异常情况的抵抗能力 。 性能测试: 对于那些实时和嵌入式系统,软件部分即 使满足功能要求,也未必能够满足性能要 求,虽然从单元测试起,每一测试步骤都 包含性能测试,但只有当系统真正集成之 后,在真实环境中才能全面、可靠地测试 运行性能,系统性能测试是为了完成这一 测试任务。 可用性测试: 对“用户友好性”的测试。显然这是主观的 ,且将取决于目标最终用户或客户。用户 面谈、调查、用户对话的录像和其
10、他一些 技术都可使用。程序员和测试员通常都不 宜作可用性测试员。 可靠性测试: 可靠性测试是为了检验软件系统运行是否 可靠,而进行的一种测试。这类软件系统 的失败往往导致不可预料的结果,如航空 、航天领域中运行的软件,铁路系统中运 行的软件等等。可靠性测试的方法关心的 是,一旦软件系统出现故障,其系统是否 导向安全,所以可靠性测试与安全测试紧 密相关。可靠性测试通常采用黑箱测试法 。1.3.8 面向对象的软件测试 面向对象的软件测试(OOTest)是根据面 向对象的软件开发方法所设计的软件系 统所提出的软件测试方法。 OO Test又分为: 面向对象分析的测试(OOA Test) 面向对象设计
11、的测试(OOD Test) 面向对象的程序测试(OOP Test)1.3.9 协议软件测试 协议软件作为软件的一种特殊形式,已经形 成了一个崭新的学科协议工程学。 研究范围包括: 协议说明(Protocol Specification) 协议证实(Protocol Validation) 协议验证(Protocol Verification) 协议综合(Protocol Synthesis) 协议转换(Protocol Conversion) 协议性能分析(Protocol Performance Analysis) 协议自动实现(Protocol Automatic Implementati
12、on) 协议测试(Protocol Testing)。 协议测试 是一种黑盒测试 ,它按照协 议标 准,通过控制观察被测协议实现 的外部行为对 其进行评价 协议测试 分成三个方面进行研究: 一致性测试(Conformance Testing) 互操作性测试(Interoperability Testing) 性能测试(Performance Testing)。1.4 软件测试原则与特点 软件测试的原则 应当把“尽早和不断地测试”作为开发者的座右 铭。 程序员应该避免检查自己的程序,测试工作应该 由独立的专业的软件测试机构来完成。 设计测试用例时,应该考虑到合法的输入和不合 法的输入,以及各种边
13、界条件,特殊情况下要制 造极端状态和意外状态,比如网络异常中断、电 源断电等情况。 一定要注意测试中的错误集中发生现象,这和程 序员的编程水平和习惯有很大的关系。 对测试错误结果一定要有一个确认的过程。一般 有A测试出来的错误,一定要有一个B来确认,严 重的错误可以召开评审会进行讨论和分析。 制定严格的测试计划,并把测试时间安排得尽量 宽松,不要希望在极短的时间内完成一个高水平 的测试。 重复测试的关联性一定要引起充分的注意,修改 一个错误而引起更多错误出现的现象并不少见。 妥善保存一切测试过程文档,意义是不言而喻的 ,测试的重现性往往要靠测试文档。1.4.2 软件测试特点 完全测试程序是不可能的。图1-5 一个程序结构图路径数:51+52+53+520=1040 软件测试是有风险的行为 测试无法显示潜在的软件缺陷 发现的缺陷越多,说明软件缺陷越多 小结: 软件故障可大体上分为三种类型,软件缺陷是根 源,后两类故障是软件缺陷的直接后果。 软件测试与生命周期的关系 测试伴随整个生命周期 常见的软件测试方法 多种方法,但黑箱与白箱测试是基础 软件测试原则和特点 8个原则,4个特点