项目环境包括资源、约束、以及项目中有助于我们测试的其它强力因素,当然也包括阻碍我们做好工作的因素。当面对阻力时,先确认你是否利用了你所有可获得的资源。
产品元素就是你要测试的东西。软件是如此的复杂和不可见,以至于你要特别小心的确保你确实测试了产品中需要测试的所有部分。
质量标准是允许你作为一个测试人员来判断产品是否有问题的准则、价值观和来源。质量标准是多方面的,并且经常是隐藏的或者是自相矛盾的。
测试技术是创建测试时使用的策略。所有的测试技术都包括对项目环境、产品元素和质量标准的某种分析。
看得见的质量是测试的结果。你永远不可能知道一个软件产品的“实际”质量,但是通过对应用的各种各样的测试,你能对其质量做一个比较准确的评估。
1.常用测试技术
测试技术就是创建测试的方法。这都是些有趣的技术。下面列出了九种常用的技术。使用“常用技术”这个词,我是想说这些技术足够简单和普遍,并在各种不同的环境中都得到了广泛的应用。很多特殊技术都是基于这九种方法中的一种或者几种发展出来的。通过对一种或几种常用技术用覆盖的思想来组合,就可以构建成无数的特殊测试技术,这些覆盖的思想都是来自启发式测试策略模型中的其它列表中的。
1.1. 功能测试(Function Testing)
测试系统能够完成的功能。
Ø 找出产品能够做的事情(功能和子功能)。
Ø 判断你将怎么才能知道一个功能是否能正常工作。
Ø 测试每个功能,一次测试一个。
Ø 看看每个功能是否做了应该做的,而没有做不应该做的。
1.2. 域测试(Domain Testing)
Divide and conquer the data。(与等价类划分+特殊值的方法类似――译者注)
Ø 分析产品的输入输出数据集。
Ø 判断测试的特殊值。考虑边界值,典型值,常用值,无效值,以及最具代表性的值。
Ø 考虑需要在一起测试的数据的组合。
1.3. 压力测试(Stress Testing)
征服产品。(在规定的规格条件或者超过规定的规格条件下,测试一个系统,以评价其行为)
Ø 找出在挑战性的数据或者压倒性的资源面前对超载或者“破坏”敏感的子系统和功能。
Ø 辨识出与那些子系统和功能相关的数据和资源。
Ø 选择或生成测试所需的挑战性的数据或约束条件的资源:例如,大量或复杂的数据结构,高负载,长时间运行,大量的测试用例,低速存储器的情况。