第14章 软件的其他测试技术
- 格式:pdf
- 大小:370.46 KB
- 文档页数:22
第14章系统开发与运行的基础知识软件开发中的瀑布模型典型地刻画了软件生存周期的阶段划分,与其最相适应的软件开发方法是______。
A.构件化方法 B.结构化方法C.面向对象方法 D.快速原型法结构化开发方法中,数据流图是______阶段产生的成果。
A.需求分析 B.总体设计 C.详细设计 D.程序编码______是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
A.结构化开发方法 B.Jackson系统开发方法C.Booch方法 D.UML(统一建模语言)软件开发模型用于指导软件的开发。
演化模型是在快速开发一个 (4) 的基础上,逐步演化成最终的软件。
螺旋模型综合了 (5) 的优点,并增加了 (6) 。
喷泉模型描述的是面向 (7) 的开发过程,反映了该开发过程的 (8) 特征。
(4)A.模块 B.运行平台 C.原型 D.主程序(5)A.瀑布模型和演化模型 B.瀑布模型和喷泉模型C.演化模型和喷泉模型 D.原型模型和喷泉模型(6)A.质量评价 B.进度控制C.版本控制 D.风险分析(7)A.数据流 B.数据结构 C.对象 D.构件(8)A.迭代和有间隙 B.迭代和无间隙C.无迭代和有间隙 D.无迭代和无间隙关于原型化开发方法的叙述中,不正确的是______。
A.原型化方法适应于需求不明确的软件开发B.在开发过程中,可以废弃不用早期构造的软件原型C.原型化方法可以直接开发出最终产品D.原型化方法利于确认各项系统服务的可用性下面关于网络工程需求分析的论述中,正确的是______。
A.任何网络都不可能是一个能够满足各项功能需求的万能网B.必须采用最先进的网络设备,获得最高的网络性能C.网络需求分析独立于应用系统的需求分析D.网络需求分析时可以先不考虑系统的扩展性面向对象的测试可分四个层次,按照由低到高的顺序,这四个层次是______。
A.类层——模板层——系统层——算法层B.算法层——类层——模板层——系统层C.算法层——模板层——类层——系统层D.类层——系统层——模板层——算法层在某个信息系统中,存在如下的业务陈述:①一个客户提交0个或多个订单;②一个订单由一个且仅由一个客户提交。
软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.2节第五章面向数据流的分析方法第八章软件设计基础第十四章软件测试其他:上课讲义题型一、选择题(单选或多选)1、软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统(●软件是一种逻辑产品,具有无形性;●软件产品的生产主要是研制;●软件不存在磨损和老化问题,但存在退化问题;●软件产品的生产主要是脑力劳动;●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
)2、软件工程三要素()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型和方法3、包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4、软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下5、软件工程的目标()A、易于维护B、低的开发成本C、高性能D、短的开发周期(注意:缩短开发周期是他的目标,但短的开发周期就不是了)6、需求分析的主要目的是(BC)。
A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。
A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。
A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。
A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。
密级:内部阶段:版次: A产品外部型号+产品名称软件部件测试计划产品内部型号-RBCH共14页XXXX公司XXXX年XX月产品外部型号+产品名称软件部件测试计划产品内部型号-RBCH编制审核会签标准化批准修改页本文件版本情况如下:目录1 范围 (1)1.1标识 (1)1.2系统概述 (1)1.3文档概述 (1)1.4与其它计划的关系 (1)2 引用文档 (1)3 部件测试准则 (2)3.1部件测试准则内容 (2)3.1.1 测试内容 (2)3.1.2 测试要求 (2)3.1.3 管理要求 (2)3.1.4 通过准则 (3)3.2部件测试剪裁 (3)4 软件测试环境 (3)4.1(测试现场名称) (3)4.1.1 软件项 (3)4.1.2 硬件和固件项 (4)4.1.3 其它项 (4)4.1.4 其它材料 (4)4.1.5 所有者的特性、需方权利和许可证 (4)4.1.6 安装、测试和控制 (5)4.1.7 测试环境的差异性分析和有效性说明 (5)4.1.8 参与组织 (5)4.1.9 人员及分工 (5)4.1.10 人员培训 (5)4.1.11 要执行的测试 (6)4.2(测试现场名称) (6)5 测试标识 (6)5.1一般信息 (6)5.1.1 测试级 (6)5.1.2 测试类别 (6)5.1.3 一般测试条件 (6)5.1.4 测试进展 (6)5.1.5 数据记录、整理和分析 (6)5.2 计划执行的测试 (6)5.2.1 静态检查 (6)5.2.2 部件测试 (7)6 测试进度 (8)7 测试终止条件 (9)8 需求的可追踪性 (9)8.1正向追溯 (9)8.2逆向追溯 (9)9 附录 (9)1 范围1.1 标识本文档适用的软件:a) 软件标识:;b) 软件名称:;c) 软件简称:;d) 软件版本号:。
注1:本节应描述本文档所适用的系统和软件的完整标识,适用时,包括其标识号、名称、缩略名、版本号。
第14章 软件的其他测试技术软件的其他测试技术不是一个基本过程测试技术,是一个辅助的测试技术,用于软件测试过程中。
本章重点讨论以下内容:● 可用性测试;● 压力测试;● 确认测试;● 容错性测试;● 易用性测试;● 安全性测试;● 需求检查测试;● 可靠性测试;● 风险测试;● 缺陷测试;● Web测试;● 接口测试;● 安装和反安装测试。
14.1 可用性测试可用性测试(UsabilityTesting)是指在设计过程中被用来改善易用性的一系列方法。
我们为用户提供一系列操作场景和任务让他们去完成,这些场景和任务与您的产品或服务密切相关。
通过观察,我们来发现过程中出现了什么问题、用户喜欢或不喜欢哪些功能和操作方式,原因是什么。
针对问题所在,我们会提出改进的建议。
14.1.1 可用性测试的概念可用性测试的概念主要表现为:1. 可用性是产品的一个基本的自然属性,是最终用户使用产品的可用的程度。
2. 可用性测试是依照可用性标准对GUI的系统评估。
3. 可用性是在产品和用户的相互作用中体现出来。
4. 可用性测试是用户在和系统(网站,软件应用程序,移动技术或任何用户操作的设备)5. 交互时对用户体验质量的度量。
6. 可用性的基本评价指标是效率、满意和安全(容错,无错)。
14.1.2 可用性测试的方法可用性测试的方法主要表现为:1. 对同一测试内容在同时采用多指标的测试;2. 对同一测试内容在不同时间采用采用多指标的测试。
14.1.3 可用性测试的目的可用性测试的目的主要表现为:1. 可用性测试的目的是确定用户界面设计在两个层面上的问题;2. 概念的层面-和导航,用户定位和UI一致性相关地关键问题;3. 详细设计的层面-遵循GUI标准和指南,使用的术语,特定的问题。
这些问题一旦被收集,将按照严重程度给它们划分优先级别。
另外,对于每个主要的问题,提议做一个重设计的建议。
14.2 压力测试所谓压力测试(stress testing)是指对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
压力测试主要表现为:压力测试的定义、压力测试的目标。
14.2.1 压力测试的定义、特点和核心原则1. 什么是压力测试压力测试(Stress Test)也就是强度测试,压力测试是指模拟巨大的工作负荷来测试应用程序在峰值情况下如何执行操作。
在实际的软硬件环境下,压力测试主要是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户访问时软件的抗压能力。
其目的是找到系统在哪里失效以及如何失效的地方。
感兴趣的是这些对系统的处理时间有什么影响?需要的资源是什么?需要的环境是什么?需要做什么样的配套工作?一般状态下包括以下3点:(1)短时间的极端负载测试;(2)在过量用户下的负载测试;(3)连续执行所有能做的操作 。
2. 压力测试的特点压力测试具有以下特点:(1)压力测试通过增加访问量使应用系统的资源使用保持在一定的水平上,以此检验应用的表现,重点在于有无出错信息产生,系统对应用的响应时间等。
(2)通过压力测试使系统的资源使用达到较高的水平。
一般情况下, CPU的使用率要达到75%以上、内存使用率要达到70%以上。
3. 压力测试和负载测试的区别压力测试是在超常规负荷条件下,长时间连续运行系统,检验应用程序的各种性能表现和反应。
负载测试是指测试应用程序在常规负荷下,确认响应时间和其它的性能和表现。
4. 压力测试的核心原则压力测试的核心原则是:★ 重复:最明显且最容易理解的压力原则就是测试的重复。
★ 并发:并发是同时执行多个操作的行为。
★ 大数据量:给每个操作增加超常规的负载量。
★ 随机。
14.2.2 压力测试的目标压力测试的目标主要是通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。
主要验证系统的可靠性。
在具体操作上表现为:1.检查最终用户的响应时间。
根据系统设计说明书确定的功能和性能要求完成一个业务流程应所需的时间;2. 检查可靠性。
检查系统功能和性能有没有错误?在大数据量状态下系统运行是否会发生故障?3. 检查硬件或软件的可靠性;4. 检查硬件配置是否合理;5.检验系统容量。
在没有显著的性能下降情况下,系统能处理的最大负荷。
14.3 确认测试确认测试(Validation Test)的目的是向用户表明系统能够像预定要求那样工作。
14.3.1 确认测试的定义确认测试又称有效性测试。
确认测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求说明书,功能说明书,性能说明书列出的需求。
确认软件的功能和性能及其他特性是否与用户的要求一致。
14.3.2 确认测试的内容确认测试内容主要包括功能和性能两部分。
(1)功能测试功能测试考察软件对功能需求完成的情况,应该设计测试用例使需求规定的每一个软件功能得到执行和确认。
★ 按照系统给出的功能列表,逐一设计测试案例;★ 对于需要资料合法性和资料边界值检查的功能,增加相应的测试案例;★ 运行测试案例;★ 检查测试结果是否符合业务逻辑;★ 评审功能测试结果。
(2)性能测试性能测试是检验软件是否达到需求规格说明中规定的各类性能指标,并满足一些与性能相关的约束和限制条件。
★ 测试软件在获得定量结果时程序计算的精确性;★ 测试在有速度要求时完成功能的时间;★ 测试软件完成功能时所处理的数据量;★ 测试软件各部分工作的协调性,如高速操作、低速操作的协调性;★ 测试软件/硬件中因素是否限制了产品的性能;★ 测试产品的负载潜力及程序运行时占用的空间。
14.4 容错性测试容错测试(Tolerance test)是一种对抗性的测试过程。
当软件运行出现故障时,如何进行故障的转移与恢复当前系统产生的实时数据。
又如何去转移有用的数据(文件),应用系统出现故障时能否成功地将运行的系统或系统某一关键部分转移到其他设备上继续运行,使备用系统不失时机地“顶替”已发生故障的系统,避免丢失数据(文件),不影响用户的使用。
14.4.1容错性测试的概念容错性测试是检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。
当系统出大错时,能否在指定时间间隔内修正错误并重新启动系统。
当系统出现非关性错误时能否保证系统继续运行。
14.4.2容错性测试的内容容错性测试包括两个方面:★ 输入异常数据或进行异常操作,以检验系统的保护性。
如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
★ 灾难恢复性测试。
通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复。
14.4.3需考虑的特殊事项从容错性测试的概念和内容可以看出,当软件出现故障时如何进行故障的转移与恢复有用的数据是十分重要的。
对于如何进行容错性测试,这是我们关心的事情,所进行容错性测试需要考虑以下的特殊事项。
1.故障发生时数据的转移与数据的恢复故障发生时数据的转移是为了确保在出现故障时能成功的转移有效的数据,防止因故障的发生导致意外的破坏各种硬件、软件和网络设备。
数据的恢复是为了能够继续运行系统,同时,一旦系统发生故障,备用系统将不失时机地“顶替”已发生故障的系统。
2.容错性测试目前主要做的事情容错性测试目前主要做的事情表现为:★ 服务器断电;★ 网络设备断电;★ 数据库系统发生故障;★ 应用系统文件发生故障;★ 系统软件发生故障。
13.5易用性测试易用性(Useability)是交互的适应性、功能性和有效性的集中体现。
人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。
在 2003 年颁布的 GB/T16260-2003(ISO 9126-2001) 《 产品质量》质量模型中,提出易用性包含易理解性、易学习性和易操作性;即易用性是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
14.5.1 易用性测试的定义易用性(Useability)是交互的适应性、功能性和有效性的集中体现。
易用性一般分为两个层次,即用户界面的易用性和操作系统的易用性。
易用性测试包括针对应用程序的测试,同时还包括对用户手册系统文档的测试。
通常采用质量外部模型来评价易用性。
14.5.2 易用性测试的内容易用性测试的内容包括:1.用户界面测试用于与软件交互的方式称为用户界面或UI,易用性包括如下方面的测试:(1)符合标准和规范用户界面要素要符合软件现行的标准和规范。
(2)直观用户界面是否洁净、不拥挤;布局是否合理;是否有多余功能。
(3)一致如果软件或者平台有一个标准,就要遵守它。
如果没有,就要注意软件的特性,确保相似的操作以相似的方式进行。
(4)灵活多种视图的选择;状态跳转;状态终止和跳过;数据输入和输出。
(5)舒适软件使用起来应该舒适,不能给用户工作制造障碍和困难。
(6)实用是否实用事优秀用户界面的最后一个要素。
操作系统的易用性2. 操作系统有内置的支持。
如windows系统提供了:粘滞键,筛选键,切换键,声音卫士,声音显示,高对比度,鼠标键,串行键。
14.6 安全性测试安全性测试是软件生命周期中一个重要的环节,安全性测试在单元测试、集成测试、系统测试里一起做,以便在破坏之前预防并识别软件的安全问题。
14.6.1 什么是软件安全软件安全问题是一个非常重要的问题。
在20世纪80年代计算机处于单机运行状态,安全显得不是十分重要,互联网出现以后,软件应用系统基本上都是在局域网络环境下运行的,局域网络容易遭受黑客、病毒的威胁,软件安全就显得非常重要。
对于软件安全一般分为以下两个方面:(1)应用程序的安全性应用程序的安全性,包括程序、数据的安全,应用程序一般指应用系统,访问者必须要有访问的权限和级别才能够进入应用系统,数据一般指数据库,同样访问者必须有访问的权限和级别,才能够访问数据当中的内容。
(2)操作系统的安全性操作系统是计算机系统核心,它肩负着整个系统运行、调度、指挥、控制,它的安全性是非常重要的,要求访问者要有足够的权限和级别才能登陆或远程访问。
14.6.2 安全性测试安全性测试(Security Testing)是指验证应用程序的安全级别和识别潜在安全性缺陷的过程。
应用程序(应用系统)的安全性测试主要是查找软件(系统)自身设计中存在的安全隐患,并检查应用程序(应用系统)对非法侵入的防范能力, 根据国家信心安全的有关规范和标准,对不同级别的应用程序(应用系统)有着不同的要求。
1. 安全性测试安全性测试包括:★ 防止外界人员想方设法截取或破译口令;★ 专门开发软件来破坏系统的保护机制;★ 故意导致系统失败;★ 试图通过浏览保密数据获得所需信息等。
2. 安全性测试方法(1) 应用程序(应用系统)级别的安全性测试方法★ 对数据或业务功能的访问,在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据;★ 操作者只能访问其所属用户类型已被授权访问的那些功能或数据;★ 不同权限的用户类型,创建各用户类型并用各用户类型所特有的事务来核实其权限,最后修改用户类型并为相同的用户重新运行测试。