1、软件测试项目管理及其认证和培训一软件测试项目管理1.1测试项目管理目的保证测试质量:测试的可跟踪性测试的有效覆盖测试的科学性,系统性提高测试效率:减少不必要的测试人力浪费提高交流的效率提高小组团队工作的能力测试技能的科学应用(用最科学的测试策略解决相应的系统问题)1.2软件测试项目管理基本流程1.3测试模型介绍对测试模型的应用体现了这个测试小组控制的测试范围。越复杂的模型对测试管理的要求越高,但越能体现及早发现问题的测试原则,却要求更高的测试支持度1.3.1瀑布模型传统的瀑布模型,测试只能作为一个事后补救工作。1.3.2测试传统模型V模型V模型中的过程从左到右,描述了基本的开发过程和测试行为。
2、V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系1.3.3测试传统模型W模型V模型的实际工作模型增加了各个类型案例设计,在每个开发环节前增加对应的案例设计1.3.4测试传统模型X模型很好地处理测试与开发的交接过程(交接的过程是一个时间段,而不是一个点)在条件成熟的时候做任何事情。尽可能地减少做额外的成本投入(比如书写测试桩、驱动;文档的书写)1.3.5测试传统模型H模型H模型是X模型的简化描述,主要体现的思想:在条件允许的情况下及时做测试。1.3.6测试前置模型(测试驱动模型)扩大了测试的范围:包括各个阶段的评审和验证严格分
3、离验收测试和确认测试增加了代码静态走查等Goldsmith 提供了相应的技术方法,例如需求验证方法、设计验证方法等。1.4测试项目管理工具核心组件测试需求跟踪列表测试需求测试计划(案例维护计划,测试执行计划)测试设计大纲测试案例(测试数据,测试脚本等)测试执行包测试环境维护纪录缺陷报告测试报告测试总结1.5其他组件需求疑问交互表(需求变更表)风险列表成本估算表培训计划项目问题跟踪表会议机要1.6存在的测试组件应用模型1.6.1一般通用完善的测试管理测试需求的条目化测试案例与测试需求的覆盖关联设计测试执行与测试案例的关联设计测试执行与报告的关联设计通过该完善的体系,有效地跟踪了测试需求,确保了测
4、试需求测试覆盖的准确跟踪。准确地报告测试的需求覆盖率,测试执行成功率,以及测试热点等。1.6.2需求与问题报告关联管理 在缺少案例和严格的测试执行控制的前提下,通过测试需求和问题报告的关联,对测试需求覆盖率和测试热点等问题进行管理。 要求测试人员有丰富的测试经验,通过测试人员的测试经验和负责态度决定测试的覆盖率。1.6.3测试案例和问题报告关联在缺少测试需求管理和严格的测试执行的前提下,可以将测试案例和问题报告的关联,通过分析测试案例的覆盖率和成功率等对测试需求覆盖率和测试热点等问题进行管理。1.6.4问题独立管理 通过对问题报告的独立管理,手工维护问题报告对应的相关信息,通过问题报告单的分析
5、进行项目测试的分析这种就是最原始的管理,已发现问题为目的。根据企业对测试的重视程度将会出现以上不同的管理形式。同时也是项目根据系统质量要求,成本分析,以及企业的战略决策得到各种管理形式。不同的形式将会有不同的测试效果。1.7测试项目管理核心工作介绍1.7.1测试项目管理核心组件的介绍主要内容介绍测试需求管理测试计划管理测试案例管理测试执行管理缺陷管理测试报告管理团队交流管理1.7.2测试需求管理定义:测试结果的准确输出;测试通过的标准;也是测试工作的范围依据价值:如果没有明确的测试需求,测试工作就无据可依,测试工作将会失去意义。价值分析:从确认测试角度,由于系统要经历对需求了解,设计,实现的流
6、程,存在很多的交流问题,所以在项目中,往往具体实现系统的人对需求的掌握经常会出现严重的偏差,而测试工作的一个重要的价值就是发现系统与用户需求的偏差(服务于用户的理念)从验证测试的角度,如果没有及时了解到测试需求,测试人员往往会被实现的系统误导,导致无法发现实现的错误。所以说加强测试需求环节的管理,能够有效地提高测试的质量,而且减少了很多后期开发与测试的交流成本。获取测试需求的相关工作:积极参与需求调研,获取用户的明确需求和测试业务数据积极组织参与各种项目交流活动认真阅读和评审项目文档信息测试需求的主要来源:其中包括需求文档、设计文档、用户业务资料、与最终用户的访谈活动等。工作建议:积极普及测试
7、需求对测试活动重要性的观念重视测试需求的价值有效地安排测试需求调研工作有计划地提高测试人员的需求参与能力复用项目过程中已经产生的工具产品,作为测试需求的表达权宜建议:多与需求调研人员交流,尽可能地获取到有效的测试需求将自己的测试范围控制在自己掌握的测试需求范围内,减少无效测试工作的投入表达测试需求参考规则: 1.测试需求尽可能地条目化。便于跟踪 2.测试需求尽可能地结构化有明确地输入,输出3.测试需求尽可能地模型化便于案例设计采取更有效的模式和方法1.7.3测试计划管理定义:用于明确测试目标和范围、测试策略以及测试技术、方法、资源分配、任务进度安排,指导测试组以及测试相关人员团体协作等的可记载
8、申明。一般提倡将其表达成一个可以用于交流的文档。价值:测试计划是为实现一个目标而执行一系列的活动的宏观设计,能够将团队的目标统一。没有一个透明科学的计划,将无法得到相关工作支持。测试计划的特征:测试计划是一个策略性的文档测试计划是整个测试项目团体协作的核心基础测试计划是一个系列性文档每一种测试计划要有明确的目标每一种测试计划应该处理不同阶段的问题每一种测试计划通常应用统一的方法测试计划是一个可修改的、逐步精确的系统文档测试计划是一个团体合作的交流平台1.7.3.1测试计划前期准备工作测试需求收集:收集用户的系统功能需求(细化功能需求)业务数据接口数据用户质量要求分析:功能使用频度收集功能失败风
9、险分析成本估算:考虑到一些粗略的测试策略,做出成本估算测试目标决策:产品的质量需求测试小组的项目工作范围:企业的发展阶段(测试支持成熟度)项目用户的质量成熟度测试组织的能力成熟度通常现在中国企业独立的测试组织主要负责(功能测试)、系统测试。有一些负责集成测试等1.7.3.2测试计划制定-测试策略定义:为实现某一特定的测试目标,而采取的测试方案。内容说明:采用那种测试模型采用哪些测试过程使用那些测试手段如何处理一些特殊情况我认为测试策略是测试计划的核心部分。坚持的原则:尽早地进行测试活动特定的错误用特定的方法在特定的环节解决。特定的情况下,对测试活动有明确的优先级别处理1.7.3.3测试计划制定
10、-测试风险目的:通过风险分析,及早详细考虑在项目过程中可能遇到的问题以及相关的处理方案内容:风险内容描述风险级别约定处理方案说明:对项目中不可控的因素一定要进行提早防避,以免出现不合理的成本投入。建议:每个项目有一个风险列表,并且根据项目的发展情况进行维护。1.7.3.5测试计划内容框架说明文档介绍测试目标、范围和标准申明测试需求说明测试策略测试方法测试资源说明测试进度安排提交产品说明风险分析和处理对策说明交流方式申明1.7.4测试案例管理定义:从无穷尽的输入、输出组合中筛选出来的用于满足覆盖、发现错误的组合描述。价值:使测试工作更加科学化,技术化。使测试工作易于跟踪。体现出测试设计者的测试思
11、路用于指导测试人员执行测试。变相地验证需求、开发设计等有效的案例将会用于完善测试知识库案例实现参考原则:案例的设计必须有清晰的框架根据测试决策设计案例的颗粒度。参考管理细节:案例的书写要有案例书写计划案例的书写要有案例书写跟踪案例要进行及时的评审案例要进行修改维护1.7.5测试执行管理1.7.5.1执行计划设计工作内容:书写详细执行计划搭建测试执行包维护环境控制工作记录表核心工作建议:明确设置测试阶段,选择有效测试案例明确测试环境管理和应用原则(尽可能地避免同用环境)明确测试版本的控制原则明确测试版本提交原则和方式,以及提交时间1.7.5.2测试环境维护测试环境原则:尽可能地模拟实际用户环境测
12、试环境必须是正确性测试环境必须是可以跟踪的测试环境要及时调整测试环境的及时生成、并且可以复原各种状态测试环境要求足够安全分析:有效的测试环境会发现很多开发无法发现的问题。失败的测试环境维护将会给工作带来很大的成本浪费测试环境必须有专人负责1.7.6缺陷管理价值分析:微观价值:缺陷管理意义有利于缺陷的清晰、高效率的交互能够严格跟踪一个缺陷的状态,直到处理结束为止。开发管理辅助意义缺陷管理的优先、严重说明,可以指导开发人员进行工作的协调安排.丰富的缺陷维护历史纪录能够为项目进行提供了有效的数据宏观价值:丰富的分析和报告,为项目的进行提供了有效的指导数据和质量控制管理数据。为产品发布的可控性提供了有
13、效的信息帮助,使许多维护工作处于可控状态1.7.7测试报告价值分析:测试报告是测试工作的汇报,是体现测试价值的标志性文档。测试报告信息将是是否发布该软件的关键决策信息测试报告信息将是后期发布和维护软件的指导性文档对系统作一些测试角度的专业评定测试报告也能体现是否完成了计划,对计划的要求进行严格的审核阶段性报告还能为下一步计划修正提供有效的指导数据工作建议:测试报告主要体现为数据分析1.7.8团队管理内容:很好地管理人力资源保持良好测试小组工作气氛方法:会议文档交流(日志,总结)个人交流1.8人力资源处理好人员流动问题(交错熟悉业务和测试技术)尽可能地使任何工作对参与者有一定的挑战性,项目管理者
14、要为参与者留出足够的空间让其发挥,但又不能失去控制,并且要引导其去发现自己的挑战点。二软件测试工程师认证和培训2.1国内认证软件评测师考试合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理方法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。2.1.1软件评测师考试说明 考试要求(1)熟悉计算机基础知识;(2)熟悉操作系统、数据库、中间件、程序设计语言基础知识;(3)熟悉计算机网络基础知识;(4)熟悉软件工程知识,理解软件开发方法及过程;(5)熟悉软件质量及软件质量管理基础知识;(6)熟悉软件测试标准;(7)掌握软件测试技术及方法;(8)掌握
15、软件测试项目管理知识;(9)掌握C语言以及C+或Java语言程序设计技术;(10)了解信息化及信息安全基础知识;(11)熟悉知识产权相关法律、法规;(12)正确阅读并理解相关领域的英文资料。通过本考试的合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理办法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。本考试设置的科目包括:(1)软件工程与软件测试基础知识,考试时间为150分钟,笔试,选择题;(2)软件测试应用技术,考试时间为150分钟,笔试,问答题。2.1.2软件评测师考试范围考试科目1:软件工程与软件测试基础知识A计算机系统基础知识A.
16、1 计算机系统构成及硬件基础知识计算机系统的构成处理机基本输入输出设备存储系统A.2 操作系统基础知识操作系统的中断控制、进程管理、线程管理处理机管理、存储管理、设备管理、文件管理、作业管理网络操作系统和嵌入式操作系统基础知识操作系统的配置A.3 数据库基础知识数据库基本原理数据库管理系统的功能和特征数据库语言与编程A.4 中间件基础知识A.5 计算机网络基础知识网络分类、体系结构与网络协议常用网络设备Internet基础知识及其应用网络管理A.6 程序设计语言知识汇编、编译、解释系统的基础知识程序设计语言的基本成分(数据、运算、控制和传输、过程(函数)调用)面向对象程序设计C语言以及C+(或
17、Java)语言程序设计基础知识B标准化基础知识标准化的概念(标准化的意义、标准化的发展、标准化机构)标准的层次(国际标准、国家标准、行业标准、企业标准)标准的类别及生命周期C信息安全知识信息安全基本概念计算机病毒及防范网络入侵手段及防范加密与解密机制D信息化基础知识信息化相关概念与知识产权相关的法律、法规信息网络系统、信息应用系统、信息资源系统基础知识E软件工程知识E.1 软件工程基础软件工程概念需求分析软件系统设计软件组件设计软件编码软件测试软件维护E.2 软件开发方法及过程结构化开发方法面向对象开发方法瀑布模型快速原型模型螺旋模型E.3 软件质量管理软件质量及软件质量管理概念软件质量管理体
18、系软件质量管理的目标、内容、方法和技术E.4 软件过程管理软件过程管理概念软件过程改进软件能力成熟度模型E.5 软件配置管理软件配置管理的意义软件配置管理的过程、方法和技术E.6 软件开发风险基础知识风险管理风险防范及应对E.7 软件工程有关的标准软件工程术语计算机软件开发规范计算机软件产品开发文件编制指南计算机软件需求规范说明编制指南计算机软件测试文件编制规范计算机软件配置管理计划规范计算机软件质量保证计划规范数据流图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定F软件评测师职业素质要求软件评测师职业特点与岗位职责软件评测师行为准则与职业道德要求软件评测师的能力要求G软
19、件评测知识G.1 软件测试基本概念软件质量与软件测试软件测试定义软件测试目的软件测试原则软件测试对象G.2 软件测试过程模型V模型W模型H模型测试模型的使用G.3 软件测试类型单元测试、集成测试、系统测试确认测试、验收测试开发方测试、用户测试、第三方测试动态测试、静态测试白盒测试、黑盒测试、灰盒测试G.4 软件问题分类软件错误软件缺陷软件故障软件失效G.5 测试标准G.5.1 GB/T 16260.12003 软件工程 产品质量 第1部分:质量模型G.5.2 GB/T 18905.12002 软件工程 产品评价 第1部分:概述G.5.3 GB/T 18905.52002 软件工程 产品评价 第
20、5部分:评价者用的过程H软件评测现状与发展国内外现状软件评测发展趋势I专业英语正确阅读并理解相关领域的英文资料考试科目2:软件测试应用技术A软件生命周期测试策略A.1 设计阶段的评审需求评审设计评审测试计划与设计A.2 开发与运行阶段的测试单元测试集成测试系统(确认)测试验收测试B测试用例设计方法B.1 白盒测试设计白盒测试基本技术白盒测试方法B.2 黑盒测试用例设计测试用例设计方法测试用例的编写B.3 面向对象测试用例设计B.4 测试方法选择的策略黑盒测试方法选择策略白盒测试方法选择策略面向对象软件的测试策略C软件测试技术与应用C.1 软件自动化测试软件自动化测试基本概念选择自动化测试工具功
21、能自动化测试负载压力自动化测试C.2 面向对象软件的测试面向对象测试模型面向对象分析的测试面向对象设计的测试面向对象编程的测试面向对象的单元测试面向对象的集成测试面向对象的系统测试C.3 负载压力测试负载压力测试基本概念负载压力测试解决方案负载压力测试指标分析负载压力测试实施C.4 Web应用测试Web应用的测试策略Web应用设计测试Web应用开发测试Web应用运行测试C.5 网络测试网络系统全生命周期测试策略网络仿真技术网络性能测试网络应用测试C.6 安全测试测试内容测试策略测试方法C.7 兼容性测试硬件兼容性测试软件兼容性测试数据兼容性测试新旧系统数据迁移测试平台软件测试C.8 易用性测试
22、功能易用性测试用户界面测试C.9 文档测试文档测试的范围用户文档的内容用户文档测试的要点用户手册的测试在线帮助的测试D测试项目管理测试过程的特性与要求软件测试与配置管理测试的组织与人员测试文档软件测试风险分析软件测试的成本管理2.2国际认证(CAST)国际注册软件测试工程师 (CAST)认证CAST是针对软件测试人员,软件开发人员,系统分析人员以及工程类毕业生的从业级认证。CAST证明其对测试原理与实践的了解。它适合于刚毕业的有志于测试事业的工程类学生。2.2.1 CAST申请条件流程个人注册认证申请需提交:1、 联系领测国际,提交报名信息2、 交付培训费,领测国际进行考前培训(可选)3、 交
23、付考试费、确认考试科目和时间4、 发放本考试的电子学习资料(QAI官方英文学习资料)5、 参加QAI国际认证现场考试6、 试卷寄回美国判阅,等待考试结果备注:本考试有通过率,如考试不通过费用不予退回本考试为全英文闭卷考试,全球统一考试规则,证书全球通用 2.2.2 CAST申请资格要求全面掌握了所考内容。考试注册认证考试由全球Prometric考试中心管理(印度,中国,斯里兰卡,巴西除外)。印度,中国,斯里兰卡,巴西的笔试由软件认证部授权的相关考试中心管理,每年6次,中国地区考生可以在报名考试。注册认证人员必须通过一次笔试,笔试包括多选题,简答题与基于案例的问答题。考试测试应试人员的对知识及通
24、用知识体系规定的技能部分实践的把握。参加人员在申请后的头12个月内至少须参加一次考试。未获通过的可有两次补考试的机会,但须先在线提交补考申请,并支付所需费用。接下来的其他考试需要重复整个申请流程。 2.2.3 CAST认证价值(1)认证对个人的收益取得对个人卓越绩效的认可提升个人职业发展和自我认识实现个人收入目标增强个人对当前工作的自信度成为专业团体中的一员增加升迁机率 (2)认证对雇主的收益建立质量文化重视基层员工能力建设吸引高素质员工加强客户信赖提供不同角色的职业升迁通路实现个人能力与角色的匹配提高员工保留率关注员工职业教育训练提供员工雇用和升迁的基准 (3)认证对IT产业的关键效用建立世
25、界级的IT产业加强IT专业人士的能力建设提供行业能力评估和技能差距分析2.3国际认证(ISTQB)国际软件测试工程师认证(ISTQB)2.3.1 ISTQB认证简介istqb (international software testing qualifications board)是国际唯一权威的软件测试资质认证机构,现有包括美国、德国、英国、法国、日本、韩国、澳大利亚等超过40个成员国。中国于2006年5月26日在美国奥兰多举行的istqb2006年年会上得到正式批准,中国软件测试认证委员会 (cstqb) 成为istqb的正式成员。cstqb是istqb在中国的惟一授权机构,旨在推广ist
26、qb的认证体系,使中国软件测试体系与国际接轨;同时,配合国家行业主管部门,制定和颁布符合国际标准的测试行业规范;加强国际交流与合作,推动国际软件测试人才流动和技术交流等。2.3.2 ISTQB认证体系istqb-certified tester培训及认证体系分为三个级别:基础级:foundation level高级:advanced level专家级:expert level。培训者获得基础级证书后,可申请参加更高级别的培训和认证考试,并获得相应证书。至2008年10月,全球已有超过 100,000 IT专业人士持有istqb-certified tester的认证证书。软件测试已经成为it市场需求最大的职业,获得istqb资格认证成为迈向知名外企的全球通行证,据了解,ibm、惠普、西门子、诺基亚、三星等公司已经要求软件测试人员需要获得istqb认证。随着国内软件测试行业的快速发展,获得国际软件测试认证已经成为从事软件测试的“上岗证”。考试通过后,将由cstqb颁发 istqb-certified tester 软件测试 工程师认证资质证书(全球统一的英文证书)2.3.3ISTQB培训对象a、软件测试人员、测试管理人员、软件质量控制人员等b、计算机相关专业,具有1-2年测试经验及有志于从事软件测试的其他人员。