1.8. 风险测试(Risk Testing)
设想一个问题,然后去找到它。
? 这个产品会有哪些种类的问题?
? 哪种问题是最要紧的?关注那些问题。
? 如果真有这些问题,你将怎样来侦测?
? 做一个有趣的问题的列表,并特别设计一些测试来发现这些问题。
? 可能需要一些帮助,包括咨询顾问、设计文档、以前的缺陷报告、或者使用风险启发法。
1.9. 自动化测试(Automatic Testing)
运行大量不同的测试。
? 寻找适合自动的生成大量的测试的机会。
? 开发一套自动化的、高速评估的机制。
? 写程序来生成、执行并评估这些测试。
2.项目环境
创建和执行测试是测试项目的核心所在。然而,在你决定要创建什么样特定的测试时,项目环境中有很多因素都是关键性的。对于下面的每个类别中的因素,都要考虑它们可能会怎样帮助或阻碍你的测试设计进程。试着利用好每一个资源。
2.1. 客户。这个测试项目中作为客户的任何人。
? 你知道谁是你的客户么?谁的意见要紧?谁从你做的工作中受益或者利益收到损害?
? 你同你的客户联系和交流过了么?可能他们对你的测试有帮助。
? 可能你的客户对你要创建和运行的测试有很强烈的想法。
? 可能客户之间对测试有相冲突的期望。你可能不得不帮着分析清楚并解决这些冲突。
2.2. 信息。关于需要被测试的产品或项目的信息。
? 有任何的可获得的工程文档么?用户手册?网上的资料?
? 这个产品有历史渊源么?有已经被修复或者遗留的老问题么?客户有经常抱怨什么?
? 在你知道怎么测试该产品之前,你需要更熟悉该产品么?
? 你的信息是最新的么?你怎样得知新的或者修改的信息?
? 看起来信息好像异乎寻常少的产品中有任何复杂或者富有挑战性的部分么?
2.3. 与开发人员的关系。你怎样同程序员相处。
? 傲慢型:开发团队看起来对于产品的任何方面都过于自信?
? 防卫型:产品中存在开发人员似乎很奇怪地反对进行测试的部分?
? 融洽:你同开发人员发展出了一种伙伴合作关系?
? 反馈环路:你能同程序员根据需要进行快速交流么?
? 反馈:开发人员对你的测试策略怎么想?
2.4. 测试团队。任何会执行或支持测试工作的人。
? 你知道谁会来测试这个项目?
? 有不在 “测试团队”中,但可能会有帮助的人么?有人以前测试过类似的产品,并可能提供一些建议么?作者?用户?还是程序员?
? 你有足够的有正确的技能来执行一个合理的测试策略的人么?
? 这个团队有没有基于一些特殊技能或者动机地需要,来刻意执行使用一些测试技术?
? 需要任何的培训么?可以获得一些什么培训?
2.5. 设备和工具。管理测试所需要的硬件、软件或者文档。
? 硬件:我们有执行测试所需要的所有的设备么?是否已经安装好,并准备运行了?
? 自动化:需要使用任何的自动化测试工具么?工具是否都准备好了?
? 探测器:在测试产品时,需要任何辅助性的工具来帮助我们观察么?
? 矩阵和一览表:有需要跟踪或者记录测试的进程的任何文档么?
2.6. 时间表。项目事件的顺序、持续时间和同步。。
? 测试设计:我们有多少时间?这些测试晚一点创建是否会好一点?
? 测试执行:测试应该什么时候执行?是否有些测试要被重复的执行,比如说,在回归测试中?
? 开发:版本什么时候可以来测试,增加了功能,代码冻结,等等?
? 文档:用户文档什么时候可以评审?