<返回列表
软件测试实训解决方案1
发布时间:2016-07-19
一、 项目概述
随着中国IT行业的发展和软件市场的成熟,对用户而言,产品交付标准变得更加严格。软件产品的质量管理已成为企业生存与发展的核心,软件测试早已成为软件开发的一个有机组成部分,在整个软件开发周期中占有相当大比重。国外优秀软件开发机构把40%的工作量花在软件测试上,软件测试费用占软件开发总费用的30%至50%,对于一些要求高可靠、高安全的软件,测试费用则相当于整个软件项目开发所有费用的3至5倍。
几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作,软件测试工程师的作用也逐渐被人们所认可。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。
为了适应IT产业对软件测试工程师岗位的迫切需求,培养高职高专学生的岗位操作技能,需要借助软件测试实训系统平台,选取典型软件产品测试应用场景,检验学生掌握软件产品测试岗位工作能力,激发高职高专学生对软件测试领域的学习和研究兴趣,提高其岗位能力和职业素养,为中国IT产业发展输送新鲜血液。
二、 软件测试实验室平台的建设目标
对于全国走在前列的高职院校而言,可以通过创建软件测试实验室达到专业共建、测试实训、测试工具搭载等多个不同的目标。我们一方面提供了可供教师和学生实际操作演练的实训系统,同时还提供了各种丰富多样的师资培训和专业共建资料。我们的测试实验室主要分为以下三个子系统:
在平台中嵌入了各种不同的测试工具。主要的产品选型会根据目前企业实际使用市场份额,选择主流的、开源的自动化测试工具,一方面可以降低我们测试实验室的采购成本,另一方面也是企业应用的主流方向。我们目前内嵌的自动化测试工具有:selenium,Jmeter和Junit这三个不同的测试工具平台。通过该平台,一方面提升软件测试专业的整体教学能力,对授课老师进行各种不同方向测试技术的培训,另一方面,学生通过对具体的实训平台的使用,训练学生各方面的测试能力。平台在整体测试技术的培养方面,不光是植入了不同类型的功能缺陷,而且还有相关的需求缺陷、设计缺陷、数据库缺陷等,我们希望老师不仅能给学生讲解各种不同的动态测试技术,而且可以讲解更深入的静态测试技术,因为对于企业而言,真正优秀的测试工程师是能够在早期介入,针对软件开发的全过程进行各种不同维度的测试,才能真正达到测试价值最大化。
我们力争通过该测试实验室平台的建立和使用,不断的提升教师授课和学生实践能力,不仅符合企业对软件人才需求的标准,而且有能力从事各种不同类型的高难度的软件测试工作,平台在系统的设计和实现方面要达到以下价值指标:
传统的软件测试价值模式和高效价值模式的对比 |
传统的软件测试价值模式特点 |
引发的问题 |
高效的软件测试价值模式 |
解决的问题 |
测试在后端才介入执行并发现问题 |
Bug发现较晚
项目风险和修复成本高 |
测试要在整个开发的全程进行参与并开展测试 |
Bug发现早
Bug修复成本最低 |
测试只能先从表面进行测试,后期才能发现深层次问题 |
测试效率较低 |
开发与测试紧密交流,从一开始就进行深入全面的测试 |
测试效率大大提高,测试人员对业务和设计的理解能力得到极大的改善 |
测试和开发的交流更多的只是bug的内容,没有对bug进行分析和分类 |
Bug沟通和修复效率底 |
测试与开发进行需求、设计、数据库、代码的全面沟通,测试人员从不同角度对bug进行分类 |
提高测试对缺陷的定位和分析能力。对缺陷进行分类,提高缺陷修复的效率 |
开发的整个过程中,开发人员只是被动的修改bug |
Bug的修复质量和效率较低 |
在开发的整个过程,开发人员主动关注软件质量 |
从根本上提升软件的质量水平 |
Bug只是被发现,被修复,并没有循环利用 |
Bug的价值没有得到体现 |
对缺陷进行定期的统计分析,提出相关缺陷预防方案 |
从最大程度上杜绝同类缺陷的再次发生 |
通过这个测试实验室平台,我们可以协助学校进行软件测试专业课程共建的工作。学校师资较强的是理论基础,教学经验非常丰富。需要补充的是项目实践和公司实际使用的测试技术。在我们的实训系统中提供了各种各样不同的项目供老师上课和学生实践使用。我们的实训系统推荐的测试流程也是基于企业级的标准设置的,如下图所示:
在实训系统中,为了满足各种不同的企业需求,根据目前软件测试行业的分类提供了各种不同类型的实战项目:web门户网站,电商类平台,手机应用平台,金融类系统,嵌入式系统等。不同的系统测试时使用的技术有一定的区别,我们的系统在设计过程中植入了很多不同行业不同类型的缺陷,通过实际的缺陷的演示和分析,老师和同学都能非常清楚明确的看到给中不同类型的缺陷对系统所造成的伤害,实训系统也可以公开部分源代码让老师和同学共同分析bug产生的原因,并针对缺陷进行定位和分析。主要支持的测试类型有以下几种不同的方向:
测试类型 |
测试策略 |
测试标准 |
功能测试 |
独立功能测试 |
- 、正确输入+正确操作测试
- 、错误输入+正常操作测试
- 、正确输入+异常操作测试
|
业务场景测试 |
按照不同用户角色进行各种不同业务场景的测试 |
效率测试 |
独立功能性能测试 |
针对常用功能或存在大量并发操作或数据量较大的功能进行性能测试,检查系统的响应时间和资源占用率 |
业务场景性能测试 |
针对常用业务场景进行业务场景性能测试,检查系统的响应时间和资源占用率 |
压力负载测试 |
在超负荷情况下,检查系统能够持续稳定运行多久不出现故障,或出现故障的概率。同时检查系统是否存在内存溢出问题 |
未来系统承压能力和稳定性测试 |
预估系统在未来3年后,处理业务的能力。或评估系统在3年的使用过程中,平均出现故障的概率 |
系统最大容量测试 |
评估系统能承受的最大并发用户数或系统能够处理的最大业务量 |
可靠性测试 |
容错性测试 |
系统使用过程中出现了相关的异常后,是否 |
成熟性测试 |
系统对于错误的输入或错误的操作是否进行相关的屏蔽和限制,从而减少出错可能性 |
易恢复性测试 |
系统出现故障后,是否能够及时进行备份并快速进行恢复 |
易用性测试 |
可用性测试 |
系统是否能够适应各种不同用户的操作使用要求,提供多样的操作方式和操作流程 |
可移植性测试 |
安装测试 |
系统安装卸载能否正常使用 |
配置测试 |
系统能够支持的最低配置和最优配置 |
可维护性测试 |
产品升级测试 |
系统升级后,新功能是否会影响以前系统的功能实现或性能效率等 |
新老版本兼容性测试 |
系统新老版本之间的兼容性,或可替代性 |
考虑到更真实的模拟实际项目测试过程,实训实验室平台提供的版本不止一个,我们会根据缺陷的不同的修复情况,建立多个不同的系统版本,这样可以提供给同学们进行不同版本的回归测试。
在线下我们还提供了额外的开发交流平台,即我们后期可以让系统的开发人员在bug管理的交流平台上和同学们就缺陷的问题进行沟通,提高学员对缺陷的理解和沟通能力。
为了更快速的让老师具备很强的项目实践指导能力,让同学能够快速上手开展项目的测试工作,平台提供的各种可供教学参考使用的项目文档,具体列表如下所示:
序号 |
成果物类型 |
成果物名称 |
成果物负责人 |
成果物参与人 |
1 |
计划类文档 |
《项目开发计划》 |
项目经理 |
测试经理、销售、客户方代表、公司管理层 |
2 |
开发类文档 |
《需求分析报告》 |
系统分析员 |
测试分析员、客户用户代表 |
3 |
开发类文档 |
《概要设计说明书》 |
架构师 |
架构测试工程师 |
4 |
开发类文档 |
《数据库设计说明书》 |
架构师 |
数据库测试工程师 |
5 |
开发类文档 |
《详细设计文档》 |
高级开发工程师 |
单元测试工程师 |
6 |
开发类文档 |
《软件源代码》 |
开发工程师 |
单元测试工程师 |
7 |
测试类文档 |
《项目验收准则》 |
项目经理、测试经理 |
客户方代表 |
8 |
计划类文档 |
《验收测试计划》 |
测试经理 |
项目经理、销售、客户方代表、公司管理层 |
9 |
测试类文档 |
《验收测试用例》 |
测试工程师 |
测试经理、开发经理 |
10 |
测试类文档 |
《验收测试报告》 |
测试经理 |
项目经理、销售、客户方代表、公司管理层 |
11 |
测试类文档 |
《测试报告》 |
测试经理 |
开发经理、公司管理层 |
12 |
光盘资料 |
《软件安装光盘》 |
项目经理 |
开发工程师、测试经理 |
13 |
用户类文档 |
《用户手册》 |
测试工程师 |
开发工程师 |
14 |
用户类文档 |
《操作手册》 |
测试工程师 |
开发工程师 |
15 |
用户类文档 |
《安装手册》 |
测试工程师 |
开发工程师 |
16 |
用户类文档 |
《帮助手册》 |
测试工程师 |
开发工程师 |
三、 测试实训系统平台
测试实训指导流程,有两套内容,一套是针对老师教学使用的,另一套是针对学生项目实践使用的。在老师教学使用的实训指导书中,包括以下几个部分:
1、实训系统教学流程
2、实训系统教学技术说明
3、实训系统
解决以下几个方面的问题:
不清楚企业的实际测试流程,如何快速熟悉软件的业务,一边进行项目实践,一边完成相关的测试成果物。老师可以根据学生成果物完成情况进行学生成果物的评价,对学生具备的技术进行等级的评定。评定的级别可以进行不同的划分,主要从工作量和工作质量两个方面进行评价,工作质量主要体现在成果物的规范性和成果物的难度及复杂度。
老师的答疑方式和渠道:学生的问题汇总提交到平台,公司的技术人员针对问题进行快速解答,如果是简单问题,就直接解答,如果是技术问题,就通过统一的师资培训进行问题的交流和解决。通过对老师的师资培养,提升教师的授课水平和项目实践指导能力。与企业人才更紧密的无缝接轨。测试实验室平台能够实现的测试技术包含以下几个方面:
四、 企业对软件测试人才的需求
软件企业目前而言对测试人才的需求主要有5大类,如下图所示。在实训平台中我们提供了各种不同特色和特点的系统,供老师教学和学生实践使用。通过各种不同类型实训系统的使用和学习,能够快速熟悉各种不同的测试技术,从而满足企业对测试人才的各种不同的需求。
而企业对测试工程师的能力定义可以参考下表进行考核:
测试工程师能力等级及培养策略 |
能力级 |
等级子集 |
入选要求 |
培养内容 |
评估方法 |
培养时间 |
培养参与人 |
A级 |
A级—职业素养 |
1、认真
2、勤奋
3、学习能力强 |
团队协作能力 |
工作绩效 |
3-6个月 |
HR |
A级—技术 |
了解测试基本理论和系统测试技术 |
1、测试基本理论
2、测试用例设计能力
3、缺陷报告写作能力 |
工作绩效 |
双A级—技术测试工程师 |
A级—管理 |
表达能力较好 |
具备管理3-5人团队的能力 |
成果物积累 |
双A级—管理人员 |
A级—行业 |
无 |
业务讲述能力 |
演讲和培训 |
双A级—行业测试工程师 |
AA级 |
双A级—职业素养 |
稳定,执行力强 |
公司文化 |
工作绩效 |
6-12个月 |
HR |
双A级-技术 |
一定的代码编写能力 |
自动化测试方向I |
1、技术考核
2、成果物积累 |
三A级—技术测试工程师及开发工程师 |
性能测试方向I |
白盒测试方向I |
双A级-管理 |
1、主动承担分外工作
2、乐于协助和分享
3、沟通能力强 |
具备管理5-10人团队的能力 |
1、成果物积累
2、部门绩效考核
3、部门人员成长考核 |
三A级—管理人员 |
双A级-行业 |
能完整的掌握一个软件产品的全部业务 |
测试需求分析能力I |
1、技术考核
2、成果物积累
3、业务培训能力考核 |
三A级—行业测试工程师 |
AAA级 |
三A级—职业素养 |
双A级—职业素养 |
管理能力 |
1、管理能力考虑
2、公司管理层考核 |
12-36个月 |
HR |
三A级-技术 |
自动化测试方向I |
自动化测试方向II |
1、技术考核
2、成果物积累
3、技术培训能力考核 |
四A级—首席技术测试工程师及开发工程师 |
性能测试方向I |
性能测试方向II |
白盒测试方向I |
白盒测试方向II |
一定的其他非功能测试能力 |
其他非功能测试方向I |
开发能力I级且测试能力I级或开发能力II级 |
测试开发能力I级 |
三A级-管理 |
1、管理过5人以上团队
2、协调能力强 |
具备管理10-50人团队的能力 |
1、成果物积累
2、部门绩效考核
3、部门人员成长考核 |
四A级—高级管理 |
三A级-行业 |
1、已具备测试需求分析能力I级
2、发现过一定比例的需求缺陷 |
测试需求分析能力II |
1、技术考核
2、成果物积累
3、业务培训能力考核
4、测试人员业务能力成长考核 |
四A级—行业测试首席工程师 |
AAAA级 |
四A级—职业素养 |
三A级—职业素养 |
四A级—职业素养 |
1、管理能力考虑
2、公司管理层考核 |
36-60个月 |
HR |
四A级-技术 |
自动化测试方向II |
自动化测试方向首席工程师 |
1、技术考核
2、成果物积累
3、技术培训能力考核
4、测试方向技术人员能力成长考核 |
五A级—技术测试专家工程师及高级开发工程师 |
性能测试方向II |
性能测试方向首席工程师 |
白盒测试方向II |
白盒测试方向首席工程师 |
其他非功能测试方向I |
其他非功能测试方向首席工程师 |
测试开发能力I |
测试开发II |
四A级-管理 |
1、管理过30人以上团队
2、在某一方面已经是首席工程师 |
具备管理50-100人团队的能力 |
1、成果物积累
2、部门绩效考核
3、部门人员成长考核
4、部门成本利润率考核 |
五A级—管理人员 |
四A级-行业 |
测试需求分析能力II |
需求开发能力 |
1、技术考核
2、成果物积累
3、业务培训能力考核
4、测试需求分析人员业务能力成长考核 |
五A级—行业测试专家 |
AAAAA级 |
五A级—职业素养 |
四A级—职业素养 |
公司高层管理者 |
1、管理能力考虑
2、公司管理层考核 |
60-120个月 |
HR |
五A级-技术 |
自动化测试方向首席工程师 |
自动化测试方向专家 |
1、技术考核
2、成果物积累
3、技术培训能力考核
4、测试方向首席工程师能力成长考核 |
资深技术专家团队 |
性能测试方向首席工程师 |
性能测试方向专家 |
白盒测试方向首席工程师 |
白盒测试方向专家 |
其他非功能测试方向首席工程师 |
其他非功能测试方向专家 |
测试开发I |
测试开发方向专家 |
五A级-管理 |
1、管理过50人以上团队
2、在某一方面已经成为技术级专家 |
具备管理100人以上团队的能力 |
1、成果物积累
2、部门绩效考核
3、部门成本利润率考核
4、公司成本利润率考核 |
资深管理专家团队 |
五A级-行业 |
需求开发能力 |
行业测试专家 |
1、技术考核
2、成果物积累
3、业务培训能力考核
4、高级测试需求分析人员业务能力成长考核 |
资深行业专家团队 |
测试平台通过对测试技术进行逐步的分解,让老师和同学在实践的过程中逐步具备相关的测试工作技能,成为企业炙手可热的软件测试人才,以下就是相关的功能测试分析实践指导示意图:
以下是数据库测试分解实践指导图:
以下是接口测试项目指导示意图:
以下是测试用例设计项目指导示意图:
五、 系统特色
教师可以按照系统推荐的项目实践流程以及相关的项目实践授课文档完成相关的授课任务。
本项目软件系统平台将达到主流Web应用软件的水平。
功能方面:系统满足业务逻辑各功能需求的要求。
易用性方面:通过使用主流的浏览器/服务器架构,保证用户使用本系统的易用性良好。
兼容性方面:通过系统设计以及兼容性框架设计,满足对主流浏览器兼容的要求。
安全性方面:系统对敏感信息(例如用户密码)进行相关加密。
UI界面方面:界面简洁明快,用户体验良好,提示友好,必要的变动操作有“确认”环节等。
六、 软件测试实训系统功能模块
1、 软件测试实训系统平台
软件测试实训平台是一个教学与训练一体的平台。平台由多个子系统组成,包括实训平台的管理员后台,实训平台的教师前台、实训平台的学生前台,并内嵌多款实训模块。管理员后台包含系统配置管理、教师管理、学生管理、资源管理等。教师前台提供实训文档资料管理、实训任务管理、作业管理、成绩管理等。学生前台包括我的任务、作业提交,Bug提交等。平台内嵌实训模块丰富,实训模块内置Bug满足主流测试方法的教学和训练要求,满足兼容性测试、安全性测试、性能测试等实训要求。主要的实训模块包括B/S结构资产管理系统(用于黑盒测试)、C/S结构资产管理系统(用于黑盒测试)、C/S结构软件安装测试(用于安装测试)、B/S结构模拟压力测试页面(用于压力测试)等。平台支持扩展添加实训模块,可随时满足未来不同行业的软件测试的需求。
1.1实训模块
本模块提供软件产品测试专业需要进行的主要实训项目。
1.1.1 C/S结构功能测试实训模块
提供针对C/S结构的实训模拟软件的功能测试。
根据产品功能说明书,编写测试用例提交到任务管理平台,对模拟测试软件进行产品功能点测试。包含用户登录、退出、修改密码,对业务数据的增加、删除、修改、查询等功能。
实训中,在模拟测试软件产品中发现的功能逻辑错误可在实训任务管理平台提交错误界面、类别、描述等附加信息到系统。
预留输入边界、有效性、密码、功能逻辑等要点的错误。
1.1.2 B/S结构功能测试实训模块
提供针对B/S结构的实训模拟软件的功能测试。
根据产品功能说明书,编写测试用例提交到任务管理平台,对模拟测试软件进行产品功能点测试。包含用户登录、退出、修改密码,对业务数据的增加、删除、修改、查询等功能。
实训中,在模拟测试软件产品中发现的功能逻辑错误可在实训任务管理平台提交错误界面、类别、描述等附加信息到系统。
预留输入边界、有效性、密码、功能逻辑等要点的错误。
1.1.3 性能测试实训模块
结合学校实际软件性能测试的教学内容,针对b/s的实训模拟软件提供系统性能测试功能。学生根据测试用例要求,使用测试工具进行压力和负载测试后,可把包括响应时间,并发数量等数据的测试报告提交到实训任务管理平台,教师批阅打分。
1.1.4 安全测试实训模块
针对b/s结构的实训安全测试模拟软件,本模块提供对软件系统安全设置与配置的训练功能。如用户简单密码攻击、用户越权等常见安全漏洞与攻击类型。
1.1.5 兼容性测试实训模块
b/s结构的实训软件模块,完成软件功能在不同浏览器下表现差异化测试。系统根据不同的浏览器给出不同的UI形式。预留主流浏览器IE7-10、Firefox、Chrome、360浏览器的不同UI形式和Javascript脚本的错误,允许用户截图提交错误到实训任务管理平台。
1.1.6 安装实训测试
提供c/s结构实训软件的安装介质,用户根据软件安装说明书要求的安装条件,在不同操作系统安装实训软件。验证安装过程是否正常,安装后是否能正常运行,安装后文件是否写到指定目录,安装过程中碰到的UI、顺序、文件权限等错误,可在实训任务管理平台,提交错误界面、类别、描述等附加信息。
安装介质可在实训任务管理平台下载。
1.1.7 测试环境建立实训模块
b/s结构的实训软件,提供运行环境搭建手册,手册清晰写明所需的软硬件极其网络环境等,如开发包、数据库、浏览器、Webserver等软件环境和参数配置说明。学生按照手册,自行搭建构造测试环境。测试环境的搭建结果,可以通过实训任务管理平台上传,允许教师批阅打分。
搭建环境所需的各种介质和手册文档,可在实训任务管理平台下载。
1.2 实训任务管理
本模块主要完成学生实训任务的下达,任务完成结果收集的功能,包括以下两个模块:
1.2.1 实训任务管理模块
教师添加、修改、删除、查询测试任务,指定测试任务的开放时间段、参加任务的学生范围等。
学生可查看测试任务,执行测试任务。
教师可统计参加本次测试任务的学生情况,辅助学生修改信息重置密码等。
1.2.2 实训任务结果模块
学生可提交测试过程中的测试用例,测试报告等文档,bug的类别、描述、建议等信息,可提交性能测试、环境搭建等测试环节的报告和数据。
教师可浏览详细测试数据,下载测试报告,对相关学生的测试活动打分,对测试数据的统计汇总,对学生成绩的统计汇总。
教师可查询历次测试任务的bug报告和学生成绩。