资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一、测试的常识与道理一、测试的常识与道理 测试能提高软件的质量,但是提高质量不能依赖测试。 测试只能证明缺陷存在,不能证明缺陷不存在。“彻底地测试”难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。我们应当祈祷:软件的缺陷在产品被淘汰之前一直没有机会发作。 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试。 每个开发人员应当测试自己的程序(份内之事) ,但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员) 。 80-20 原则:80的缺陷聚集在 20的模块中,经常出错的模块改错后还会经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲速则不达”。 优秀测试与平庸测试之间的区别在于测试员如何思考:测试员的测试设计选择,解释所观察到的现象的能力,以及令人信服地分析描述这些现象的能力。 要成为优秀测试员,就要学会像优秀测试员那样思考,而不是模仿他们的行为。 优秀测试员需要: ? 技术性思考。对技术建模并理解因果关系的能力。这包括诸如相关技术事实的知识和使用工具并预测系统行为的能力。 ? 创造性思考。产生思想并看到可能性的能力。 ? 判断性思考。评估思想并进行推断的能力。包括自己在思考中发现并清除错误的能力,将产品观察与质量准则关联起来的能力,以及针对特定信念或所建议的行动过程构建有说服力的测试用例的能力。 ? 实用性思考。把想法付诸实施的能力。包括运用测试工具并使测试手段和力量与项目范围适应的技能。 二、软件测试流程软件测试流程 1.软件测试应尽早介入到软件研发工作中软件测试应尽早介入到软件研发工作中 ? 尽早建立软件测试组。 ? 测试工程师要尽早参与到软件研发流程中,例如参加需求评审,参加设计评审等。 ? 各类研发文档要尽早提交给测试组。例如需求文档、设计文档等。 ? 开发组尽早提供可以运行的软件产品。 2.研发计划中要给测试留出时间和准备资源。研发计划中要给测试留出时间和准备资源。 ? 人员 ? 专用测试机 ? 在研发计划中要明确给出测试的时间段 3.软件测试小组要编写正式的测试计划和测试用例,并做好评审。软件测试小组要编写正式的测试计划和测试用例,并做好评审。 ? 在软件需求通过评审后编写完测试计划(测试组长) 。 ? 在编码工作结束前完成测试用例的设计。 ? 评审。 4.测试环境的管理。测试环境的管理。 ? 测试只在符合要求的测试环境中进行,不在指定的测试环境中做的测试不能统计到测试结果中。 ? 测试环境应当是干净的,不存在二义性。 (每启动一轮测试,测试环境都应该是清理干净的) 5.为每一个为每一个 Build 做验证测试做验证测试(BVT) Build Verification Test 。 ? 主要是通过对基本功能、特别是关键功能的测试,保证新增代码没有导致功能失效,保证版本的持续稳定。 ? 方法: 测试人员手工验证关键功能实现的正确性 借助自动化功能测试工具来完成 由开发人员通过自动化测试工具完成业务层的 BVT 测试 6.在测试开始前对软件产品做接受性测试,测试组只接受符合要求的版本。在测试开始前对软件产品做接受性测试,测试组只接受符合要求的版本。 可接受性测试的测试用例是整个测试用例集合的一个子集。 (怎样算是通过根据实际情况而定) 如果开发组提交的版本没有通过可接受性测试,测试不会启动,等开发组再次提交。 7.明确明确 Bug 管理流程管理流程 ? 要有一个 Bug 管理系统。 ? 提交正确、描述清晰的 Bug 是测试人员的责任。 ? 所有人都可以提交 Bug。 (测试人员、开发人员、市场人员、高级管理人员) ? 只有测试人员才能关闭 Bug。 ? 当开发和测试双方对一个 Bug 存在不同理解而无法说服对方的时候,应当有一个高级别的小组(可以包括需求编写人员、开发组长、测试组长和研发团队中的资深人士)来做评判。 ? 任何人都不能删除任何一个 Bug。 ? 每位测试工程师都应当定期和及时阅读所有的 Bug。 ? 定期开 Bug Review 的会议。 8.测试小组要提交测试报告测试小组要提交测试报告 ? 测试组长编制测试报告。 ? 测试报告应当按时提交。 三、常见测试组组织结构三、常见测试组组织结构 1. 烟囱测试组(小型) 2. 烟囱测试组(大型) 测试人员由临时人员组成,通常有 2-5 人组成,直接向项目经理负责。大型的组可以划分为几个小组,设测试经理。项目经理负责制定测试计划文档。企业没有正规的方法将测试程序、方法、相关的知识经验传递下去,测试质量难以保证。优点是成本低,不需要对测试人员提供培训、生活保障等服务。 3. 集中测试组 企业成立专职、独立的测试部门,通常由 1030 人组成。集中测试组为每个项目配备几个全职的测试人员。 部分企业中可能还负责执行项目中软件质量管理和性能规范制定的工作。可以将相关的知识、经验传递下去。 4. IV&V( Independent Verification and Validation 独立验证与确认)测试组 通常由软件开发组织之外的人员或其中的独立人员组成,如转包商。其参与检查、验证是否遵循标准、进行软件文档的质量保证检测,主要完成系统测试。可以将其看作一个最苛求的用户。 5. SMT(System Method Test 系统方法与测试)测试组 通常作为企业的内部顾问组的方式存在。 主要负责方法及标准的知识交流、编制开发和测试指南、开发测试方法、测试工具评估与培训,其与不同的项目组进行协作,对其进行指导。通常不负责具体测试工作的执行。 由软件专家组成。 四、基于人员的测试形式四、基于人员的测试形式 用户测试(user testing). 测试。由测试小组执行的内部测试。 测试。利用不属于开发机构并且是产品的目标市场成员的测试员实施的用户测试。 强力测试(bug bash)。利用秘书、程序员、市场开发人员等任何人实施的内部测试。 有关领域的专家测试(subject-matter expert testing). 成对测试(paired testing).两个测试员在一起发现程序错误。一般两人共用一台计算机,测试时轮流操作。 自用测试(eat your own dogfood).全公司使用并依靠自己软件的试用版,通常要等到软件足够可靠能够实际使用时,才向市场销售。 五、成功测试组的五、成功测试组的 10 大因素大因素 业务知识:测试工程师应具备业务知识,并和用户紧密接触。 技术知识:熟悉所测试的产品用到的技术,并掌握测试工具、方法等相关技术。 任务划分:将业务任务和技术任务相互独立。 资源管理:业务资源和技术资源相互结合。 与开发组的关系:同开发人员协同工作。 生存周期早期介入:测试应在开发周期的早期介入。 测试过程:有成熟的测试过程管理规范。 灵活性/适应性:能够适应不同的测试项目。 度量:掌握度量的方法,以改进工作。 过程改进:应致力于工作的不断改进。 六、测试组规模影响因素六、测试组规模影响因素 企业文化或测试成熟度 测试需求范围 工程师技能水平 测试工具及应用水平 业务知识 组织形式 测试工作介入时间 七、测试组规模确定方法七、测试组规模确定方法 1、开发比例法:开发比例法:根据开发人员数量按照一定比例来确定测试工程师的数量。开 发人员指进行设计、开发、编译以及进行单元测试的人员。 开发类型开发类型 开发人员开发人员 比例比例 测试组规模测试组规模 商业产品(大型市场) 30 人 3:2 20 商业产品(小型市场) 30 人 3:1 10 单个客户端的应用开发 30 人 6:1 5 单个客户端开发并与系统集成 30 人 4:1 7 政府部门应用开发(内部) 30 人 5:1 6 公司应用开发(内部) 30 人 4:1 7 2、百分比法:百分比法:根据测试人员应该占到项目组中人员的百分比数量。 开发类型开发类型 项 目 人 员 数量项 目 人 员 数量 测试组规模 比例测试组规模 比例 测试组规模测试组规模 商业产品(大型市场) 50 人 27 13 商业产品(小型市场) 50 人 16 8 单个客户端的应用开发 50 人 10 5 单个客户端开发并与系统集成 50 人 14 7 政府部门应用开发(内部) 50 人 11 5 公司应用开发(内部) 50 人 14 7 3、测试程序法:测试程序法:根据测试程序数量,以及每个程序可能的执行时间,计算出人 小时,再根据完成周期计算测试组规模。 测 试 过 程 数目测 试 过 程 数目 计算因子计算因子 人小时人小时 完成周期完成周期 测试组规 模测试组规 模 历史记录 860 6.16 5300 9 个月 3.4 新项目评估 1120 6.16 6900 12 个月 3.3 4、任务计划法:任务计划法:根据历史记录中类似项目工作量,比较新项目同历史项目的工作量,历史项目乘以相应的因子。 步骤:先将任务分解,根据历史记录乘以一个因子,计算出新项目的任务工作量。再根据该工作量和完成周期计算测试组规模。 八、人员培养八、人员培养 1、录用 ? 有责任感。 ? 工作态度积极。 ? 基本功扎实(操作系统、数据结构、网络等,编程有所了解,编程水平不一定要高 但一定要会写代码。面试中写出的代码语法可以有错,单逻辑必须正确和清晰。 ) ? 发散思维能力。 (测试覆盖率) ? 喜欢测试工作 ? 道德品质 2、人员要求 适应各种环境的知识背景 学习速度快 组织能力 解决问题的能力 创造性 分析/编程能力 业务领域的知识 交流与协调能力 测试经验 关注细节 书写与语法技能 九、软件过程九、软件过程 目的:测试过程是软件过程的组成部分,明确自己的软件过程,才能明确自己的测试过程。 软件生存周期指软件从出现一个构思之日起, 直到最后决定停止使 用之时止。包括可行性与计划研究、需求分析、设计 、实现 、测试、运行与维护等阶段。 软件过程是指开发和维护软件及相关产品(如项目计划、文档、代码、手册等)的一套行为、方法、实践及变换过程。软件过程是软件生存周期的框架。 十、测试过程与开发过程的关系十、测试过程与开发过程的关系 都是软件过程的有机组成部分。 与开发过程同步进行。 与开发过程相互依赖,又相互独立。 开发过程、测试过程、项目管理过程以及其他支撑过程相互交织共同组成了软件过程。 十一、制订测试计划步骤十一、制订测试计划步骤 1. 确定测试需求:确定测试对象以及测试工作的范围和内容。测试需求应是可核实的。测试需求可来源于软件需求列表、用例、用例模型、用例实现、补充规约、设计需求、商业理由、法规、标准、最终用户访谈以及对现有系统的复审。 2. 被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。 3. 评估风险:测试工作需要平衡资源约束和风险,以确定测试的优先级。从三个方面分析: 影响:失效后将造成的影响或后果 原因:失效所导致的非预期结果 可能性:用例失效的可能性 4. 根据风险分析情况,确定测试执行的优先级。通常分为高、中、低三种。进而安排测试的先后顺序。 5. 制定测试策略:描述测试活动的一般方法和目标。包括测试的阶段、类型、技术、测试完成的标准、特殊要求、可能存在的影响等。 6. 确定资源 人力资源(人员数量和技能) 测试环境(包括硬件和软件) 工具 数据 7. 创建时间表:估计测试工作,制订时间进度。参考软件开发进度、项目工作计划等。 8. 生成测试计划 :复审相关材料,确定交付的内容,将计划提交相关的人员。 ? 制订测试计划注意点: ? 对
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号