软件质量保证与测试第六章系统测试_第1页
软件质量保证与测试第六章系统测试_第2页
软件质量保证与测试第六章系统测试_第3页
软件质量保证与测试第六章系统测试_第4页
软件质量保证与测试第六章系统测试_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 软件测试方法和技术软件测试方法和技术第第6章章 系统测试系统测试第第6 6章章 系统测试系统测试6.0 什么是系统测试什么是系统测试6.1 系统级系统级功能测试功能测试6.2 回归测试回归测试6.3 性能测试性能测试6.4 安全性测试安全性测试6.5 容错性测试容错性测试6.6 兼容性测试兼容性测试6.7 可靠性测试可靠性测试6.8 恢复性测试恢复性测试6.9 疲劳测试疲劳测试6.10 用户界面测试用户界面测试 系统测试系统测试就是将已经集成好的软件系统,作为就是将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、

2、数据和人员等其它系统元素设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。算机系统进行一系列的组装测试和确认测试。 系统测试的系统测试的根本任务根本任务就是要证明被测系统的功就是要证明被测系统的功能和结构的稳定性;还要有一些非功能测试,如能和结构的稳定性;还要有一些非功能测试,如性能测试、压力测试、可靠性测试等等。性能测试、压力测试、可靠性测试等等。 6.0 6.0 什么是系统测试什么是系统测试 系统测试的目的系统测试的目的在于通过与系统的需求定义比在于通过与系统的需求定义比较,

3、检查软件是否存在与系统定义不符合或与之较,检查软件是否存在与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。足其规约所指定的要求。 最终目的最终目的是为了确保软件产品能够被用户或操是为了确保软件产品能够被用户或操作者接受。测试的作者接受。测试的主要目标主要目标不再是找出缺陷,而不再是找出缺陷,而是证明其性能。是证明其性能。 系统测试属于系统测试属于黑盒测试黑盒测试范畴,不再对软件的源范畴,不再对软件的源代码进行分析和测试。代码进行分析和测试。 测试组组长:测试组组长:组织测试;组织测试;测试分析员:测试分析员:负责设

4、计和实现测试脚本和测试用例;负责设计和实现测试脚本和测试用例;测试者:测试者:负责执行测试脚本中记录的测试用例。负责执行测试脚本中记录的测试用例。 同时可以邀请客户代表参与系统测试,可以与同时可以邀请客户代表参与系统测试,可以与客户建立一个良好的平台,并且得到反馈信息。客户建立一个良好的平台,并且得到反馈信息。过程:过程:搭建好系统测试的软、硬件平台搭建好系统测试的软、硬件平台制定软件制定软件测试计划测试计划( (与开发人员多多沟通与开发人员多多沟通) )系统测试系统测试提提交系统测试的大量输出的拷贝文档交系统测试的大量输出的拷贝文档( (包括测试结果包括测试结果记录表格、系统测试日志和全面的

5、系统测试总结记录表格、系统测试日志和全面的系统测试总结报告报告) )。系统测试的组织和分工系统测试的组织和分工系统测试过程要经历以下几个阶段:系统测试过程要经历以下几个阶段:1 1、计划阶段:、计划阶段:制定测试计划制定测试计划 2 2、设计阶段:、设计阶段:对系统进行详细的测试分析,然后设对系统进行详细的测试分析,然后设计一些典型的,满足测试需求的测试用例;同时给计一些典型的,满足测试需求的测试用例;同时给出系统测试的大致过程。出系统测试的大致过程。3 3、实施阶段:、实施阶段:使用当前的软件版本进行测试脚本的使用当前的软件版本进行测试脚本的录制工作,确定软件的基线。录制工作,确定软件的基线

6、。 4 4、执行阶段:、执行阶段:根据系统测试计划和事先设计好的系根据系统测试计划和事先设计好的系统测试用例,以及一定测试规程进行测试脚本的回统测试用例,以及一定测试规程进行测试脚本的回放。放。5 5、评估阶段:、评估阶段:进行评估,以确定系统测试是否通过。进行评估,以确定系统测试是否通过。如何进行系统测试如何进行系统测试 功能测试功能测试 回归测试回归测试 性能测试性能测试 安全性测试安全性测试 容错性容错性测试测试系统测试的类型、方法系统测试的类型、方法 兼容性测试兼容性测试 可靠性测试可靠性测试 恢复性测试恢复性测试 疲劳测试疲劳测试 用户界面测试用户界面测试6.1 6.1 系统级功能测

7、试系统级功能测试 功能测试属于功能测试属于黑盒测试黑盒测试技术范畴,可以在单元测技术范畴,可以在单元测试、集成测试、系统测试中进行。试、集成测试、系统测试中进行。 单元级功能测试的目的单元级功能测试的目的 系统级功能测试的目的系统级功能测试的目的 (P137P137)本章所述均为系统级功能测试。本章所述均为系统级功能测试。 为所有的功能需求(其中包括隐含的功能需求)为所有的功能需求(其中包括隐含的功能需求)加以标识;加以标识; 为所有可能出现的功能异常进行分类分析并加以为所有可能出现的功能异常进行分类分析并加以标识;标识; 对前面表示的功能需求确定优先级。对前面表示的功能需求确定优先级。 对每

8、个功能进行测试分析,分析其是否可测、采对每个功能进行测试分析,分析其是否可测、采用何种测试方法、测试的入口条件、可能的输入、用何种测试方法、测试的入口条件、可能的输入、预期输出等等。预期输出等等。 是否需要开发脚本或借助工具录制脚本。是否需要开发脚本或借助工具录制脚本。 确定要对哪些测试使用自动化测试,对哪些测试确定要对哪些测试使用自动化测试,对哪些测试使用手工测试。使用手工测试。功能测试的步骤功能测试的步骤1.1. 程序安装、启动正常,有相应的提示框、错误提示等程序安装、启动正常,有相应的提示框、错误提示等2.2. 每项功能符合实际要求每项功能符合实际要求3.3. 系统的系统的界面界面清晰、

9、美观清晰、美观4.4. 菜单、按钮菜单、按钮操作操作正常、灵活,能处理一些异常操作正常、灵活,能处理一些异常操作5.5. 能接受正确的数据输入,对异常数据的输入有提示、容能接受正确的数据输入,对异常数据的输入有提示、容错处理等错处理等6.6. 数据数据的输出结果准确,格式清晰,可以保存和读取的输出结果准确,格式清晰,可以保存和读取7.7. 功能逻辑清楚,符合使用者习惯功能逻辑清楚,符合使用者习惯8.8. 系统的各种状态按照业务流程而变化,并保持稳定系统的各种状态按照业务流程而变化,并保持稳定9.9. 支持各种应用的环境支持各种应用的环境10.10.能配合多种硬件周边设备能配合多种硬件周边设备1

10、1.11.软件升级后,能继续支持旧版本的数据软件升级后,能继续支持旧版本的数据12.12.与外部应用系统的与外部应用系统的接口接口有效有效 功能测试的主要内容功能测试的主要内容 等价类划分法等价类划分法 边界值分析法边界值分析法 错误推测法错误推测法 因果图法因果图法 组合分析法组合分析法功能测试的方法功能测试的方法回归测试:回归测试:p 回归测试是指修改了旧代码后,重新进行测试回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其它代码产生以确认修改没有引入新的错误或导致其它代码产生错误。错误。回归测试的目的回归测试的目的 :p 所做的修改达到了预定的目的,如错误得到了所

11、做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境改正,新功能得到了实现,能够适应新的运行环境等;等;p 不影响软件原有功能的正确性。不影响软件原有功能的正确性。6.2 6.2 回归测试回归测试 回归测试回归测试 新增加的代码修改修改修改被测系统被测系统间接影间接影响区域响区域直接影直接影响区域响区域 一旦程序某些区域一旦程序某些区域被修改了,就被修改了,就可能可能影影响其它区域,导致响其它区域,导致受受影响的区域出现新的影响的区域出现新的缺陷(缺陷(回归缺陷回归缺陷)。)。如果这时没有回归测如果这时没有回归测试,产品就带着这样试,产品就带着这样的回归缺陷被发布

12、出的回归缺陷被发布出去了,造成严重后果。去了,造成严重后果。回归测试就是为了发回归测试就是为了发现回归缺陷而进行的现回归缺陷而进行的测试。测试。回归回归测试测试策略及方法策略及方法再测试全部用例再测试全部用例基于风险选择测试基于风险选择测试基于操作剖面选择测试基于操作剖面选择测试再测试修改的部分再测试修改的部分P1501. 通过代码相依分析,识别软件中被修改的部分;通过代码相依分析,识别软件中被修改的部分;2. 从原有测试用例库中,排除不适用的测试用例,从原有测试用例库中,排除不适用的测试用例,建立新的测试用例基线库建立新的测试用例基线库T0;3. 基于风险和操作剖面选择相结合,从新的测试基于

13、风险和操作剖面选择相结合,从新的测试用例基线库中选择测试用例构造有效的套件,用例基线库中选择测试用例构造有效的套件,测试被修改的软件测试被修改的软件4. 若回归测试套件达不到所需的覆盖要求,必须若回归测试套件达不到所需的覆盖要求,必须补充新的测试用例,则生成新的测试用例集补充新的测试用例,则生成新的测试用例集T1;5. 用用T1测试修改后的软件。测试修改后的软件。回归测试的组织和实施回归测试的组织和实施6.3 6.3 性能测试性能测试1 1、软件性能与性能测试、软件性能与性能测试软件性能软件性能覆盖面广泛,对一个系统而言,包括覆盖面广泛,对一个系统而言,包括执行效率、资源占用、稳定性、安全性、

14、兼容执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。性、可扩展性、可靠性等等。性能测试性能测试用来保证系统运行后的性能满足用户用来保证系统运行后的性能满足用户需求。性能测试在软件质量保证中起重要作用。需求。性能测试在软件质量保证中起重要作用。 2 2、不同角度对软件的性能认识、不同角度对软件的性能认识用户角度用户角度系统管理员角度系统管理员角度开发人员角度开发人员角度软件性能的认识用户角度软件性能的认识用户角度 软件对用户操作的响应时间,如用户提交一个软件对用户操作的响应时间,如用户提交一个查询操作、打开一个查询操作、打开一个webweb页面的链接等、业务可用页面的链接等、业

15、务可用度,或者系统的服务水平如何。度,或者系统的服务水平如何。软件性能的认识系统管理员角度软件性能的认识系统管理员角度 并发压力并发压力 服务器端资源使用情况服务器端资源使用情况 是否存在性能瓶颈是否存在性能瓶颈 系统可扩展性如何系统可扩展性如何19软件性能的认识开发人员角度软件性能的认识开发人员角度 架构设计是否合理架构设计是否合理 数据库设计是否存在问题数据库设计是否存在问题 代码是否需要优化,如代码是否需要优化,如SQLSQL语句语句 如何通过调整设计和代码实现,或如何通如何通过调整设计和代码实现,或如何通过调整系统设置提高软件的性能表现过调整系统设置提高软件的性能表现3 3、性能测试常

16、用术语的理解(、性能测试常用术语的理解(P153P153)在线用户在线用户虚拟用户虚拟用户并发用户并发用户用户并发数量用户并发数量思考时间思考时间负载模式负载模式6.3 6.3 性能测试性能测试4 4、软件性能的生命周期、软件性能的生命周期全新系统全新系统开发开发需求需求分析分析概要概要设计设计详细详细设计设计编码编码实现实现上线上线运营维护运营维护性能基点性能基点投资预测投资预测性能实现性能实现性能调整性能调整性能性能验收验收性能性能保持保持6.3 6.3 性能测试性能测试5 5、性能测试的目标、性能测试的目标评价系统当前性能评价系统当前性能 系统刚上线,处于试运行,用户需要确定当前系统是否

17、满系统刚上线,处于试运行,用户需要确定当前系统是否满足验收要求足验收要求 系统已经运行一段时间,如何保证能够一直具有良好的运系统已经运行一段时间,如何保证能够一直具有良好的运行性能行性能寻找瓶颈,优化性能寻找瓶颈,优化性能 用户提出业务操作响应时间长,如何定位问题,调整性能用户提出业务操作响应时间长,如何定位问题,调整性能 系统运行一段时间后,速度变慢,如何寻找瓶颈,进而优系统运行一段时间后,速度变慢,如何寻找瓶颈,进而优化性能化性能预测系统未来性能,可扩展性预测系统未来性能,可扩展性 系统用户数增加时,当前系统是否能满足需求,如果不能,系统用户数增加时,当前系统是否能满足需求,如果不能,需要

18、进行哪些调整?增加应用服务器?提高数据库服务器需要进行哪些调整?增加应用服务器?提高数据库服务器的配置?或是需要对代码进行调整?的配置?或是需要对代码进行调整?6.3 6.3 性能测试性能测试6 6、性能测试的步骤、性能测试的步骤 确定性能测试需求确定性能测试需求 根据测试需求,选择测试工具和开发相应的测试根据测试需求,选择测试工具和开发相应的测试脚本脚本 建立性能测试负载模型,就是确定并发虚拟用户建立性能测试负载模型,就是确定并发虚拟用户的数量、每次请求的数据量、思考时间、加载方的数量、每次请求的数据量、思考时间、加载方式和持续加载的时间等式和持续加载的时间等 执行性能测试执行性能测试 结果

19、分析,并提交性能测试报告结果分析,并提交性能测试报告6.3 6.3 性能测试性能测试7 7、性能测试的要点、性能测试的要点 测试环境应尽量与产品运行环境保持一致,应单测试环境应尽量与产品运行环境保持一致,应单独运行尽量避免与其他软件同时使用。独运行尽量避免与其他软件同时使用。 性能测试一般使用测试工具和测试人员编制测试性能测试一般使用测试工具和测试人员编制测试脚本来完成。脚本来完成。 性能测试的重点在于前期数据的设计与后期数据性能测试的重点在于前期数据的设计与后期数据的分析。的分析。 性能测试的用例主要涉及到整个系统架构的问题,性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,

20、改动一般不大,所以做所以测试用例一旦生成,改动一般不大,所以做性能测试的重复使用率一般比较高。性能测试的重复使用率一般比较高。6.3 6.3 性能测试性能测试8 8、性能测试的方法和技巧、性能测试的方法和技巧 四种负载类型四种负载类型 “flat”flat”测试测试 ramp-upramp-up测试测试 峰谷测试峰谷测试 随机加载随机加载6.3 6.3 性能测试性能测试性能测试的方法和技巧性能测试的方法和技巧(1 1)“Flat”Flat”测试测试: : 一次一次加载某个数量的用户,加载某个数量的用户,然后在预定的时间段内持续运行。然后在预定的时间段内持续运行。(2 2)Ramp-upRamp

21、-up测试测试: : 有规律地逐渐增加用户,每几秒增加一些有规律地逐渐增加用户,每几秒增加一些新用户,交错上升。新用户,交错上升。ramp-upramp-up测试不能产生精确和可重现的测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。其优点是,可以看出随着系统负载的负载在不断地变化。其优点是,可以看出随着系统负载的改变,测量值是如何改变的改变,测量值是如何改变的据此选择要运行的据此选择要运行的flatflat测试测试的范围。的范围。性能测试的方法和技巧性能测试的方法和技巧(3 3)峰谷测试)峰谷测试:

22、某个时间用户数量很大,突然降某个时间用户数量很大,突然降到很低,然后,过一段时间,又突然加到很高,反到很低,然后,过一段时间,又突然加到很高,反复几次。借助这种方式的测试,容易发现资源释放、复几次。借助这种方式的测试,容易发现资源释放、内存泄漏等问题。内存泄漏等问题。性能测试的方法和技巧性能测试的方法和技巧(4 4)随机加载方式)随机加载方式由随机算法自动生成某个数量范围内变化的、动态由随机算法自动生成某个数量范围内变化的、动态的负载。的负载。性能测试的方法和技巧性能测试的方法和技巧9 9、压力测试、压力测试 也称负载测试、强度测试。也称负载测试、强度测试。 压力测试通过模拟实际应用的软硬件环

23、境及压力测试通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,逐渐加载或一次性用户使用过程的系统负荷,逐渐加载或一次性加载,长时间或超大负荷地运行软件,以测试加载,长时间或超大负荷地运行软件,以测试系统的性能、可靠性和稳定性,并试图找出系系统的性能、可靠性和稳定性,并试图找出系统性能的瓶颈和异常的地方。统性能的瓶颈和异常的地方。6.3 6.3 性能测试性能测试压力测试总是迫使系统在异常的资源配置下运行。压力测试总是迫使系统在异常的资源配置下运行。例如例如: :当中断的正常频率为每秒当中断的正常频率为每秒1212次时,运行每秒产生次时,运行每秒产生1010个中断的测试用例;个中断的测试用例;

24、定量地增长数据输入量,检查对数据处理的反应定量地增长数据输入量,检查对数据处理的反应能力;能力;运行需要最大存储空间(或其他资源)的测试用运行需要最大存储空间(或其他资源)的测试用例;例;运行可能导致虚拟机崩溃或对磁盘进行大数据量运行可能导致虚拟机崩溃或对磁盘进行大数据量存取操作的测试用例。存取操作的测试用例。压力测试中加压的方法:压力测试中加压的方法: 增加并发用户数增加并发用户数 增加每秒请求处理的事务数增加每秒请求处理的事务数 增加中断次数增加中断次数6.4 6.4 安全性测试安全性测试安全性测试安全性测试检查系统对非法侵入的防范能力。检查系统对非法侵入的防范能力。安全测试期间,测试人员

25、假扮非法入侵者,采用安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。各种办法试图突破防线。任务:任务: 想方设法截取或破译口令;想方设法截取或破译口令; 专门开发软件来破坏系统的保护机制;专门开发软件来破坏系统的保护机制; 故意导致系统失败,企图趁恢复之机非法进入;故意导致系统失败,企图趁恢复之机非法进入; 试图通过浏览非保密数据,推导所需信息等等。试图通过浏览非保密数据,推导所需信息等等。功能性测试功能性测试 vs.安全性测试安全性测试p功能性测试:功能性测试:软件做它应该做的事,验证正确的输出软件做它应该做的事,验证正确的输出。不正确的输出不正确的输出 / /行为行为 /

26、/ 缺陷缺陷(Bug)(Bug)p安全性测试:安全性测试:软件不做它不应该做的事软件不做它不应该做的事, , 应用输入验证应用输入验证, , 没有不安全的事情发生。没有不安全的事情发生。在测试软件系统中对危险防止和危险处理设在测试软件系统中对危险防止和危险处理设施进行的测试,以验证其是否有效施进行的测试,以验证其是否有效安全性缺陷(漏洞,脆弱性,安全性缺陷(漏洞,脆弱性,VulnerabilityVulnerability)两种级别的安全性:两种级别的安全性: 系统级别的安全性:系统级别的安全性:核实只有具备系统和应核实只有具备系统和应用程序访问权限的操作者才能访问系统和应用程序访问权限的操作

27、者才能访问系统和应用程序。用程序。 应用程序级别的安全性:应用程序级别的安全性:核实操作者只能访核实操作者只能访问其所属用户类型已被授权访问的那些功能问其所属用户类型已被授权访问的那些功能或数据。或数据。例如:例如:用户权限用户权限、数据输入验证数据输入验证、敏感数据加密敏感数据加密、数据存储安全性数据存储安全性、用户口令用户口令、验证系统的日志文件是否得到保护、验证系统的日志文件是否得到保护、两者之间的关系:两者之间的关系:(P168P168)安全性测试的范围安全性测试的范围p安全功能测试安全功能测试 (Security Functional Testing)(Security Functi

28、onal Testing):数据机密性、完整性、可用性、不可否认性、身数据机密性、完整性、可用性、不可否认性、身份认证、授权、访问控制、审计跟踪、委托、隐份认证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理等私保护、安全管理等p安全漏洞测试安全漏洞测试 (Security Vulnerability (Security Vulnerability Testing)Testing):从攻击者的角度:从攻击者的角度, , 以发现软件的安全以发现软件的安全漏洞为目的。安全漏洞是指系统在设计、实现、漏洞为目的。安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷或弱点操作、管理上存在的

29、可被利用的缺陷或弱点6.5 容错性容错性测试测试 容错性测试(容错性测试(Fault-tolrent testFault-tolrent test)是是检查软件在检查软件在异常条件下自身是否具有防护性的措施或者某种灾异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段难性恢复的手段。包括两个方面:包括两个方面:p输入异常数据或进行异常操作,以检验系统的保输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好的话,系统只给出提护性。如果系统的容错性好的话,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。示或内部消化掉,而不会导致系统出错甚至崩溃。p灾难恢复性测试。通过各

30、种手段,让软件强制性灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能尽快恢复。否丢失、系统和数据是否能尽快恢复。容错测试是一种对抗性的测试过程。要测试软件容错测试是一种对抗性的测试过程。要测试软件出现故障时,如何进行故障的转移与恢复有用的出现故障时,如何进行故障的转移与恢复有用的数据。数据。故障转移故障转移(Failover)(Failover)是确保测试对象在出现故障是确保测试对象在出现故障时,能成功地将运行的系统或系统某一关键部分时,能成功地将运行的系统或系统某一关键部分转移到其它设备上继

31、续运行,即备用系统就将不转移到其它设备上继续运行,即备用系统就将不失时机地失时机地“顶替顶替”发生故障的系统,以避免丢失发生故障的系统,以避免丢失任何数据或事务,不影响用户的使用。任何数据或事务,不影响用户的使用。6.5 容错性测试容错性测试 服务器的服务器的FailoverFailover测试的目的:检查系统是否具测试的目的:检查系统是否具备某种灾难性恢复的手段。当系统局部或全部出备某种灾难性恢复的手段。当系统局部或全部出错时错时, , 能否在指定时间内修正错误。能否在指定时间内修正错误。在服务器的在服务器的FailoverFailover测试中测试中, , 将包括多种情况将包括多种情况,

32、, 如:如:p客户机或服务器掉电客户机或服务器掉电p客户机与服务器网络中断客户机与服务器网络中断p服务器相关的程序服务器相关的程序crashcrashp系统中全部或部分系统中全部或部分CORE SERVERCORE SERVER出现掉电出现掉电/ /网网络中断情况络中断情况39Failover测试的方法和技巧测试的方法和技巧将测试系统全部对象描绘将测试系统全部对象描绘出来出来 系统结构图。系统结构图。对图中的所有可能发生的故障点设计对图中的所有可能发生的故障点设计测试用例。测试用例。 如果在系统设计架构图中,存在单点失效的关键对如果在系统设计架构图中,存在单点失效的关键对象,就是设计的重大缺陷

33、。象,就是设计的重大缺陷。示例一示例一: 应用服务器测试应用服务器测试当其中一台应用服务器出现故障,连接此应用服务器的当其中一台应用服务器出现故障,连接此应用服务器的 两个两个webweb服务器将不再获得从负载平衡服务器上请求,这服务器将不再获得从负载平衡服务器上请求,这样,所有的负载都会传递到剩余的两台样,所有的负载都会传递到剩余的两台webweb服务器。服务器。参见:书参见:书P178P178示例二示例二: 数据库并发控制测试数据库并发控制测试6.6 兼容性测试兼容性测试兼容性测试:兼容性测试:验证软件之间是否正确地交互和共验证软件之间是否正确地交互和共享享信息。信息。包括:包括:p 硬硬

34、件兼件兼容容p 软件之间兼容软件之间兼容p 数据之间兼容数据之间兼容兼容方式:兼容方式:p向后向后兼容(向下兼容兼容(向下兼容):可):可以使用软以使用软件的以前件的以前版本版本p向前兼向前兼容(向上兼容容(向上兼容):可):可以使用软以使用软件的未来件的未来版本版本系统之间兼容(数据)系统之间兼容(数据)Word EditorFrom Microsoft Running on Windows 7Word EditorFrom Apple Running on MacOS XSpreadsheetFrom IBM Lotus Running on LinuxFile Import/Export

35、Network Import/ExportFile Load/SaveCut, Copy, PasteBackup系统之间兼容(另一个例子)系统之间兼容(另一个例子)前后兼容前后兼容Data.docWord 2007 running on Windows XPWord 2010 running on Windows 7Forward CompatibilityBackward CompatibilityXXX running on Windows 8Word 2003 running onWindows 2KWord running on Win NTWord 98 running on Wi

36、n98多版本的测试多版本的测试需要对需要对所有可能的软件组合等价分配,验证软件之所有可能的软件组合等价分配,验证软件之间正确交互的最小有效集合间正确交互的最小有效集合。 通常的做法:通常的做法:p将软件分类将软件分类。例如:字处理,电子表格,数据库,。例如:字处理,电子表格,数据库,图形处理,游戏等。从每种类型中选择部分测试图形处理,游戏等。从每种类型中选择部分测试软件。软件。p按软按软件的流行程度选择较流行的件的流行程度选择较流行的软件。软件。p按按年份,选取一定年份内的程序和年份,选取一定年份内的程序和版本。版本。示例示例: 设计测试矩阵表设计测试矩阵表每一个浏览器和版本支持的特性上都有细

37、微的差每一个浏览器和版本支持的特性上都有细微的差别,在不同的操作系统上表现也有所不同。别,在不同的操作系统上表现也有所不同。 PCUnix/MacWinNTWin 2K Win XP Win7 SolarisHP-UX Linux OS XIE6IE8IE9FirefoxSafari6.7 6.7 可靠性测试可靠性测试 软件可靠性软件可靠性是产品在规定的条件下和规定的时是产品在规定的条件下和规定的时间内完成规定功能的间内完成规定功能的能力,它能力,它的概率度量称为的概率度量称为可可靠度。靠度。通常使用以下几个指标来度量系统的可靠性:通常使用以下几个指标来度量系统的可靠性: MTTFMTTF(M

38、ean Time To FailureMean Time To Failure) MTTRMTTR(Mean Time To RepairMean Time To Repair) MTBFMTBF(Mean Time Between FailureMean Time Between Failure)50 MTTFMTTF(Mean Time To FailureMean Time To Failure) 平均失效等待时间,即平均无故障时间平均失效等待时间,即平均无故障时间 系统平均能够正常运行多长时间,才发生一系统平均能够正常运行多长时间,才发生一次故障。次故障。 系统可靠性越高,平均无故障时

39、间越长。系统可靠性越高,平均无故障时间越长。1 1、软件可靠性模型、软件可靠性模型1 1、软件可靠性模型、软件可靠性模型MTTFMTTF的估算:的估算:假设:假设:(1 1)单位长度中的错误总数单位长度中的错误总数 近似为常近似为常数;数;(2 2)错误检出率正比于程序中残留错误数,而错误检出率正比于程序中残留错误数,而MTTFMTTF与程序中残留错误数成反比;与程序中残留错误数成反比;(3 3)错误不可能错误不可能完全检出,但一经检出立即得到改正。完全检出,但一经检出立即得到改正。计算:计算:设设t t:程序的测试时间;:程序的测试时间;E ET T:测试前的错误总数;测试前的错误总数;E

40、Ec c(t)(t):在时间:在时间(0,t)(0,t)期间纠正的错误数;期间纠正的错误数;E Er r(t)(t):在时:在时间间t t时的遗留错误数;时的遗留错误数;I IT T:程序的长度或指令的总数。:程序的长度或指令的总数。则则E Er r(t)= E(t)= ET T-E-Ec c(t)(t)用用I IT T除以上述等式两边,得到错误除以上述等式两边,得到错误的规格化值。的规格化值。1 1、软件可靠性模型、软件可靠性模型53 MTTRMTTR(Mean Time To RepairMean Time To Repair) 即平均恢复时间即平均恢复时间 是从出现故障到恢复完成的这段时

41、间。包括是从出现故障到恢复完成的这段时间。包括确认失效发生所必需的时间,以及维护所需确认失效发生所必需的时间,以及维护所需要的时间。要的时间。 MTTRMTTR越短表示易恢复性越好。越短表示易恢复性越好。1 1、软件可靠性模型、软件可靠性模型 MTBFMTBF(Mean Time Between FailureMean Time Between Failure) 平均失效间隔时间平均失效间隔时间 是指相邻两次故障之间的平均工作时间。是指相邻两次故障之间的平均工作时间。 MTBFMTBF越长表示可靠性越高,正确工作能力越强。越长表示可靠性越高,正确工作能力越强。 可用下面的公式表示:可用下面的公

42、式表示:MTBF = MTTF + MTTRMTBF = MTTF + MTTR说明:因为说明:因为MTTRMTTR通常远小于通常远小于MTTFMTTF,所以,所以MTBFMTBF近近似等于似等于MTTFMTTF,通常由,通常由MTTFMTTF替代。替代。1 1、软件可靠性模型、软件可靠性模型假设:假设: N= N=程序中原来残留的错误数;程序中原来残留的错误数; S=S=新植入程序的错误数;新植入程序的错误数; n=n=测试中发现的原有错误数;测试中发现的原有错误数; s=s=测试中发现的植入错误数;测试中发现的植入错误数; 假设测试中对这两类错误具有同样的发现能力,假设测试中对这两类错误具

43、有同样的发现能力,则有:则有:2 2、错误植入模型、错误植入模型 随机地把程序中一部分原有的错误加上标记,然随机地把程序中一部分原有的错误加上标记,然后根据测试过程中发现的有标记错误和无标记错误后根据测试过程中发现的有标记错误和无标记错误的比例,估算程序中错误的总数。的比例,估算程序中错误的总数。3 3、HymanHyman分别测试法分别测试法在测试过程的早期阶段,由测试员甲和测试员乙分别测试在测试过程的早期阶段,由测试员甲和测试员乙分别测试同一个程序的两个副本,由另一名分析员分析他们的测试结同一个程序的两个副本,由另一名分析员分析他们的测试结果。果。用用表示测试时间,假设:表示测试时间,假设

44、:=0=0时,错误总数为时,错误总数为B B0 0;=1 1时,测试员甲发现的错误数为时,测试员甲发现的错误数为B B1 1;=1 1时,测试员时,测试员乙发现的错误数为乙发现的错误数为B B2 2;=1 1时两个测试员发现的相同错误时两个测试员发现的相同错误数为数为b bc c。如果认为测试员甲发现的错误是有标记的,即程序中有标如果认为测试员甲发现的错误是有标记的,即程序中有标记的错误总数为记的错误总数为B B1 1,则测试员乙发现的,则测试员乙发现的B B2 2个错误中有个错误中有b bc c个是个是有标记的。假定测试员乙发现有标记错误和发现无标记错误有标记的。假定测试员乙发现有标记错误和

45、发现无标记错误的概率相同,则可以估计出测试前程序中的错误总数为:的概率相同,则可以估计出测试前程序中的错误总数为:怎样随机地给一部分错误加标记?怎样随机地给一部分错误加标记?6.8 6.8 恢复性测试恢复性测试目的:目的:恢复性测试主要检查系统的容错能力恢复性测试主要检查系统的容错能力 恢复测试中需要检查以下各项:恢复测试中需要检查以下各项: (1 1)错误探测功能)错误探测功能(2 2)能否切换或启动备用的硬件;)能否切换或启动备用的硬件; (3 3)在故障发生时能否保护正在运行的作业和系)在故障发生时能否保护正在运行的作业和系统状态;统状态; (4 4)在系统恢复后能否从最后记录下来的无错

46、误)在系统恢复后能否从最后记录下来的无错误状态开始继续执行作业,等等。状态开始继续执行作业,等等。 (5 5)掉电测试:)掉电测试:6.9 6.9 疲劳测试疲劳测试目标:目标: 在一段时间内在一段时间内( (经验上一般是连续经验上一般是连续7272小时小时) )保持系保持系统功能的频繁使用,检查系统是否发生功能或者性统功能的频繁使用,检查系统是否发生功能或者性能上的问题。能上的问题。方法:方法: 人为设置不同功能的连续重复操作。人为设置不同功能的连续重复操作。工具:工具: 一般需要使用工具。一般需要使用工具。6.10 6.10 用户界面测试用户界面测试优秀优秀UIUI应具备的应具备的7 7要素

47、:要素:(1 1)符合标准和规范)符合标准和规范(2 2)一致性)一致性(3 3)正确性)正确性(4 4)直观性)直观性(5 5)灵活性)灵活性(6 6)舒适性)舒适性(7 7)宽容性)宽容性(1 1)符合标准和规范)符合标准和规范 通常标准是已经确立的,多数用户已经熟悉并通常标准是已经确立的,多数用户已经熟悉并接受了这些标准和规范、或已经认同了这些信息接受了这些标准和规范、或已经认同了这些信息所代表的意义。所代表的意义。 如果软件在某一个平台上运行,就需要把该平台如果软件在某一个平台上运行,就需要把该平台的标准和规范作为产品规格说明书的补充内容,在的标准和规范作为产品规格说明书的补充内容,在建立测试用例时和产品规格说明书一样作为依据建立测试用例时和产品规格说明书一样作为依据 。(2 2)一致性)一致性与用户的现实世界与用户的现实世界的一致

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论