- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十五章可靠性测试
第15章 可靠性测试
1、可靠性定义
在规定条件下,在规定的时间内,软件引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在缺陷的函数;系统输入将确定是否会遇到已在缺陷(如果缺陷存在的话)
指产品在规定的条件下和规定的时间内完成规定功能的能力。
2、软件可靠性的定量描述
规定时间、失效概率、可靠度、失效强度、失效率、可靠度与失效率之间的换算、平均无失效时间
3、可靠性目标
指客户对软件性能满意程度的期望
4、可靠性测试的意义
1)、软件失效可能造成灾难性的后果
2)、软件的失效在整个计算机系统失效中的比例较高
3)、相比硬件可靠性技术,软件可靠性技术很不成熟,这就加剧了软件可靠性问题的重要性
4)、与硬件元器成本急剧下降形成鲜明对比的是,软件费用呈有增无减的势头,而软件可靠性问题是造成这种费用增长的主要原因之一
5)、计算机技术获得日益广泛的应用,使得系统对于软件的依赖性越来越强。软件可靠性的问题的重要性也凸出了。
5、影响软件可靠性的因素
1)、运行剖面(环境)
2)、软件规模
3)、软件内部结构
4)、软件的开发方法和开发环境
5)、软件的可靠性投入
6、软件的可靠性模型分类
种子法、失效率类、曲线拟合类、可靠性增长、程序结构分析、输入域分类、执行路径分析方法、非齐次泊松过程、马尔可夫过程、贝叶斯类模型。
7、软件可靠性模型举例
模型假设、函数表达式、参数估计
8、定义软件运行剖面
道先需要为软件的使用行为建模,建模可以采用马尔可夫链来完成。下一步是开发使用模型,明确需要测试的内容。
9、可靠性测试用例设计时重点考虑的一些特殊情况
1)、屏蔽用户操作错误:考察对用户常见的误操作的提示和屏蔽情况
2)、错误提示的准确性:对用户的错误提示准确程度
3)、错误是否导致系统异常退出:有无操作错误引起系统异常退出的情况
4)、数据可靠性:系统应对输入的数据进行有效性检查,对冗余的数据进行过滤、校验和清洗,保证数据的正确性和可靠性
5)、异常情况的影响:考察数据和系统受影响程度,若受损,是否提供补救工具,???救的情况
例子:
【15-1】对一个长度为100,000条指令的程序进行测试,记录下来的数据如下:? ú 测试开始, 发现错误个数为0;? ú 经过160小时的测试, 累计改正100个错误, 此时, MTTF = 0.4小时;? ú 又经过160小时的测试, 累计改正300个错误, 此时, MTTF = 2小时;?(1) 估计程序中固有的错误总数;?(2) 为使MTTF达到10小时, 必须测试和调试这个程序多长时间? ?(3) 给出MTTF与测试时间t之间的函数关系。由shooman公式:
其中,IT = 105,MTTF1 = 0.4,T1 = 160,n1 = 100,MTTF2 = 2,T2 = 320,n2 = 300。得:
?(1) ?解得程序中固有得错误总数ET = 350,此外K = 1000。?(2) ?设MTTF = 10,有
?解得x = 340。由可靠性累积曲线EC (t) = ET (1-e-K1 t ),? ? ?得 ? ? 100 = 350 (1-e-160K1)? ? ? ? ? ?300 = 350 (1-e-320K1)? ? ?解得 K1 ? 0.01。代入:340 = 350 (1-e-K1 t ) = 350(1-e-0.01 t )? ? ? ? t = (ln(35))/0.01 ? 356 (小时)? ? ?因此求得为使MTTF = 10,测试和调试该程序需要花费356小时。?(3) ?MTTF与测试时间t之间的函数关系: ? ?因为EC (t) = ET (1-e-K1 t ),则ET - EC (t) = ET e-K1 t。代入shooman公式:
【5-2】应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?
在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试。而接下来做验收测试时则以用户为主。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。如果软件是为多个客户开发的,则需要进行α测试和β测试。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。软件在一个自然设置状态下使用。开发者坐在用户旁边,随时记下错误情况和使用中的问题。这是在受控制的环境下进行的测试。β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者。与α测试不同的是,
文档评论(0)