软件测试讲义(上)
作者:网络转载 发布时间:[ 2013/12/18 11:28:02 ] 推荐标签:
(2)Fault:即从代码的角度看,代码的什么错误导致了软件的问题。
例如,代码在输入为某种情况下访问了非法的内存地址——0X0000000C。
(3)Root Cause:错误根源,即导致代码错误的根本原因。
例如,代码对于id1==id2的情况没有做正确判断,从而引用了未赋初值的变量,产生了以上的情况。
以下是一个完整的例子。
(1)Symptom:用户报告,一个Windows应用程序有时会在启动时报错,程序不能运行。
(2)Fault:有时候一个子窗口的handle为空,导致程序访问了非法内存地址,此为代码错误。
(3)Root Cause:代码并没有确保创建子窗口(在CreateSubWindow()内部才做)发生在调用子窗口之前(在OnDraw()时调用),因此子窗口的变量有时会在访问时为空,导致上面提到的代码错误。
2、Test Case:测试用例
测试用例描述了一个完整的测试过程,包括测试环境、输入、期望的结果等。
3、Test Suite:测试用例集合
即一组相关的测试用例。
提示:Suite发音念作“sweet”,不是念作“suit”,一大半的学生都念错。
从测试设计的方法分类
测试设计有两类方法:Black box(黑箱)、White box(白箱)。
这是每个接触过软件测试的人都会给出的答案。但这只是整个软件测试的入门知识。可以跳过去,直接讨论下面的内容。
问:我在网上看到有人争论黑箱测试和白箱测试哪一个是另一个的基础,还有哪一个更难,哪一个更有前途,等等。据说河曲数码在搞“灰箱测试”,是不是更高级?能不能简单讲一讲?
阿超:大家都有这些问题么?
杂曰:[略去对此问题热烈的争论500字]
阿超:听了大家的争论,看来我们的确得花不少时间统一认识。
所谓黑箱/白箱,是指软件测试设计的方法,不是软件测试的方法!注意“设计”二字。
黑箱:在设计测试的过程中,把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。一个更准确的说法是“Behavioral Test Design”,从软件的行为,而不是内部结构出发来设计测试。
白箱:在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择。“白箱”并不是一个精确的说法,因为把箱子涂成白色,同样也看不见箱子里的东西。有人建议用“玻璃箱”来表示。
在实际工作中,我们不应画地为牢,严格只用某一种方法来设计测试方法。在实际的测试中,当然是对系统了解得越多越好。所谓“灰箱”的提法,正是这一反映。有些测试专家甚至希望我们忘记全部的“箱子”和它们的颜色。
问:如果我是一个开发者,我能做“黑箱”么?
答:并不是要禁止懂得程序内部结构的人员来进行黑箱测试设计,只不过是在设计时有意不考虑软件的内部结构。例如:在测试程序内部基本模块的时候(单元测试),通常要求由对程序结构非常了解的程序员来设计,这是因为内部模块的“行为”和程序的外部功能并没有直接的关系,而且内部基本模块的“行为”通常没有明确的定义。另一个例子是“易用性测试”,在设计此类测试的时候,没必要纠缠于程序的内部结构,而是着重于软件的界面和行为。但是软件易用性测试也需要很多专业知识。这也从一个侧面表明“黑箱”和“白箱”没有简单的高低之分。
一旦测试用例写出来之后,大可以忘了它们是从哪种颜色的箱子里出来的,用它可以了。
问:有人说“黑箱”,有人说“黑盒”,到底是“箱子”还是“盒子”?
答:在网上搜索了一下,“黑箱测试”有超过100万个记录,“黑盒测试”只有70多万。所以“箱子”赢了。
问:但是我听九条说他刚进公司实习的时候只能做“黑箱测试”,这是什么意思?
九条:我刚到公司实习的时候,两眼一摸黑,看到啥都是“黑箱”,即使测试用例是由懂得程序结构的开发人员写出来的,我还是只会机械地运行。我是知其然,不知其所以然,箱子当然是黑的。后来看得多了,学了一些东西,能够了解程序的结构和算法,箱子的颜色变浅了,好像能看到箱子里的东西一样。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11