一、模型概览
开放源码软件测试模型以“满意测试”为基本原则,强调迭代发展。
· “满意测试”基本定义
是一个过程,通过该过程可以合理的成本获取足够的产品质量评价信息,从而使得与产品有关的决策更为明智和及时。
· 模型基本需求
以下给出开源软件测试模型应满足的一些基本要求,将在实践中不断丰富和完善:
1. 应充分考虑开放源码的早发布和常发布特点,对每一次代码的提交、滞后、变更能够作出适当反应,允许对仍处于开发、尚未集成的元素进行及时测试;
2. 明确鼓励测试人员在进行测试设计时充分利用各种信息源,而不于项目文档;
3. 允许测试工作由于较差的或滞后的项目文档而受负面影响,但应防止完全阻塞测试工作的情况发生;
4. 允许每个测试案例可以利用不同的信息源进行设计,允许在获得新的信息源时对测试进行重新设计;
5. 应包含反馈机制,使得测试执行过程中的发现可被及时考虑到测试设计中;
· 开放源码软件测试模型框架
以上述需求为基础并结合开放源码特点,给出开放源码软件测试模型。该模型是一个软件测试启发式模型,基本目标是用于提醒测试人员在创建测试时应着重考虑的各种因素,进而可被用来定制测试。
1. 协商并理解项目的测试目标;
2. 理解并协商与测试技术选择相关的各种因素,理解与测试工作有关的限制、要求和可用资源,从而使得测试更为高效;
3. 在充分考虑和利用其他各种因素的前提下选择合适的测试技术以达到测试目标;
4. 随时监控项目项目的状态,并在需要时调整测试计划,以使得目标、测试技术的选择和各种因素保持统一。
测试目标 明确项目测试应优先考虑的任务和侧重点。
测试环境 包括资源、限制和其他可能影响测试执行效果的外部力量,应确保在限制范围内充分利用了各种可用资源。
产品元素 指被测试的对象,应确保检查了产品所有方面,包括软件、硬件和操作。
质量准则 包括各种可用来确定产品是否存在问题的规则和数值,具有多维特点,并且常常是隐含的或相互矛盾的。
测试技术选择 给出各种创建测试的策略和方法,在对测试目标、测试环境、产品元素和质量准则进行综合分析的情况选择和使用,并根据测试执行情况及时调整。
二、测试目标
· 发现重要问题 · 评估质量 / 风险
· 标准符合性认证 · 完成过程委托监理
· 让受益人满意 · 责任担保
· 针对 QA 的改进建议 · 针对测试的改进建议
· 针对质量的改进建议 · 效率大化
· 成本小化 · 时间小化
三、测试环境
有许多因素对于项目测试工作能否成功完成具有重要影响,在此将这些因素统称为测试环境。下面给出一些通用的信息类别,考虑其中各个因素对于测试工作是起促进作用还是阻碍作用,大限度利用各种可用资源,同时将各种阻碍因素的影响小化。
3.1 受益人
指任何对于产品质量能够发表意见以施加影响的人。所有的需求都直接或间接地来源于一个或多个受益人,软件测试人员在整个测试过程中作为受益人的代理。
3.2 测试信息
指测试工作所需要的与产品或项目有关的信息。
· 进度
测试: 何时 开始测试以及要持续多长时间?
开发 : 何时构建可以被测试、何时增加新功能、何时冻结代码,等等?
文档 : 何时用户文档可被评审?
· 预算
需要购买或开发的测试资源和材料的费用如何?
· 过程
项目管理: 项目采用的生命周期模型、项目计划和监控手段如何。
配置管理: 项目配置管理方法和实施如何?
· 测试条目
可用性: 能否获得被测产品?能否从开发人员或其他人员那里获得测试所需信息?
易变性: 获取的 信息是否新?如何获得有关新信息或信息变更方面的通知?产品设计和实现经常变更吗?
可测试性: 产品是否足够可靠以便于进行有效测试?
交付性: 需要生成何种的报告,是否要共享中间测试结果还是仅提交终结果?
3.3 测试团队
指任何将要执行或支持测试的人员。
· 工作负载
是否有足够人力按来照期望时间完成所有计划好的测试工作?
· 专家能力
是否拥有与项目有关的正确知识以很好地完成计划好的测试工作?
· 组织
所有测试工作是否得到有效协调并目标一致?
3.4 测试工作平台
指用于支持和管理测试的软硬件平台。
· 测试平台
是否拥有测试执行所需的全部设备和平台?
· 测试工具
需要那些测试工具?他们是否可用?
· 测试库
是否测试过程中的任意文档和结果均要保存并进行跟踪吗?
· 错误跟踪系统
如何进行错误报告和跟踪?