关闭

戴上眼罩的软件测试

发表于:2009-5-05 14:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Luckyapple    来源:JavaEye

  一、动态黑盒测试:带上眼罩测试软件

  不深入代码的细节测试软件的方法称为动态黑盒测试。它是动态的,因为程序在运行-软件测试员像用户一样使用它;同时,它是黑盒子。因为测试时不知道程序如何工作-带上了眼罩。测试员输入数据、接受输出、检验结果。动态黑盒测试常常被称为行为测试,因为测试的是软件在行为过程中的实际行为。

  注: 选择测试用例是软件测试员最重要的一项任务。不正确的选择可能导致测试量过大或过小,甚至测试目标不对。准确评估风险,把无穷尽的可能性减少到可以控制的范围是成功的诀窍。

  二、 通过性测试和失效性测试

  测试软件有两种基本方法:通过性测试(test-to-pass)和失效性测试(test-to-fail)。在进行通过性测试时,实际上是确认软件至少能做什么,而不会考验其能力。软件测试员并不需要想尽办法让软件崩溃,仅仅运用最简单、最直观的测试用例。

  注意:在设计和执行测试用例时,总是首先进行通过性测试。在破坏性测试之前看看软件基本功能是否能实现是很总要的,软件测试员可能会吃惊地发现仅仅正常使用软件就会发现那么多软件缺陷。

  确信软件在普通情况下能正常运行之后,就可以采取各种手段搞垮软件来找出软件缺陷了。纯粹为了破坏软件而设计和执行的测试用例称为失效性测试或错误强制性测试。失效性测试蓄意攻击软件的薄弱环节。

  三、等价类划分

  选择测试用例是软件测试员最重要的任务。选择测试用例的方法是等价类划分,有时称为等价分类。等价类划分是指分步骤地把海量(无限)的测试用例集减得很小,但过程同样有效。

  注意:一个等价类或者等价类划分是指测试相同目标或者暴露相同软件缺陷的一组测试用例。

  在寻找等价类划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组。这些组就是等价划分。

  请记住,等价类划分的目标是把可能的测试用例集缩减到可控制且仍然足以测试软件的小范围内。因为选择了不完全测试,就要冒一定的风险,所以选择分类时必须仔细。

  如果为了减少测试用例的数量过度划分等价类,就有漏掉那些可能暴露软件缺陷的测试的风险。对于初涉软件的测试者,一定要请经验丰富的测试员审查划分好的等价类。

  关于等价类划分可能主观。科学有时也是一门艺术。测试同一个复杂程序的两个软件测试员可能会得出两组不同的等价划分间。只要审查等价划分的人认为足以覆盖测试对象就行了。

  四、数据测试

  对软件最简单的认识就是将其分为两部分:数据(或其范围)和程序。数据包括键盘输入、鼠标单击、磁盘文件、打印输出等。 程序是指可执行的流程、转换、逻辑和运算。软件测试常用的一个方法是把测试工作按同样的形式划分。

  对数据进行测试,就是在检查用户输入的信息、返回的结果以及中间计算结果是否正确。

  1、边界条件

  描述边界条件测试的最佳方式。如果在悬崖峭壁边可以自信而安全的行走而不掉下去,平地就几乎不在话下了。如果软件能在其边界运行,那么在正常情况下就应该不会有什么问题。

  边界条件是特殊情况,因为编程从根本上说在边界上容易产生问题。软件是很极端的--即要么对要么不对,令人奇怪的是如果对一定范围的数据进行操作,程序员往往在处理大量中间数值时都是对的,但是可能在边界处出现错误。

  边界条件是指软件运行在计划操作界限的边界的情况。

  如果要选择在等价划分中包含哪些数据,就根据边界来选择。

  2、测试边界

  由于软件容易在边界上产生缺陷,因此,如果要从等价划分中选择包含的数据,从边界条件中选择会找出更多的软件缺陷。然而,仅仅测试边界线上的数据点往往不够充分。最好测试一下边界的两边。如果建立两个等价划分就可以找出更多软件缺陷。第一个划分包含认为应该正确的数据 --在边界内部最后一两个合法的数据点。第二个区间包含认为可能出现错误的数据-边界之外--- 一到两个非法的数据点。

  技巧:提出边界条件时,一定要测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。

  注意:在软件的每一个部分不断寻找边界是极为重要的,寻找做得越多,边界就会发现得越多。

  缓冲区溢出是由边界条件缺陷引起的,它是造成软件安全问题的头号原因。

  3、次边界条件

  普通的边界条件是最容易找到的。它们在产品说明书中有定义,或者在使用软件的过程中明显。而有些边界在软件内部,最终用户几乎看不到,但是软件测试员仍有必要进行检查。这样的边界条件或者内部边界条件。

  寻找这样的边界不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。

  4、非法、错误、不正确和垃圾数据

  数据测试的最后一种类型是垃圾数据。这是失效性测试的对象。经过边界测试、次边界测试和默认值测试等通过性测试证实软件能够工作之后,就该进行垃圾数据测试了。

  非法、错误、不正确和垃圾数据测试时很有意思的。如果软件要求输入数字,就输入字母。如果软件只接受正数,就输入负数。如果软件对日期敏感,就看它在公元3000年是否还能正常工作。假装有“肥胖的手指”,同时按下多个键。

  此类测试没有实际的规则,只是设法破坏软件。要发挥创造力,要会走偏门。在此工作中寻找乐趣吧。

  五、状态测试

  软件测试的另一方面是通过不同的状态验证的程序的逻辑流程。软件状态是指软件当前所处的条件或者模式。

  注意: 软件测试员必须测试程序的状态及其转换

  1、测试软件的逻辑流程

  测试软件的状态和逻辑流程有同样的问题。访问所有状态通常是可以实现的。困难在于除了极其简单的程序之外,基本上不可能走遍所有分支,达到所有状态。对于软件测试,解决方法是运用等价划分技术选择状态和分支。因为选择不做完全测试,所以要承担一定的风险,但是通过合理选择减少风险。

  2、建立状态转换图

  状态转意图应该表示出以下项目:

  1)软件可能进入的每一种独立状态。

  2)从一种状态转入另一种状态所需的输入和条件。

  3)进入或者退出某种状态时的设置条件及输出结果。

  提示: 因为正在进行黑盒测试,所以不必了解代码中设置的底层变量。从软件用户的角度建立状态图即可。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号