1阅读题1 / 5
试题一
阅读以下关于软件可靠性需求分析方面的叙述,回答问题1、问题2和问题3。
某企业信息部门的李工程师正在为其下属单位开发一个应用软件,在编写软件需求规格说明书时,涉及到如何定量地描述软件可靠性的问题。
李工认为软件可靠性指的是在将要使用的指定环境下,软件能以用户可接受的方式正确运行任务所表现出来的能力。从定量角度看,似乎应当是该软件在约定的环境条件下和在给定的时间区间内,按照软件规格说明的要求,成功地运行程序所规定功能的概率。但是,他感到要具体地作定量描述有些困难。
为此,李工查阅到了本部门某个软件需求规格说明书中有关的一段内容:
“(1)在集成与系统测试期间,由非开发组人员参与测试,每10K行可执行代码可能检测到的错误(BUG)不能大于6个;
(2)在提交使用的系统中,每 10K 行可执行代码可能保留着的错误数不能大于 8 个;
(3)在第一年工作期间,系统在99.9%的工作日期间内,应能保持100%的正常工作状态。”
在上述说明后,还有一条注解是:错误 (BUG) 可采用蒙特卡罗 (MonteCarlo) 随机植入技术进行测试
[问题1]
李工程师首先想到了曾经学到过采用蒙特卡罗随机统计技术确定不规则形状封闭图形面积的方法,即是采用一个大的矩形把待测的封闭图形完全包围在该大矩形的内部,由计算机大量生成在此矩形内均匀分布的“点”,然后,计数清点一下在大矩形内总的“点”的个数和在封闭图形内的“点”的个数,应当近似地有:
如果把这个思想应用于系统测试过程,先在某个程序中随机地人为植入10个错误(BUG),然后,由一个测试组进行测试,结果一共发现有120个错误,其中有6个是人为植入的错误。
请你估算一下这时该程序中将会遗留下多少个未被发现的隐藏错误。同时也请你用 100 字以内的文字,简要地以提纲方式列举出采用这种错误随机植入方式来估算系统中遗留错误所固有的局限性。
[问题2]
在进行上述分析后,李工程师感到有些困惑,于是与本企业维护系统的一位系统管理员进行了讨论,系统管理员告诉他可以借用硬件的 MTTF (失效的平均等待时间,MeanTime To Failure) 或者MTBF (失效的平均间隔时间) 作为软件可靠性的主要指标。
这时,李工程师查到了本企业中的一个典型例子:某软件在提交使用后,在第 1 周内有 5 次软件故障(查出了有关的 bug ),在第 2 周至第 4 周内共有 2-3 次出错 (也排除了错误根源),在 2 个月以后该软件一直能正常使用运行 (大家反映不错),一直到 6 年半后的一天突然停工,即工作不正常。
请你用100字以内文字分析该软件最后一次工作不正常的可能原因,并说明 MTBF 是在什么意义下反映了软件的可靠性。
[问题3]
信息部门的吴总工程师向李工程师建议了另一类测试方案作为“错误随机植入”测试方法的补充。即由甲和乙两组测试人员同时相互独立地测试同一份程序的两个拷贝,测试了两周后,甲组发现的错误总数为330个,乙组发现的错误总数为320个,其中两个组发现的相同错误数目为300个。请你大体上估算一下在测试前此程序原有多少个错误?并也请你以100字以内文字,简要说明使用这类估算方法的必要前提。
阅读以下关于软件可靠性需求分析方面的叙述,回答问题1、问题2和问题3。
某企业信息部门的李工程师正在为其下属单位开发一个应用软件,在编写软件需求规格说明书时,涉及到如何定量地描述软件可靠性的问题。
李工认为软件可靠性指的是在将要使用的指定环境下,软件能以用户可接受的方式正确运行任务所表现出来的能力。从定量角度看,似乎应当是该软件在约定的环境条件下和在给定的时间区间内,按照软件规格说明的要求,成功地运行程序所规定功能的概率。但是,他感到要具体地作定量描述有些困难。
为此,李工查阅到了本部门某个软件需求规格说明书中有关的一段内容:
“(1)在集成与系统测试期间,由非开发组人员参与测试,每10K行可执行代码可能检测到的错误(BUG)不能大于6个;
(2)在提交使用的系统中,每 10K 行可执行代码可能保留着的错误数不能大于 8 个;
(3)在第一年工作期间,系统在99.9%的工作日期间内,应能保持100%的正常工作状态。”
在上述说明后,还有一条注解是:错误 (BUG) 可采用蒙特卡罗 (MonteCarlo) 随机植入技术进行测试
[问题1]
李工程师首先想到了曾经学到过采用蒙特卡罗随机统计技术确定不规则形状封闭图形面积的方法,即是采用一个大的矩形把待测的封闭图形完全包围在该大矩形的内部,由计算机大量生成在此矩形内均匀分布的“点”,然后,计数清点一下在大矩形内总的“点”的个数和在封闭图形内的“点”的个数,应当近似地有:
如果把这个思想应用于系统测试过程,先在某个程序中随机地人为植入10个错误(BUG),然后,由一个测试组进行测试,结果一共发现有120个错误,其中有6个是人为植入的错误。
请你估算一下这时该程序中将会遗留下多少个未被发现的隐藏错误。同时也请你用 100 字以内的文字,简要地以提纲方式列举出采用这种错误随机植入方式来估算系统中遗留错误所固有的局限性。
[问题2]
在进行上述分析后,李工程师感到有些困惑,于是与本企业维护系统的一位系统管理员进行了讨论,系统管理员告诉他可以借用硬件的 MTTF (失效的平均等待时间,MeanTime To Failure) 或者MTBF (失效的平均间隔时间) 作为软件可靠性的主要指标。
这时,李工程师查到了本企业中的一个典型例子:某软件在提交使用后,在第 1 周内有 5 次软件故障(查出了有关的 bug ),在第 2 周至第 4 周内共有 2-3 次出错 (也排除了错误根源),在 2 个月以后该软件一直能正常使用运行 (大家反映不错),一直到 6 年半后的一天突然停工,即工作不正常。
请你用100字以内文字分析该软件最后一次工作不正常的可能原因,并说明 MTBF 是在什么意义下反映了软件的可靠性。
[问题3]
信息部门的吴总工程师向李工程师建议了另一类测试方案作为“错误随机植入”测试方法的补充。即由甲和乙两组测试人员同时相互独立地测试同一份程序的两个拷贝,测试了两周后,甲组发现的错误总数为330个,乙组发现的错误总数为320个,其中两个组发现的相同错误数目为300个。请你大体上估算一下在测试前此程序原有多少个错误?并也请你以100字以内文字,简要说明使用这类估算方法的必要前提。
查看答案
[问题1] 随机植入的局限性
程序总错误数约= 10 * 120/6= 200个,遗留未能发现的 = 200 - 120 - 4 = 76个。
(1) 所有错误不会平等地出现的;
(2) 错误有连带相关性(一个错误的存在可能潜藏有另一个错误);
(3) 测试检测错误时,错误不是等同地可发现的;
(4) 修复错误常会引起新的错误。
[问题2] MTBF指标的意义
突然停止正常工作原因可能有:
(1) 用户突然启用一个以前从未用过的新功能(用户的可预测性);
(2) 某个软件维护人员犯了个错误,引入了一个新错误。
MTBF是反映“用户可预测性”与“软件中存在错误数”的一个复杂函数
[问题3] 两组相互独立预测方案
测试前程序原有错误可以认为是 BNO =320 * 330/300 = 11 * 32 = 352个。估算的前提:
(1)头几周发现的错误在全部错误中有代表性;
(2)两组发现的不同错误数所占比例相对很少。
程序总错误数约= 10 * 120/6= 200个,遗留未能发现的 = 200 - 120 - 4 = 76个。
(1) 所有错误不会平等地出现的;
(2) 错误有连带相关性(一个错误的存在可能潜藏有另一个错误);
(3) 测试检测错误时,错误不是等同地可发现的;
(4) 修复错误常会引起新的错误。
[问题2] MTBF指标的意义
突然停止正常工作原因可能有:
(1) 用户突然启用一个以前从未用过的新功能(用户的可预测性);
(2) 某个软件维护人员犯了个错误,引入了一个新错误。
MTBF是反映“用户可预测性”与“软件中存在错误数”的一个复杂函数
[问题3] 两组相互独立预测方案
测试前程序原有错误可以认为是 BNO =320 * 330/300 = 11 * 32 = 352个。估算的前提:
(1)头几周发现的错误在全部错误中有代表性;
(2)两组发现的不同错误数所占比例相对很少。