正在加载图片...
某软件中心的评测部为了评估已开发实现的应用软件ASP的可靠性,决定采用软件可靠性的错误播种模型 来进行测试和评估。评测部在评估时,作了下列三个假设 (1)在测试前,单位长度的故障个数Er/Ir为一常数,此常数基本上落在一个固定的范围内。其中Ir为 被测程序的长度(即机器指令条数),Er为被测程序中故障总数。 (2)失效率正比于软件中剩余的(潜伏的)故障数,平均无故障时间MITF与单位长度的剩余故障个数成 反比,即MITF=1/(K*Er)。其中εr为单位长度剩余故障个数,K的典型值现取为200。 (3)测试中发现的错误都得到了及时改正,在测试过程中没有引入新的错误。评测部对ASP软件人为地植 入了10个错误,即Ns=10,在开始测试的一小段时间内,发现了160个固有故障,即n=160,又发现了 植入的故障2个,即ns=2,被测程序ASP的长度(机器指令条数)为105。 问题1:用故障播种〔植入)的数学模型,估算出被测程序ASP的固有故障的个数N的值。如果通过测试 段时间后,发现的固有错误个数为ED=795时,请估算此程序的平均无故障时间MITF值。 问题2:若要求把此MIIF再提高4倍,应至少再排除多少个固有错误?请简要地列出有关计算式。 参考答案 、答案:A.③B.⑤C.⑥D.①E.⑤ 、答案:A.③B.②C.③D.⑤E.① 、答案:正确的叙述有:(1)、(4)、(5)、(7)、(10) 说明:(1)利用括号可以明确地规定表达式中各运算符的优先顺序,这样可以提供表达式运算的清晰性 因此是对的。(4)对于不好的程序,一是程序逻辑混乱以致理解困难,二是隐藏错误多,三是错误定位和 修改容易出问题,所以修修补补,越补越糟,不如重新写。(5)浮点数的运算有其近似性,两个浮点数可 能会非常接近但永远不会相等,所以做浮点数的相等比较可能不会有结果。(7)利用数据类型来检查数据 值,这是静态分析的一种手段,叫做类型分析,因此是对的。(10)使用有意义的标识符,可以提高程序的 可读性,因此是对的。 其它的叙述都不对。(2)对递归定义的数据结构,应当使用递归过程来解决基于这种数据结构的应用 问题。(3)程序代码的优化工作应交给编译器来做,程序设计时应首先考虑程序代码的清晰性、简明性、 可读性、正确性、以至于可维护性。(6)输出中间结果只是在调试程序时才有用,其它时候输出大量中间 结果,不但浪费资源,而且给使用者造成麻烦。(8)从文件输入数据时,应当使用文件结束符来判断输入 的结束,使用计数方法判断输入结束不一定是最佳方式。(9)程序中的注释是必须的,不是可有可无的。 四、答案:正确的叙述有:(1)、(2)、(3)、(4)、(8)。 说明:(1)使用高级语言编写的程序模块化、结构化程度都比较好,可读性强,容易测试。(2)程序测试本 身应当是一个程序的执行过程,而不是静态的逻辑分析,其目的是发现程序中潜藏的错误。(3)连锁式分 支结构有n个判定,其路径数有2n条,因此当n=8时程序中总的路径数有28条。(4)白盒测试基于程序 的内部结构设计测试用例,可以不考虑程序的功能要求。(8)由于在等价类的边界上最容易出错,所以边 界值分析方法选取输入/输出等价类的边界值作为测试用例,可以有效地查错。 不正确的叙述,如(5)采用一次性集成方式进行模块组装,往往成功的可能性低,而且出现错误时, 不容易确定在什么地方出了问题,因此应采用增殖式集成方式,可以把出错的范围局限到少数模块中间。 (6)测试的实践表明,对一批模块进行测试,发现错误多的模块中残留的错误也多,因此必需注意这一现象, 弄清哪些模块问题发现得多,对这些模块重点测试。()好的测试用例是能够发现新错误的测试用例,发 现不了问题的测试用例就不是好的测试用例,用它们做测试是浪费时间和金钱。(9)等价类划分法是选择 输入等价类的代表值作为测试用例,而因果图法才是考虑了各等价类之间取值的组合情况及可能的结果来 设计测试用例的。(10)语句覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。而判定覆盖法 则可能查不出在判定中某些条件中关系运算符使用有误时产生的错误3 某软件中心的评测部为了评估已开发实现的应用软件 ASP 的可靠性,决定采用软件可靠性的错误播种模型 来进行测试和评估。评测部在评估时,作了下列三个假设: (1) 在测试前,单位长度的故障个数 ET / IT 为一常数,此常数基本上落在一个固定的范围内。其中 IT 为 被测程序的长度(即机器指令条数),ET 为被测程序中故障总数。 (2) 失效率正比于软件中剩余的(潜伏的)故障数,平均无故障时间 MTTF 与单位长度的剩余故障个数成 反比,即 MTTF = 1/(K*εr )。其中εr 为单位长度剩余故障个数,K 的典型值现取为 200。 (3) 测试中发现的错误都得到了及时改正,在测试过程中没有引入新的错误。评测部对 ASP 软件人为地植 入了 10 个错误,即 NS = 10,在开始测试的一小段时间内,发现了 160 个固有故障,即 n = 160,又发现了 植入的故障 2 个,即 nS = 2,被测程序 ASP 的长度(机器指令条数)为 105 。 问题 1:用故障播种(植入)的数学模型,估算出被测程序 ASP 的固有故障的个数 N 的值。如果通过测试 一段时间后,发现的固有错误个数为 ED = 795 时,请估算此程序的平均无故障时间 MTTF 值。 问题 2:若要求把此 MTTF 再提高 4 倍,应至少再排除多少个固有错误? 请简要地列出有关计算式。 参考答案 一、答案:A. ③ B. ⑤ C. ⑥ D. ① E. ⑤ 二、答案:A. ③ B. ② C. ③ D. ⑤ E. ① 三、答案:正确的叙述有:(1)、(4)、(5)、(7)、(10) 说明:(1) 利用括号可以明确地规定表达式中各运算符的优先顺序,这样可以提供表达式运算的清晰性, 因此是对的。(4) 对于不好的程序,一是程序逻辑混乱以致理解困难,二是隐藏错误多,三是错误定位和 修改容易出问题,所以修修补补,越补越糟,不如重新写。(5) 浮点数的运算有其近似性,两个浮点数可 能会非常接近但永远不会相等,所以做浮点数的相等比较可能不会有结果。(7) 利用数据类型来检查数据 值,这是静态分析的一种手段,叫做类型分析,因此是对的。(10) 使用有意义的标识符,可以提高程序的 可读性,因此是对的。 其它的叙述都不对。(2) 对递归定义的数据结构,应当使用递归过程来解决基于这种数据结构的应用 问题。(3) 程序代码的优化工作应交给编译器来做,程序设计时应首先考虑程序代码的清晰性、简明性、 可读性、正确性、以至于可维护性。(6) 输出中间结果只是在调试程序时才有用,其它时候输出大量中间 结果,不但浪费资源,而且给使用者造成麻烦。(8) 从文件输入数据时,应当使用文件结束符来判断输入 的结束,使用计数方法判断输入结束不一定是最佳方式。(9) 程序中的注释是必须的,不是可有可无的。 四、答案:正确的叙述有:(1)、(2)、(3)、(4)、(8)。 说明:(1) 使用高级语言编写的程序模块化、结构化程度都比较好,可读性强,容易测试。(2) 程序测试本 身应当是一个程序的执行过程,而不是静态的逻辑分析,其目的是发现程序中潜藏的错误。(3) 连锁式分 支结构有 n 个判定,其路径数有 2 n 条,因此当 n = 8 时程序中总的路径数有 2 8 条。(4) 白盒测试基于程序 的内部结构设计测试用例,可以不考虑程序的功能要求。(8) 由于在等价类的边界上最容易出错,所以边 界值分析方法选取输入∕输出等价类的边界值作为测试用例,可以有效地查错。 不正确的叙述,如(5) 采用一次性集成方式进行模块组装,往往成功的可能性低,而且出现错误时, 不容易确定在什么地方出了问题,因此应采用增殖式集成方式,可以把出错的范围局限到少数模块中间。 (6) 测试的实践表明,对一批模块进行测试,发现错误多的模块中残留的错误也多,因此必需注意这一现象, 弄清哪些模块问题发现得多,对这些模块重点测试。(7) 好的测试用例是能够发现新错误的测试用例,发 现不了问题的测试用例就不是好的测试用例,用它们做测试是浪费时间和金钱。(9) 等价类划分法是选择 输入等价类的代表值作为测试用例,而因果图法才是考虑了各等价类之间取值的组合情况及可能的结果来 设计测试用例的。(10) 语句覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。而判定覆盖法 则可能查不出在判定中某些条件中关系运算符使用有误时产生的错误
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有