可靠性测试的软件
也称软件的可靠性评估,指根据软件系统可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征量。
软件可靠性是软件系统在规定的时间内以及规定的环境条件下,完成规定功能的能力。
一般情况下,只能通过对软件系统进行测试来度量其可靠性。
测试可靠性是指运行应用程序,以便在部署系统之前发现并移除失败。
因为通过应用程序的可选路径的不同组合非常多,所以在一个复杂应用程序中不可能找到所有的潜在失败。
但是,可测试在正常使用情况下最可能的方案,然后验证该应用程序是否提供预期的服务。
如果时间允许,可采用更复杂的测试以揭示更微小的缺陷。
组件压力测试压力测试是指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。
利用组件压力测试,可隔离构成组件和服务、推断出它们公开的导航方法、函数方法和接口方法以及创建调用这些方法的测试前端。
对于那些进入数据库服务器或一些其他组件的方法,可创建一个提供所需格式的哑元数据的后端。
测试仪器在观察结果的同时,反复插入哑元数据。
这里的想法是在隔离的情况下,对每个组件施加远超过正常应用程序将经历的压力。
例如,以尽可能快的速度使用 1 – 10,000,000 循环,查看是否有暴露的问题。
单独测试每个 DLL 可帮助确定组件的失败总次数。
对于分布式 Web 应用程序,Microsoft 提供“Web 应用程序压力工具”。
有关更多信息,请参见“Microsoft Web Application Stress Tool”(Microsoft Web 应用程序压力工具).如果您购买了 Visual Studio .NET 企业版,还会提供另一个名为 Application Center Test 的工具,它用来预览 Application Center 2000 中某些技术的介绍性信息。
集中压力测试对每个单独的组件进行压力测试后,应对带有其所有组件和支持服务的整个应用程序进行压力测试。
集中压力测试主要关注与其他服务、进程以及数据结构(来自内部组件和其他外部应用程序服务)的交互。
集中测试从最基础的功能测试开始。
您需要知道编码路径和用户方案、了解用户试图做什么以及确定用户运用您的应用程序的所有方式。
测试脚本应根据预期的用法运行应用程序。
例如,如果您的应用程序显示 Web 页,而且 99% 的客户只是搜索该站点、只有 1% 的客户将真正购买,这使得提供对搜索和其他浏览功能进行压力测试的测试脚本才有意义。
当然,也应对购物车进行测试,但是预期的使用暗示搜索测试应在测试中占很大比重。
在日程和预算允许的范围内,应始终尽可能延长测试时间。
不是测试几天或一周,而是要延续测试达一个月、一个季度或者一年之久,并查看应用程序在较长时期内的运行情况。
真实环境测试在隔离的受保护的测试环境中可靠的软件,在真实环境的部署中可能并不可靠。
虽然隔离测试在早期的可靠性测试进程中是有用的,但真实环境的测试环境才能确保并行应用程序不会彼此干扰。
这种测试经常发现与其他应用程序之间的意外的导致失败的交互。
需要确保应用程序能够在真实环境中运行,即能够在具有所有预期客户事件配置文件的服务器空间中,使用最终配置条件运行。
测试计划应包括在最终目标环境中或在尽可能接近目标环境的环境中运行应用程序。
这一点通常可通过部分复制最终环境或小心地共享最终环境来完成。
随机破坏测试测试可靠性的一个最简单的方法是使用随机输入。
这种类型的测试通过提供虚假的不合逻辑的输入,努力使应用程序发生故障或挂起。
输入可以是键盘或鼠标事件、程序消息流、Web 页、数据缓存或任何其他可强制进入应用程序的输入情况。
应该使用随机破坏测试测试重要的错误路径,并公开软件中的错误。
这种测试通过强制失败以便可以观察返回的错误处理来改进代码质量。
随机测试故意忽略程序行为的任何规范。
如果该应用程序中断,则未通过测试。
如果该应用程序不中断,则通过测试。
这里的要点是随机测试可高度自动化,因为它完全不关心基础应用程序应该如何工作。
可能需要某种测试装备,以驱使混乱的、高压力的、不合逻辑的测试事件进入应用程序的接口中。
Microsoft 使用名为“注射器”的工具,使得以将错误注射到任何 API 中,而无需访问源代码。
“注射器”可用于:模拟资源失败,修改调用参数,注射损坏的数据,检查参数验证界限,插入定时延迟,以及执行许多其他功能。
软件测试的方法一共有几种
1、按是否查看程序内部结构分为:(1)黑盒测试(black-box testing):只关心输入和输出的结果 (2)白盒测试(white-box testing):去研究里面的源代码和程序结构2、按是否运行程序分为:(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程3、按阶段划分:(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing) 界面测试(UI testing)UI=User Interface 易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试2)性能测试(performance testing) 软件的性能主要有时间性能和空间性能两种 时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
(Validate the system or software can allowed the biggest stress.)5、其他测试类型:回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。
(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.) 冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
(validate the major function is deployed or not in software of system when a new build or release is implement.) 随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
(means or all the test data is random, to validate the some edge bugs.)
为什么要做软件可靠性测试
展开全部 根据GB/T 16260-2006中规定的软件质量特性,其中可靠性包括:成熟性、容错性、易恢复性、可靠依从性; 对于可靠性的定义:软件在指定条件下使用时,软件产品维持规定的性能级别的能力。
成熟性:指软件产品避免因软件中错误发生而导致失效的能力。
容错性:指在软件发生故障或违反指定接口的情况下,软件产品维持规定的性能级别的能力。
已恢复性:指在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力。
可靠依从性:指软件产品依附与同可靠性相关的标准、约定或法规以及类似规定的能力。
说明一下:软件生命周期中经常开展的性能、压力、负载测试是源于软件可靠性、效率性、可维护性的要求,可靠性的目的是让软件的性能符合要求。
...
软件可靠性测试,可用性测试的定义,有什么区别
软件可靠性测试是指:为了评估软件在规定的寿命期间内,在预期的使用、运输或储存等所有环境下,保持软件功能可靠性而进行的测试。
软件可用性测试是指:是对软件“可用性”进行评估,检验其是否达到可用性标准。
目前的可用性评估方法超过20种,按照参与可用性评估的人员划分,可以分为专家评估和用户评估;按照评估所处于的软件开发阶段,可以将可用性评估划分为形成性评估和总结性评估。
形成性评估是指在软件开发或改进过程中,请用户对产品或原型进行测试,通过测试后收集的数据来改进产品或设计直至达到所要求的可用性目标。
形成性评估的目标是发现尽可能多的可用性问题,通过修复可用性问题实现软件可用性的提高,总结性评估的目的是横向评估多个版本或者多个产品,输出评估数据进行对比。
...
计算机四级的软件测试
一、软件测试的基本概念 1.软件质量的概念。
2.软件测试的目标和原则。
3.软件测试的心理学。
4.软件测试的经济学。
5.软件质量保证。
二、软件测试的类型及其在软件开发过程中的地位 1.软件开发阶段。
2.规划阶段的测试。
3.设计阶段的测试。
4.编码阶段的测试。
5.验收和维护阶段的测试。
三、代码检查、走查与评审 1.桌面检查。
2.代码走查。
3.代码检查。
4.同行评审。
四、覆盖率(白盒)测试 1.覆盖率测试。
2.逻辑结构的覆盖率测试。
3.路径覆盖率测试。
4.数据流测试。
5.程序变异测试。
6.基于覆盖的测试用例选择。
五、功能(黑盒)测试 1.边界值测试。
2.等价类测试。
3.基于因果图的测试。
4.基于决策表的测试。
5.基于状态图的测试。
6.基于场景的测试。
7.比较测试。
六、单元测试和集成测试 1.单元测试的目标和模型。
2.单元测试策略。
3.单元测试分析。
4.单元测试的测试用例设计原则。
5.集成测试基本概念。
6.集成测试策略。
7.集成测试分析。
8.集成测试用例设计原则。
七、系统测试 1.系统测试概念。
2.系统测试方法。
3.系统测试的实施。
八、软件性能测试和可靠性测试 1.软件性能的概念。
2.性能测试的执行。
3.软件可靠性的概念。
4.可靠性预计。
5.可靠性分析方法。
6.软件可靠性测试的执行。
九、面向对象软件的测试 1.面向对象软件测试的问题。
2.面向对象软件测试模型。
3.面向对象软件的测试策略。
4.面向对象软件的单元测试。
5.面向对象软件的集成测试。
6.面向对象软件的系统测试。
十、Web应用测试 应用服务器的分类和特征。
Web应用系统的特点。
Web应用系统的测试策略。
Web应用系统测试技术。
Web应用系统安全测试。
十一、其他测试 兼容性测试。
易用性测试。
GUI测试。
构件测试。
极限测试。
文档测试。
十二、软件测试过程和管理 软件测试过程概念。
测试组织管理。
测试计划的制定。
测试步骤的确定。
测试环境管理。
软件测试风险分析和成本管理。
测试文档管理。
测试的复用与维护。
十三、软件测试自动化 测试自动化的原理、方法。
测试用例自动生成。
测试执行自动化。
测试结果比较自动化。
测试工具的分类和选择。
测试工具的主流产品介绍。
十四、软件测试的标准和文档 软件测试的标准。
软件测试的文档。
十五、软件测试实践 软件测试过程管理。
(1)软件测试过程管理概念。
(2)测试的设计。
(3)测试的准备。
(4)测试的执行。
(5)软件问题报告和软件问题生命周期。
(6)测试的总结。
(7)QESuite软件测试过程管理平台。
白盒测试实践。
(1)被测程序说明。
(2)静态分析。
(3)被测程序的插装和动态测试。
(4)QESAT/C++白盒测试工具。
软件可靠性的相关分析
软件可靠性与硬件可靠性之间主要存在以下区别:1.最明显的是硬件有老化损耗现象,硬件失效是物理故障,是器件物理变化的必然结果,有浴盆曲线现象;软件不发生变化,没有磨损现象,有陈旧落后的问题,没有浴盆曲线现象。
2.硬件可靠性的决定因素是时间,受设计、生产、运用的所有过程影响,软件可靠性的决定因素是与输入数据有关的软件差错,是输入数据和程序内部状态的函数,更多地决定于人。
3.硬件的纠错维护可通过修复或更换失效的系统重新恢复功能,软件只有通过重设计。
4.对硬件可采用预防性维护技术预防故障,采用断开失效部件的办法诊断故障,而软件则不能采用这些技术。
5.事先估计可靠性测试和可靠性的逐步增长等技术对软件和硬件有不同的意义。
6.为提高硬件可靠性可采用冗余技术,而同一软件的冗余不能提高可靠性。
7.硬件可靠性检验方法已建立,并已标准化且有一整套完整的理论,而软件可靠性验证方法仍未建立,更没有完整的理论体系。
8.硬件可靠性已有成熟的产品市场,而软件产品市场还很新。
9.软件错误是永恒的,可重现的,而一些瞬间的硬件错误可能会被误认为是软件错误。
总的说来,软件可靠性比硬件可靠性更难保证,即使是美国宇航局的软件系统,其可靠性仍比硬件可靠性低一个数量级。
动态测试的步骤
根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤: 单元测试是对软件中的基本组成单位进行测试,其目的是检验软件基本组成单位的正确性。
在公司的质量控制体系中,单元测试由产品组在软件提交测试部前完成。
单元测试是白盒测试。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
白盒法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
在实际工作中,我们把集成测试分为若干次的组装测试和确认测试。
组装测试,是单元测试的延伸,除对软件基本组成单位的测试外,还需增加对相互联系模块之间接口的测试。
如三维算量软件中,构件布置和构件工程量计算是软件不同的组成单位,但构件工程量计算的数据直接来源于构件布置,两者单独进行单元测试,可能都很正常,但构件布置的数据是否能够正常传递给工程量计算,则必须通过组装测试的检验。
集成测试是白盒测试。
确认测试,是对组装测试结果的检验,主要目的是尽可能的排除单元测试、组装测试中发现的错误。
这是软件在投入使用之前的最后测试。
是购买者对软件的试用过程。
在公司实际工作中,通常是采用请客户试用或发布Beta版软件来实现。
验收测试是黑盒测试。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
即软件维护阶段,其目的是对验收测试结果进行验证和修改。
在实际应用中,对客诉的处理就是回归测试的一种体现。
转载请注明出处51数据库 » 软件可靠性的测试方法
三爪猫60212662