软件工程-测试方法-白盒和黑盒测试
软件工程-软件测试
软件测试方法可以分为静态测试和动态测试。
静态测试
静态测试是指被测试程序不在程序上运行,而是采用人工检测和计算机辅助金泰分析的手段对程序进行检测。
静态测试方法
(1)人工检测:是指不依靠计算机而是靠人工审查程序或评审软件,包括代码检查、静态结构分析和代码质量度量等;
(2)计算机辅助静态分析:利用静态分析工具对被测试程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。
动态测试
动态测试是指通过运行程序发现错误。
动态测试方法
白盒测试
概念
白盒法又称为逻辑覆盖法,因为要以程序(模块)内部的逻辑结构为基础来设计测试用例,主要用于单元测试。测试的关键也是如何选择高效的测试用例。
白盒测试的主要方法有程序结构分析、逻辑覆盖、基本路径测试等,它根据程序的控制结构设计导出测试用例,主要用于软件程序的验证。
原则
(1)对程序模块的所有独立的执行路径至少测试一次;
(2)对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;
(3)检查程序的内部数据结构,保证其结构的有效性。
(4)在循环的边界和运行界限内执行循环体;
方法
逻辑覆盖
基本路径测试
概念
从广义角度讲,任何有关路径分析的测试都可以被称为路径测试。简单描述:路径测试就是从一个程序的入口开始,执行所经历的各个语句的完整过程。
路径的表达式
(1)弧a和弧b相乘,表示为ab。它表明路径是先经历弧a,接着经历弧b,弧a和弧b是先后相接的。
(2)弧a和弧b相加,表示为a+b。它表明两弧是“或”的关系,是并行的路段。
导出测试用例
程序段的基本路径集中有4条独立路径:
路径1:4 →14
路径2:4 →6 →7 →14
路径3:4 →6 →9 →10 →13 →4 →14
路径4:4 →6 →9 →12 →13 →4 →14
设计测试用例
边界值划分
边界值分析法是一种很实用的黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误
选取正好等于、刚刚大于或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
原则
(1)如果输入条件对取值范围进行了界定,则应以边界内部以及刚超出范围边界外的值作为测试用例。
(2)如果对取值的个数进行了界定,则应当分别以最大、最小个数及稍小于最小、稍大于最大个数作为测试用例。
(3)对于输出条件,同样可以应用上面提到的两条原则来进行测试用例设计。
(4)如果程序规格说明书中指明输入或者输出是一个有序集合,就应当注意选取该有序集合中的第一个和最后一个元素作为测试用例。
测试用例规则
规则1
如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值及刚刚超过这个范围边界的值作为测试输入数据。
规则2
如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少一个的数作为测试数据。
基本思想是:故障往往出现在输入变量的边界值附近。
例如:当一个循环条件为“≤”时,却错写成“<”;计数器发生少计一次。
边界值分析利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。
例:
比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足:
A>0、B>0、C>0、
A+B>C、A+C>B、B+C>A,
才能构成三角形。但如果把六个不等式中的任何一个大于 “>”错写成大于等于 “≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。
![]()
错误推测
人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。
错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
因果图
因果图是从自然语言描述的程序规格说明中找出因(输入条件)和果(输出或者程序状态的改变),通过因果图转换为判定表。
步骤
(1)分析程序规格说明的描述中,哪些是原因,哪些是结果;
(2)分析程序规格说明的描述中予以的内容,并将其表示成连接各个原因与结果的“因果图”;
(3)表明约束条件;
(4)把因果图转换成判定表;
(5)为判定表中每一列的情况设计测试用例。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!