JAVA软件测试(贝泽成熟度模型)
贝泽成熟度模型Beizer’s Maturity Model
级别0:测试与调试相同
测试的基本、最不成熟的观点是级别0的观点——测试与调试相同。
在0级思维中,程序员让他们的程序进行编译,用一些任意的输入调试程序。
此视图无法区分程序的错误行为和程序中的错误。它对开发可靠或安全的软件也没有什么帮助。
(…并且测试与调试不同,如稍后所示。)
第1级:软件测试的目的是展示软件作品
从幼稚的0级提升了一大步。
但是,在除了最琐碎的程序之外的任何程序中,正确性几乎都不可能实现或证明!
(…另一点我们将在稍后的讲座中讨论。)
级别2:软件测试的目的是显示软件不起作用
尽管寻找失败当然是一个有效的目标,但它也是一个消极的目标。如果一家公司的测试人员和开发人员来自不同的团队,那么您可能会遇到这样的情况:测试人员可能喜欢找到
问题,但开发人员从不想发现问题&他们希望软件能够正常工作!
2级测试将测试人员和开发人员置于敌对关系中,这可能不利于团队士气。
除此之外,当我们的主要目标是寻找失败时,我们仍然想知道如果没有发现失败该怎么办。
第三级:软件测试的目的不是为了显示任何特别的东西,而是为了降低使用软件的风险。
3级思维让我们接受这样一个事实,即无论何时使用软件,我们都会承担一些风险。
风险可能很小,后果并不重要,或者风险可能很大,后果是灾难性的,但风险总是存在的。
这让我们意识到,整个开发团队都想要同样的东西——降低使用软件的风险。
在3级测试中,测试和开发齐头并进,以降低风险。
第4级:测试是一门帮助所有IT专业人员开发更高质量软件的心理学科
一旦测试人员和开发人员在同一个“团队”中,或者测试被认为对开发同等甚至更重要,组织就可以进入4级测试。
4级测试将测试定义为一种提高质量的心理训练。
同样,4级测试意味着测试的目的是提高开发人员生产更高质量软件的能力。
拼写检查器的最佳用途不仅仅是找出拼写错误的单词,而是提高我们的拼写能力。每次拼写检查器发现拼写错误的单词时,我们都有机会学习如何正确拼写该单词。
拼写检查器是拼写质量方面的“专家”
Beizer’s Maturity Model:
0 The same activity as debugging
1 Purpose is to show software works
2 Purpose is to show software doesn’t work
3 Purpose is to reduce the risk of using software
4 Purpose is to help all IT professionals engineer better software
为什么不可能找到所有Bug?
详尽测试的问题。
在Java中,int的范围是-2147483648到2147483647
有六个整数,即232x6或2192(≈6 x 1057)的唯一输入可以尝试!假设每个输入执行大约需要1纳秒。要把它们都试一遍需要1041年的时间!
暂停问题与软件测试
计算机科学中的暂停问题基本上是不知道程序是否会在给定输入的情况下终止的问题。
如果我们给一个任意程序一个输入,已经证明,没有任何程序可以写出来说明原始程序是否会终止。在软件测试中也是如此:我们不知道,给定我们的测试输入,被测试的程序是否会陷入无限循环!
这意味着,总的来说,详尽的测试不仅是棘手的,也是不可计算的。
可牵引问题 Tractable problems:可有效解决
难以解决的问题 Intractable problems:解决方法是存在的,但非常耗时
无可争议的问题 Uncomputable problems:任何计算机程序都无法解决
预言问题(The Oracle problem)
即使我们可以
1) 使用所有输入执行所有软件
(即,如果软件测试是一个容易处理的问题)
2) 保证软件在每次输入时终止
(即,如果软件测试是一个可计算的问题)
我们仍然需要解决预言机的问题——如何知道,在给软件系统一些输入的情况下,它给出的输出是正确的。
在软件测试中,预言机是某种东西(JUnit中的断言)或某人(人类制造手动判断)谁可以确定软件输出是否正确
但是我们如何选择输入的子集呢?
这就是软件测试问题的本质。
我们需要选择一组输入,以揭示关于软件质量的信息。
但我们不知道我们已经选择了所有会揭示所有错误的输入。文章来源:https://www.toymoban.com/news/detail-462236.html
为什么软件测试很难
1执行任何非琐碎程序(non-trivial program)的所有输入都是棘手的
2确保软件在每次输入时都会终止是不可确定的
3识别正确/不正确的输出,给出相应的输入至少和最初构建软件一样困难-The Oracle problem文章来源地址https://www.toymoban.com/news/detail-462236.html
到了这里,关于JAVA软件测试(贝泽成熟度模型)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!