α测试。由测试小组(可能还包括其他感兴趣的、友善的内部人员)执行的内部测试。
β测试。利用不属于开发机构并且是产品的目标市场成员的测试员实施的用户测试。待测产品一般非常接近完成。很多公司都将让客户试用代码看作是β测试,他们把所有β测试都归结为叫做“β”的里程碑。这是个错误。实际上有很多不同类型的β测试。设计β,用于要求用户(特别是有关领域的专家)评价设计,应该尽可能早地实施,以便有根据评价意见进行修改的时间。市场开发友β,用于再次确认在该产品推出并投放自己的大型销售网上时会有大量客户购买,实施时间相当晚,要等到产品相当稳定之后。兼容性测试β,客户在开发机构自己不容易测试的硬件和软件平台上运行该产品。这种测试不能太晚,否则难以确定和解决兼容性问题。对于所管理的任何类型β测试,在确定进度和实施方法之前,都要确定测试目标。
强力测试(bug bash)。利用秘书、程序员、市场开发人员和可以找到的任何人所实施的内部测试。强力测试一般持续半天,在软件接近投放市场时进行。(请注意,我们列出这种手段是为了举例,并不表示赞同。有些公司由于种种原因认为它很有用,有些公刮则认为没用。)
有关领域的专家测试(subject-matter expert testing)。向软件目标领域内的专家提供产品,并寻求反馈唐见(错误、批评和赞扬)。专家可以是,也可以不是预期使用产品的客户,公司看重的是专家的知识,而不是其市场代表性。
成对测试(paired testing) 。两个测试员在一起发现程序错误。一般情况下,他们共用一台计算机,在测试时轮流操作。
自用测试(eat your own dogfood)。全公司使用并依靠自己软件的试用版,通常要等到软件足够可靠能够实际使用时.才向市场销售。
经验50,关注测试内容的基于覆盖率的测试手段
可以根据在使用这些手段时已经掌握的知识的不同,把这些手段按所关注的问题进行多种不同的分类。例如,如果把功能集成测试用于检查每个功能与所有其他功能组合在一起时是否能够正常延行.则这种测试就是面向覆盖率的测试。如果有针对功能相互交互的错误理论,并想进行跟踪,则这种测试就是面向问题的测试。(例如,如果意图是想发现功能在相互传递数据时出错,就是面向问题的测试。)
我们将在本章末尾补充解释这些定义中的一些领域测试,因为与领域有关的手段在软件测试中使用得非常普遍、非常重要。读者应该对其有所了解。
功能测试(function testing) 。逐个测试每个功能。彻底测试功能,直到可以确信该功能没有问题。白盒功能测试通常叫做单元测试,集中测试可以看到代码的功能。黑盒功能测试关注命令和特性,以及用户可以做或选样的事情。在做涉及多个功能的更复杂的测试之前,最好先做功能测试。在复合测试中,第一个出现问题的功能可能会使测试停下来,阻止通过这个测试发现多个其他功能也出现问题。如果依靠复合测试而下是单个测试功能,可能要到很晚才会知道有一个功能出现问题,可能要花费大量工作在复合测试中定位,最后却发现问题出现在一个简单功能上。
特性或功能集成测试(feature or function integration testing) 。一起测试多个功能,以检查功能在一起执行的情况。
菜单浏览(menu tour) 。遍历GUI产品中的所有菜单和对话框,使用每个可用的选项。
域测试(domain testing) 。域是一个(数学)集合,包含所有可能的函数变量取值.在域测试中,要识别函数和变量。变量可以是输入或输出变量。(输入域和值域之间的数学区别在这里无关,因为这两种域的测试分析都是一样的。)对于每个变量,都要把其可能取值集合划分为等价类,并从每个类中选择少量代表(一般是边界值) 。这种方法假设如果用类中的少量好的代表值进行测试,就可以发现用类中所有成员测试所能够找出的大多数或全部问题.请注意,与功能测试形成对比的是,感兴趣的要素是变量而不是功能。很多变量被多个功能使用。进行域测试时必须分析变量,然后再根据分析,以这个变量作为输入或输出,测试涉及这个变量的每个功能。
等价类分析(equivalence class analysis) 。等价类是测试员认为是等价的一组变量取值。如果相信一组测试用例:(a)测试的都是相同的东西;(b)如果其中一个捕获到一个程序错误,其他测试用例也可能捕获到;(c)如果其中一个不能捕获到某个程序错误,其他测试用例可能也不能捕获到,则这些测试用例是等价的。一旦找出一个等价类,可只测试其一两个成员。
边界测试(boundary testing) 。等价类是一组取值。如果可以成员映射到一列数字上,则边界值就是类的最小和最大值。在边界测试中,要测试这些值,还要测试相邻类的边界值,这些值比要测试的类的最小值略小,比要测试的类的最大值略大。例如,请考虑一个接受10-50整数值的输入字段。感兴趣的边界值是10(最小整数) 、9(小于10的最大整数) 、50(最大整数) 、51(大于50的最小整数) 。
最佳代表测试(best representative testing) 。等价类的最佳代表是在暴露软件中的错误的可能性方面至少与类中其他值一样的值。在边界测试中,边界值几乎总是最佳代表。但是有时不能将等价类映射到一组数字上。例如,兼容惠普PcL-5的打印机是(或应该是)一个等价类,因为这些打印机的工作方式相同。假设对于一个具体任务,其中一种打印机与其他打印机相比,略微更可能出现问题。那么这种打印机可以作为这个类的最佳代表。如果对它测试没有发现问题,那么可以比较可靠地认为其他打印机也没有问题。
输入字段测试大纲或矩阵(input field test catalogs or matrices) 。对于每种输入字段,可以开发一组相当标准的测试用例,在这个产品和后续产品中的类似字段中重用。本章稍后还要给出这种方法的例子。(请参阅“如何创建针对输入字段的测试矩阵”。)
用各种方式映射和测试编辑宇段(map and test all the ways to edit a filed) 。常常可以以多种方式改变某个字段中的值。例如可以把数据输入到该字段,直接在字段中输入数据,通过程序将计算好的结果复制到字段中,通过程序将再次计算好的结果复制到字段中,等等。字段是有限制的(限制字段可以取哪些值) 。有些限制是不变的,有些限制要依赖于其他字段的取值。例如,如果J和K是无符号整数,其限制就是0一直到MaxInt。这些都是不变限制.依赖于程序设计语言对无符号整数的定义。但是,如果N也是无符号整数,N=J+K,N=5。在这种情况下,J=5-K,J不能大于5,(N的值) 。这是可变限制,其所允许的取值范围取决于N的值。为了检查J是否在所允许的取疽范围内(5—K),可以使用各种能够把数据输入到J中的方法改变J的取值。
逻辑测试(logic testing) 。变量在程序中有关系。例如,程序可能有这样一个决策规则:如果PERSON-AGE大于50,并且如果SMOKER是YES,则OFFER-INSURANCE必须是NO。这种决策规则表达了一个逻辑关系。逻辑测试试图检查程序中的所有逻辑关系。因果图(cause-effect graphing)是一种用于设计大量基于逻辑测试的手段。
基于状态的测试(state-based testing) 。程序的状态要发生转换。在给定状态中,有些输入是有效的,其他输入被忽略或拒绝。对于有效输入,被测程序要完成它可以做的事,并且不尝试做它不能做的事。在基于状态的测试中,每次都要通过经过大量状态迁栘(状态改变)并仔细检查结果来检验程序。
文章来源于领测软件测试网 https://www.ltesting.net/