前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件测试项目总结主题范文,仅供参考,欢迎阅读并收藏。
关键词:嵌入式软件;GJB2725A;软件测试;过程模型
0 引言
随着信息化军事技术的不断深入,嵌入式软件已在航空武器装备软件中得到了广泛的应用,相应的,对其进行软件测试的要求也越来越重要。目前,大部分软件测试项目主要由事件驱动完成,存在流程不清晰、被动性高、效率低下等问题,影响了测试质量,其严重后果就是没有及时发现软件产品缺陷,导致产品失效。
总装备部于2001年了GJB2725A《测试实验室和校准实验室通用要求》[1],其目的就是为了指导软件测试活动,提高软件测试过程管控能力。因此提出了一种嵌入式软件测试过程模型,该模型能够依据军标,以流程驱动的方式对软件测试进行全过程管控,具有很好的工程应用价值,提高了研制效率。
1 嵌入式软件测试过程模型
在型号软件研制中,测试是一项复杂而繁琐的工作,是一门综合性学科,涉及技术、方法、资源以及管理等诸多方面[2],现有流行软件测试模型,如V模型、W模型和H模型[3],并不能完全适用于实际测试工作,而应由研制单位牵头,建立本地化的软件测试过程模型。
根据工程经验,将嵌入式软件测试过程划分为5个阶段,即测试需求分析、测试策划、测试设计与实现、测试执行和测试总结,每个阶段实现不同的测试活动,前一个阶段是后一个阶段的输入,后一个阶段是前一个阶段的验证,以流程为驱动力,逐步实现所有活动,通过不断地对流程再优化,实现模型的持续改进[4],逐步趋近实际工程应用。
1.1 测试需求分析
该阶段的输入为软件测评合同或软件研制任务书,以明确被测项目的范围、目标、约束及要求。
同时,确定需要完成的测试类型,如功能测试、性能测试、边界测试、接口测试、可靠性测试等,并明确每一个测试类型的具体要求,例如:
1)功能测试:每一个软件测试项输入的每一个正常等价类和异常等价类都至少被一个用例覆盖;
2)性能测试:对软件的精度、时间和适应性进行测试,以确认是否符合规定的性能要求;
3)接口测试:测试所有外部接口,每一个外部输入/输出接口应进行正常和异常情况测试。
确定测试类型后,可制定测试策略,包括白盒和黑盒测试,并对具有特殊要求的被测项进行具体描述。同时,确定测试充分性和终止要求,避免项目无法结束。
测试需求分析最重要的工作就是依据软件设计文档,确定测试的显性需求和隐形需求,并分解为测试项,为后续测试用例提供设计依据,本阶段的输出为《软件测试需求规格说明》。
1.2 测试策划
本阶段在测试需求分析的基础上,完成如下工作:
1)确定测试技术,如等价类划分法、边界值分析法和猜错法等;
2)明确定性评价准则,包括文档、设计和实现等方面;
3)数据采集要求,主要指被测软件、用例、缺陷和管理数据等;
4)制定软件测试环境,包括软/硬件环境,确保测试顺利开展;
5)明确测试人员的角色与职责,合理分工,确保进度;
6)根据要求进行风险分析,如技术、人员和资源风险,并制定措施。
本阶段的输出为《软件测试计划》。
1.3 测试设计与实现
本阶段的主要内容就是依据测试需求,设计测试用例,单元、部件测试采用“先功能后逻辑”的测试策略,即先满足基于功能的测试(功能测试覆盖100%),再满足基于逻辑的测试(语句、分支、调用覆盖率100%),配置项、系统测试采用基于功能的测试策略,测试用例主要包括名称、标识、初始化、前提和约束、输入、预期输出、通过准则、追踪关系、终止条件、用例类型和设计人员等信息,本阶段的输出为《软件测试说明》。
1.4 测试执行
本阶段的主要内容就是在实际测试环境下执行测试用例,记录测试结果,将期望结果与实测结果进行比对,如不一致,则进行深入分析,确认为软件缺陷,则填写软件问题报告单,本阶段的输出为《软件测试记录》和《软件问题报告单》。
1.5 测试总结
本阶段的主要内容就是依据测试结果,统计与分析测试数据,包括用例执行率、用例通过率、代码缺陷率、功能覆盖率等指标,进而对被测软件产品做出客观、公正、独立的评价,为改进软件产品质量提供支撑,本阶段的输出为《软件测试报告》。
2 模型应用
被测软件为某型嵌入式软件,要求完成软件测试,出具测试报告。
2.1 测试需求分析
根据测试要求,定义被测项目的范围、目标、约束及要求。
范围:单元、部件和配置项测试。
目标:单元测试完成语句、分支100%覆盖,部件测试完成调用100%覆盖,配置测试完成需求100%覆盖。
策略:单元、部件测试采用白盒测试,配置项测试采用黑盒测试。
测试需求:经分析,单元测试共有272个测试需求,部件测试共有36个测试需求,配置项测试共有16个测试需求,27个测试项。
2.2 测试策划
软件测试主要采用等价类划分法和边界值分析法进行测试。
2.3 测试设计与实现
依据软件设计文件设计测试用例,单元测试共设计1869个测试用例,部件测试共设计266个测试用例,配置项测试共设计168个测试用例。
2.4 测试执行
经测试,并对测试结果进行分析、确认,共计发现56个软件问题,提交设计进行优化改进。
2.5 测试总结
测试结果总结如表4所示。
测试用例均能100%覆盖测试需求,配置项测试的用例执行率为95%,其原因是有些硬件环境不能满足测试要求,如破坏性测试,单元和配置项测试的用例通过率均不到100%,说明这两种测试是发现软件缺陷的重要手段,通过对56个问题的归零处理,软件问题得到解决,提高了软件产品的质量。
3 总结
采用流程驱动式的嵌入式软件测试过程模型能够很好的解决测试工程化问题,通过实际运用,提高了测试管控能力,确保了测试充分性,发现了软件问题,提高了软件的质量和可靠性。
参考文献:
[1] 闫宇华,李谊,黄宁等.GJB 2725A-2001,测试实验室和校准实验室通用要求[S].北京:中国人民总装备部,2001.
[2] 金先仲,任宏光,李建军等.空空导弹研制系统工程管理[M].北京:国防工业出版社,2007.
关键词:市场需求;软件测试;课程体系
中图分类号:G64文献标识码:A文章编号:1009-3044(2012)14-3353-02
Course System Research of Software Testing Technology Based on Demand of Talent Market
ZHENG Hao, LIU Jian-fang
(Pingdingshan University, Pingdingshan 467000, China)
Abstract: This paper analyze the actual needs of talent market at first, and then set up the Curriculum system based on the software testing theory and technology. Paying more attention on the application, we want to construct course system to meet the market, which has deep foundation and strong skills. All of these promote the quality of the professional course.
Key words: Market requirement; software testing; Curriculum system
最近的年度软件测试行业专项调查报告显示,社会对软件测试人才的需求越来越大,可人才市场提供的人力资源、实际能力却不能满足这种需求。目前国内对测试人才职业化培养体系还不够充分,现行的传统教育体制重学历教育,轻职业技能培训,导致了软件测试人才告急。如何结合人才市场的实际需求,构建适合的课程培养体系,成为软件测试课程改革迫在眉睫的问题。
1中国软件测试行业的市场需求分析
在我国,软件产业的兴起和发展也就是这短短十几年。在前面的兴起和发展壮大阶段,一般的软件公司都是重开发轻测试,甚至存在把测试工作都放在用户那里去做的错误思想;追求眼前功能的实现,开发软件追求“短”、“平”、“快”。不太考虑性能和功能的优化。软件测试以往一直被中小IT企业所忽视,只有一些知名企业才有专门的软件测试人员。
现在,更多的国内企业认识到测试的重要性,但是由于国内测试人才的储备相对较少,据国家权威部门统计,中国软件人才缺口超过100万人,其中很大一部分为软件测试人才,缺口达到30~40万。但由于软件测试的重要性是近几年才被充分认识到的,高校教育和企业培养都还没有跟上,致使软件测试需求严重供不应求。
分析年度软件测试行业专项调查报告,目前对测试人员的素质和要求逐步提高,测试人员不仅应掌握相关计算机知识背景、软件工程基本知识、熟悉项目编程语言、熟悉项目技术架构及需求内容,而且要求工作有责任感、独立分析能力及团队精神等方面。其中“动手能力”和“实际经验”是软件企业在招聘软件测试人员时最为看重的,而这也恰恰是很多求职者的“软肋”。
2现有软件测试课程体系存在的问题
2007年,我校软件学院认证管理中心被授予计算机软件测试人才培养基地。软件学院软件工程专业以及软件技术专业均开设有软件测试相关课程。由于软件测试是一门实践性很强的课程,应采用精讲多练的原则开展教学,即学生通过大量的上机实践,循序渐进地提高自身的软件测试用例设计、开发、执行能力以及软件测试的管理能力。但在具体实践教学组织中,教师普遍感觉有许多不如意的地方,具体存在的问题有:
1)对实践课程的认识程度和重视程度不够,软件测试开展的不够彻底,测试过程中存在大量的不规范性;
2)缺乏合适的教材,同时教师缺乏相应的实战经验,导致教学上知识结构不合理,教学内容与具体应用脱节,尽管教师都能很好的讲解软件测试理论知识,但却由于缺乏合适的测试案例,没有将理论教学内容和最新相关技术结合,使得学生思维局限性大,并没有真正提高学生自主思考的能力和创造性思维。
3)教学方法和手段因循守旧,学生对软件测试职业存在一些片面的,甚至是错误的理解。
3基于人才市场需求的《软件测试技术》课程体系研究
基于人才市场需求的软件测试技术课程体系研究主要是分析目前人才市场对软件测试行业人才的岗位需求,掌握软件测试人才需要具备的职业素质,同时调查研究在学生对前续课程的掌握情况,以及目前所具备的相关职业素养的程度,计划从技术、沟通协调能力、经验和技能、综合素质能力等方面分别对岗位需求和学生水平展开调研。
3.1课程体系目标定位
我校软件工程专业的培养目标是培养适应社会发展需求,具有扎实的计算机知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的软件实践能力和创新精神,具备较强的软件项目的分析、设计、开发和维护能力,能够按照工程化的原则和方法从事软件开发和管理的应用型人才。
作为该专业的一门专业必修课,为构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系。将以软件技术为基础,测试理论与技术为核心,进行课程体系设置。理论教学目的是让学生深刻理解软件测试思想和基本理论;熟悉多种软件的测试方法、相关技术和系统地软件测试过程;会熟练编写测试计划,测试用例,测试报告,并熟悉几种自动化测试工具,从而从工程化角度提高和培养学生从事大型软件的测试技术和能力。
同时在实践环节,要求学生通过实验学习,培养与提高项目测试过程中采用的主要技术、设计测试用例、编写测试总结报告等能力,激发学生创新精神和创新能力,具体应达到下列基本要求。1)使学生掌握分析问题和解决问题的技巧,通过具体实验使学生掌握常用的黑盒测试技术、白盒测试技术、自动化测试工具。2)让学生了解测试流程,掌握测试总结报告的编写。通过实验使学生理解软件缺陷的描述,并能结合项目设计出较完善的测试用例。
3)了解Web系统的测试范围,使学生能在应用场景下联系实际和所学知识分析和解决问题,缩短理论和实践的距离。
3.2课程教学内容选取
结合课程体系目标定位,该课程在教学内容选取上主要是基于人才市场需求,厚基础、强技能、注重技术应用。总学时共72学时,其中理论和实践各36学时。结合课堂教学和实践教学,软件测试技术课程包括以下几部分:
1)软件测试基本理论及方法:包括软件测试的概念、测试的原则、用例的设计、各种测试方法及技巧,测试策略。同时通过实验掌握软件测试的步骤、方法及常见问题的处理。
2)测试流程及文档写作:软件测试流程、各阶段的文档编写;书写测试计、测试用例、测试报告、产品安装手册、产品使用手册。在实践环节,通过SATM系统让学生掌握软件测试流程各个阶段的相关技术、测试相关文档的写作技巧。
3)系统学习软件测试的各种工具,包括:自动测试工具WinRunner;压力测试工具LoadRunner;测试管理工具Testdirector;流程管理工具CVS;JAVA单元测试工具Junit。要求学生掌握自动化测试理论与方法,熟练使用常见测试工具。
4)软件过程控制与质量保证:软件质量的概念及软件质量管理的基本方法;测试项目的范围管理、人员组织结构、理解测试的配置管理、风险管理、成本管理等。
5)项目实训:引入具有真实企业背景的软件测试案例,充分考虑人才市场的需求,突出强调工学结合的重要性。通过实际项目掌握实际工作中开发和测试的流程,使用相关工具,完成各种测试目标,实现软件测试实践环节单项专业知识与整体技能综合运用的目标,提高测试能力和积累相关经验。
3.3课程教学方法设计
为构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系,在教学过程中,需要把技能训练和职业素质培养有机结合起来,注重学生综合能力的培养与提高,突出强调职业岗位针对性。提高学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力。在教学方法设计上做了一下改进:
1)突出工学结合:在讲解基本理论知识的基础上,引入具有真实背景的软件测试案例,并结合理论知识讲解将案例进行改造,使案例的分析应用与理论知识相呼应。目前市场上IT公司在招聘测试人员时按照所需技能的不同,将测试人员分为三个等级,分别为初级测试工程师、中级测试工程师和高级测试工程师。分析不同等级的要求,在教学过程中,主要针对初级和中级的技能要求循序渐近的展开教学。使通过此教学改进,既弥补了教师缺乏实战经验带来的不足,也使学生能较真实的接触到实际应用,从一定程度上实现了人才培养与市场需求的接轨。
2)强调团队合作:在教学过程中实施“1-7”模式,即在实验课教学中,采用团队合作的方式,分组完成各项任务。在实验初期由教师合理分配各团队成员间的任务,培养学生的基本岗位技能。经过两个实验任务的完成,每个团队挑出一名同学为项目组长,模拟公司招聘的形式,招聘4~6个组员组建自己的团队。后期实验任务的分工由团队组长负责项目进展、分工协作、制定测试计划等工作,其他小组成员则按要求完成自己的工作,如编写测试策略、设计测试用例、撰写测试报告等,教师主要起引导作用,充分发挥以学生为主体。为了全面培养学生,在不同的任务中,组员通过角色互换,充分发挥其沟通能力及综合技术能力。在学期末,通过团队评比,以提高平时成绩的形式对表现优秀的团队进行奖励。通过此教学手段,可以培养加强学生面试技巧、沟通能力、团队意识、竞争意识等职业素质的培养。
4结束语
基于人才市场需求的《软件测试技术》课程体系研究定位在对人才市场的实际需求分析之上,针对软件测试人才的特点要求,把行业、企业对人才的要求转化为教学中的具体目标。构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系。
参考文献:
[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2010.
[2]古乐.软件测试案例与实践教程[M].北京:清华大学出版社,2007.
[3]马民生,马友忠,任刚.以就业为导向的软件测试实践课课程改革[J].电脑知识与技术,2010(4):241-242.
[4]刘伟.独立学院软件测试课程的教学探索与实践[J].广西教育.2009(24):31-33.
关键词:软件测试;测试的有效性
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30467-03
Assessing the Validity of Software Testing
ZHANG Rui-yue, CHEN Lin
(Wuhan Digital Engineering Institute,Wuhan 430074,China)
Abstract: During the process of software testing , because of various of factor, usually cause some mistakes and invalidation, for the sake of improving testing process, making testing process to become more valid, need to carry on a complement to software testing process , that mean carrying on an evaluation to usefulness of software testing. This article introduce a general process of valuating usefulness of software testing, and put forward a series measuring index to measure of usefulness of software testing accurately.
Key words: software testing; validity of testing
1 引言
如同任何产品离不开质量检验一样,软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审定,在软件生存期中占据着非常突出的重要位置。在软件测试过程中,测试人员非常关心之前的测试过程有没有得到改善,因为如果没有,那么在下一次又将犯一样的错误,继续执行无效的测试。同时由于测试在整个项目研发过程中占用了相当一部分信息服务资源,因此,管理人员也常常在思考测试是否有效,是否值得投入那么多资金。因此,要改善测试过程、使测试过程变得更为有效,必须不断地评价测试结果。
2 评价软件测试有效性的工作流程
评价软件测试有效性的主要目的是评价测试人员的工作和使用评价后的结果改进测试过程。在软件测试中,往往会存在一些无效的方面,评价的目标就是识别这些无效和问题以便可以采取修复措施。
在测试的有效性评价工作中,存在两个关键的因素:一是评估的目标,目标是对度量过程的恰当指导,无效的目标会使整个评价过程无效;二是实现度量目标所需的信息类别,信息的收集需要建立专门的小组,整个评价过程也应指派专门的人员负责,因为如果没有专人负责评价过程,那么就无法确保进行正确的数据收集和评估过程。
图1给出了评价测试有效性的工作流程。本文主要围绕这个工作流程来进行详细的阐述。
3 有效性评价的输入
当所有的软件测试过程结束后,软件测试有效性评价工作就可以开始了,测试阶段的最终执行结果是它的入口条件,表1列出了输入所需的一部分信息类型,根据具体项目的不同,也会产生其它的输入。
4 有效性评价的执行过程
软件测试的有效性评价的执行过程包含七个方面的内容:确定评估目标、确定度量内容、制定度量责任、选择评估方法、确定所需事实、收集评估数据和评估测试有效性。
4.1 确定评估目标
定义目标,是为了使度量过程得到指导。前面提到,评价的目标就是为了识别测试无效的方面,以便采取修复措施。因此应该明确地确定评估执行的目标。在测试有效性评价中需要识别的内容包括以下六个方面:识别测试弱项、识别新测试工具的需要、评估项目测试、识别良好的测试实践、识别不好的测试实践和识别经济的测试实践。
4.2 确定度量内容
明确了评价目标之后,接下来的工作就是确定度量的内容,即确定达到度量目标所需信息的类别。应用系统的测试中,有五个方面是可度量的:涉及方、测试的程度、资源、有效性和评估。
4.3 制定度量责任
在测试评价过程中,应该指定负责收集和评估测试性能信息的小组和专门的负责人员,这时为了确保数据收集和评估过程发生的推动力。
4.4 选择评估方法
在执行测试评估的过程中有一些方法可供选择,在实际操作过程中,我们推荐采用度量指标方法,因为它一旦建立就很容易使用,并且可以证明它与有效和无效实践有密切关系。
因素间的某种关联或关系称为度量指标。度量指标的一个主要优势在于可以清晰地定义评估过程,并且对被评估人员来说也是透明的,同时它具有良好的针对性,可以容易地确定哪些测试变量需要调整以提高有效性、效率和/或测试过程的经济性。测试度量指标方法是指识别那些和好的或不好的测试有密切关系的标准。
4.5 确定所需事实
确定所需事实是指识别支持所选方法的必要证据。度量指标方法明确地识别了评估过程所需的数据类型。要使用本文后面描述的度量指标,所需确定的信息包括:变更的特征、被测试过程的费用、测试的费用、测试所发现的缺陷、阶段发现的缺陷、测试后发现的缺陷、按功能的测试费用、对系统的抱怨、缺陷的量化和恢复缺陷的量化。
4.6 收集评估数据
收集评估数据主要是指通过收集机制、存储机制以及选择和总结信息的方法,来建立用于存储所需评估数据的系统。
4.7 评估测试有效性
执行过程的最后一步是分析信息以得到关于系统测试有效性的结论。通过分析度量指标方法,相应的人员可以有针对性地采取措施,并将总结后的结果记录到测试评估表格中。度量指标方法通常会以量化的,表示测试过程好坏的形式给出评估。
下面(见表2)给出30个推荐使用的用于评价应用系统测试的度量指标。
5 有效性评价的检查过程
在检查过程中,需要建立一个质量控制检查单(见表3),其中的“是”回答表示好的测试实践;“否”回答表示需要额外的调查。注释列用于解释“否’回答并记录调查结果。当检查单的项不适用于测试情形时适用“N/A”列。
6 有效性评价的输出
测试有效性评价的最后输出是改进后的测试过程。在这个步骤中,主要是对测试结果进行仔细地分析,然后采取相应措施来修复所确认的薄弱环节,使用度量/行动的方法来改善测试过程,最后使得应用系统测试更加有效。(度量/行动的方法是指通过改变某种度量指标中的变量来度量另一种度量指标中变量的改变。如果能够说明通过增加执行的指令数目确实减少了操作的系统中的缺陷数目,那么可以认为该措施是预期的,并且应该推广。而如果执行指令的增加并没有减少产品投入运行之前的缺陷的数目,那么说明那些资源还没有得到有效的使用,应该停止该行动并且尝试其他措施。)
7 结束语
本文提出了评测软件测试有效性的一般工作流程,描述了度量测试的普遍目标,并为执行这些度量给出了推荐的标准,是软件测试的有效充,对实际软件测试的评价工作具有一定的指导意义。在项目软件测试过程结束后,IT组织应该结合各自的特点,通过在软件过程中积累的经验,运用本文提出的工作流程,逐步对软件测试过程进行改进,使软件测试更为有效的发挥它的积极作用。
参考文献:
[1] William E Lewis.软件测试与持续质量改进[M].陈少英,张河涛,译.北京:人民邮电出版社,2008.
关键词:案例教学;教学模式;软件测试
近几年来,软件测试人员的培育要求和计划已纳入高职教育范畴,具有软件测试的知识体系和工作技能已成为软件人才新的职业构成标准,《软件测试》这门课程成了各高职院校计算机软件专业的一门必修专业课。开设该课程的主要目的是使教学对象掌握软件测试的基本概念和基本理论,掌握基本测试技术和方法,并应用到实践;使教学对象具备软件测试的必备专业知识和实际工作能力,能基本承担起软件测试的工作任务,并为未来成长为软件测试工程师奠定必备的理论知识与实践基础。而目前的情况是,大部分院校软件测试课程的教学并没有较好地达到预期的要求和目的。
一、软件测试课程的传统教学
软件测试课程涉及的专业知识面较广,而且要求有良好的基础知识,如英语、数学等方面的知识。课堂教学内容繁杂,没有规律可循,更难以用一条主线相连、跳跃性大,从而导致学生对教材的理解不深,容易出现前面学、后面忘的情况。本课程具有很强的实践性、综合性和社会性,与工程实践联系紧密,知识更新的速度很快,涉及到有关学科的综合运用和团队合作精神等。因此,如何将所学的内容与实际工程联系起来,学会用所学的理论知识分析和解决实际工程问题,成为该课程教学成败的关键问题。
“粉笔+黑板”仍是目前许多课堂教学的主要方法,这种传统的方法,相对来说,教学环境一成不变,教学手段呆板枯燥,课时效率低。在教学活动中主要采用的是“教师讲,学生听;教师写,学生抄的满堂灌”的教学方法。在学习过程中,学生要不断巩固测试理论知识,加深对其理解和认识,完成所承担的测试项目中的各项工作任务,提交测试分析报告,通过项目培养和训练协同工作、沟通交流、角色转换等,形成实际工作能力。按照传统的教学方法教学,很难解决以上问题,也无法满足现代教学要求。
二、软件测试课程案例教学的重要性
软件测试课程在高职院校是一门本着“理论够用,实践为主”原则的重要专业基础课,但在实际操作中,如何把握这个理论够用的度,实践为主又如何展开,这都需要从实际的教学过程中不断地总结和调整。在软件测试这门课程中,针对高职高专学生基础差、学习积极性和主动性不强的特点,在教学过程中采用“案例驱动”、“从实践中领悟理论”,即案例教学是比较理想的模式。这种模式能够让学生在教学中动手动脑、直观体会实际的测试过程,寻找理论的根据和支点,从而达到预期的教学效果。
案例教学法源自医学教育的问题导向学习(Problem-based learning),强调以学习者为中心的合作学习,是一种跨学科领域的学习架构。此种方式较口述或文字叙述更能传达真实问题情境的复杂,给学生提供更接近真实的问题学习情境。案例教学法除强调问题的真实性外,也着重解决问题过程中学习者搜集、分析、整理资料,乃至提出解决方案的学习历程。
案例教学法的特点是突出实践性、较强的综合性、深刻的启发性、过程的动态性。案例教学法注重学生的智力开发及培养学生解决实际问题的能力。在本课程的教学活动中,采用案例教学能改变传统的灌输式的教学方法,充分调动学生的学习积极性,使学生的思维空间得到拓展,提高其学习兴趣;使学生学会用所学的理论知识分析和解决实际工程问题的方法,从而也改变其对理论学习的枯燥感和“读书无用”的观念。
三、软件测试课程案例教学的思路
1.案例的引入和设计
首先,要根据教学计划安排和教学进度的要求设计教学案例,为课堂的教学内容埋下伏笔。案例教学以案例为基本教学材料,将学习者引入工程实践的情境中。因此,教学案例应具有很强的实践性;要蕴涵工程实践的理论、原则与原理和方法;要具有新颖性、讲究时效性、背景要清晰等特征。其次,在完成理论课的讲解后,再将相关案例发给学生,给学生较充足的课外时间准备相关的材料。一般情况下可通过多媒体教学软件或服务器的形式发放给学生,要求他们在规定的时间内认真完成。一个好的测试案例应包含测试目的、特殊的硬件要求、特殊的软件要求、特定的配置、执行测试的描述、测试的预期结果或成功条件。另外,还要考虑如何将本堂课的新知识点贯穿其中。
2.案例分析讨论
案例分析讨论是案例教学中的重要环节。学生通过分析案例,可以知道本节课要掌握的理论知识、操作内容、注意事项、所要达到的教学要求和目的、在课后应完成哪些报告或查找哪些资料等。案例分析的过程是学生与学生或教师与学生之间讨论交流的过程,教师要善于在讨论过程中启发引导学生,培养他们思考问题的敏捷性和洞察力,让他们学会用理论知识来指导实践,遇到关键节点时能够急中生智,稳中求胜。
在案例教学中,学生的学习在讨论与争辩中进行,学生充当主角,是主动的学习者,教师的角色是指导者和推动者,其作用是领导案例教学的全过程。课堂上教师要组织案例讨论,不仅要引导学生去思考、去争辩、做出决策和选择,解决案例中的特定问题,进而从案例中获得某种感悟,而且要引导学生探寻特定案例情景复杂性的过程及其背后隐含的各种因素和发展变化的多种可能性。
3.案例实验操作
教学案例的主要内容是与教学内容为依据相匹配的,要有较强的可操作性。下面是一个教学内容与案例的匹配图示:
从图1可以看出,在设计实验案例时,既要有简单的基础性实验案例,又要有综合实验甚至是课程设计。简单的基础性实验案例主要是让学生熟悉基本的软件测试方法,综合性的实验案例主要是让学生增强实际操作能力,增加软件项目测试的综合经验。通过一个个综合性的案例,特别是较大型的软件项目测试实验,让学生在实验的每一个步骤中理解软件测试技术和各种具体的测试方法。同时,学生可以通过对案例的操作和理解,进一步了解熟悉软件测试工作的完整流程,包括文档的编写与收集,都是一个很好的锻炼。这样的教学在不知不觉中就迈出了“工学结合”的第一步,与高职教育需求完全吻合。
4.案例归纳总结
案例讨论后要做简短的归纳和总结,从案例讨论中得出一定的结论,为后续的课堂理论教学提供准备。教师在总结过程中,要讲明案例中的关键节点,以及在实验操作时存在的长处或不足,但不宜对错误的观点简单地否定,以免挫伤学生的积极性。实验结果可以多元化。在总结中,要揭示出案例中包含的理论,强化以前讨论的内容,提示后续案例,达到突出教学重点,回归教学的目的。
四、其他丰富的教学方法和手段
经过实践中的不断摸索和总结,发现《软件测试》课程在教学过程中要增强师生互动,提高教学效果,达到预期的教学要求,在教学方法和手段上还可以采取以下几种形式的结合。
(1)课堂进机房,避免纯理论的“PPT滚动”,注重课堂里的师生互动。(2)FLASH动画分解操作内容,教师录相演示操作流程。(3)分组合作讨论,责任到人,各尽其能。(4)优秀组员示范,荣誉物质兼并鼓励。(5)定时地带学生了解软件测试企业“完整的工作过程”,让他们从实践中得到熏陶。(6)“一带一”订单式的互助。让基础好的学生帮助基础不好的学生,督促完成相应的教学内容。(7)开设课外兴趣小组,为基础兴趣较好的学生提供更多更好的实践环境。
五、结语
在高职院校,对软件测试这门课程,我们结合自己的学生不断地进行探索和实践,进行了一系列的教改与创新,受到学生及领导的好评。该教法以企业的要求为导向,注重学生动手能力的提高,注重培养学生主动思考问题、解决问题的能力,同时又运用现代教育学理论,在教学过程中采取案例教学与项目教学等多种教学方法和手段来实现“工学结合”。通过学生座谈会了解到,大多数学生认为这种多样化的教学,使他们对课本知识的理解更加深入,主动思考问题的能力有了一定的提高,动手能力得到进一步加强,“软件测试”的教学质量和教学效果有了较明显的好转。
参考文献:
[1] 张尚仁.古希腊哲学家的故事[M].北京:中国青年出版社,1984.
[2] 李亚.“软件测试”教学探索与实践[J].Computer Education,2008,(6).
[3] 贺平.软件测试课程开发[J].计算机教育,2006,(12).
[4] Ron Patton.Software Testing Second Edition(第2版)[M].北京:机械工业出版社,2006.
[5] 钟元生.软件测试实践教学特色的构建实践[J].电化教育研究,2006,162(10):62-65.
关键词:高等职业教育;课程设计;校企合作;软件测试
DOIDOI:10.11907/rjdk.162329
中图分类号:G434
文献标识码:A文章编号:1672-7800(2016)012-0197-03
0 引言
随着软件技术在社会各领域的广泛应用,人们开始越来越关注软件产品质量,软件测试作为软件质量保证的重要途径也因此受到行业领域的关注与重视,软件测试岗位的就业前景也变得越来越好。在《国务院关于加快发展现代职业教育的决定》中,提出“深化产教融合、校企合作”[1]。随着技术的发展、产业结构调整的不断加快,持久深入的校企合作已经逐渐成为高职院校课程开发质量的关键要素之一。
《软件测试基础》课程大多在高职院校的计算机类专业中开设,但是普遍存在着课程内容更新慢,教学方法、手段陈旧,课程评价考核单一的问题,导致学生学习兴趣不大,学习效果不佳。该课程在苏州健雄职业技术学院是软件技术专业的一门专业基础课,该院与上海博为峰软件技术股份有限公司、上海泽众软件科技有限公司等从事软件测试的IT企业紧密合作,对课程进行了一系列建设和改革,培养了一大批软件测试人才,受到企业的一致认可。
1 以工作过程为导向的课程设计
课程组成员结合计算机等级考试、计算机软件专业技术资格考试和国际软件测试资质认证(ISTQB)的考试大纲,以及行业、企业对软件测试员的人才需求,与企业专家共同确定本课程的目标为:使学生了解软件测试的发展前景,掌握测试的基础知识,了解测试用例的概念、意义;能够搭建测试环境,掌握常用的黑盒、白盒用例设计方法,能够进行简单的手动功能测试并撰写测试报告与缺陷报告;了解常用的自动化测试工具、性能测试工具,理解测试工具的原理,了解测试管理的概念与流程等。
本课程以软件测试工程师的工作过程为导向,按照软件技术专业培养目标与高职学生的特点,将测试基础知识、相关技术方法、测试管理贯穿在整个测试流程中,从而构建测试各阶段所需的知识与技能。在课程中以“虚拟公司”作为组织形式,在运作过程中充分体现职业教育行为导向和职业性原则。行为导向,即创造师生互动的仿真情境,使学生通过自主协作式学习方式,反复操练,从而形成符合企业要求的行为方式和职业能力。职业性原则,即要求实训目标和就业目标高度一致[2]。学院与企业共建实训平台,通过具体工程项目及案例素材,使用测试管理工具从测试需求建起,测试模块划分、测试用例设计、测试用例执行、缺陷管理,加强学生对测试管理工具的使用。
2 以工作项目为载体的学习情境创设
《软件测试基础》课程最好在第三学期开设,因为这时学生对软件行业已有一定了解,并已具备初步的编程经验,课程共计64学时。依据软件测试的工作过程可以将课程划分为6个学习情境,共15个工作任务,具体如表 1所示。
学习情境1中主要让学生认识缺陷并知道缺陷产生的原因,掌握软件测试的定义、目的、分类和原则,熟悉V模型、W模型、H模型等软件测试的常见模型;熟练掌握软件质量模型的分类和各个评价指标,并明确软件质量与软件测试之间的关系;会查询互联网中的招聘信息,分析软件测试工程师的岗位职责及发展路径,并尽早做好职业生涯规划。
学习情境2中让学生能够明确软件测试的依据,并阅读需求规格说明书,理解测试需求的概念,会对测试需求进行挖掘;能够理解测试计划的重要性,知道测试计划的一般组成要素。
学习情境3中让学生能够理解黑盒测试、白盒测试、灰盒测试的基本概念及它们之间的区别与联系;能够灵活地运用黑盒测试的常用方法,如等价类划分、边界值、决策表、因果图、场景法、正交表等来设计测试用例;能够灵活地运用白盒测试的常用方法,如逻辑覆盖法、基本路径法等设计测试用例。
学习情境4中让学生学会测试环境的搭建,如在虚拟机中部署PHP、JSP、.NET等应用程序;理解单元测试、集成测试、系统测试、验收测试的概念及基本流程,熟悉集成测试的策略,能够使用JUnit 等工具来开展单元测试;能够掌握缺陷的概念,会正确记录缺陷,掌握缺陷报告的基本格式与内容。
学习情境5中要让学生理解测试总结的意义和重要性,并了解测试总结报告的格式与内容。
学习情境6中能让学生掌握手动测试与自动化测试的区别,了解自动化测试、性能测试等工具的原理,初步掌握脚本的录制和参数的设定,为后续课程的学习奠定基础。
3 “互联网+教育”方式的课程改革深化
3.1 利用雨课堂平台实施线上线下混合教学
合理运用互联网新技术,由传统教学向线上线下混合式教学方式转变,打破以往学生学习时空的限制,按需学习,让教育教学资源得到最大化共享。由于本课程概念较多,课程学习后还需通过工信部的考证,线上教学教师通过清华大学研制的雨课堂平台将PPT课件、微课、测试等资料上传至云空间,并推送到学生的移动终端上,督促学生做好预习、复习工作,学生所有的学习行为数据均被自动完整采集,有助于量化了解学生学习效果并把握学生学习轨迹[3];传统的线下面授,则重点解决学生的疑难困惑问题,提高教学效率。
3.2 改进教学方法提高学生学习兴趣
自我介绍是向别人展示自己的重要途径,是与他人进行沟通、增进了解、建立联系的一种最基本、最常见的方式,是人与人进行沟通的出发点。在面试软件测试工程师时该如何进行自我介绍呢?本文是小编整理的软件测试工程师面试英文自我介绍范文以及关于软件测试工程师面试的知识,仅供参考。
软件测试工程师面试英文自我介绍范文
软件测试工程师面试英文自我介绍范文1I’m Cheers.Lee, I’m twenty-six year old, I majored in E-business and with a bachelor degree.I’m single.And I love software testing, as the software quality is vital to the company’s customer, it also could improve the company’s image, so quality is the best policy.We must devote all my energy to assure the software quality.
The position which I’ve come to apply is senior software testing engineer.I have three years work experience, one year and a half of function testing experience and one year of performance and automation testing experience.I have been reading up on software testing, especially on performance testing and automation testing.I’m quite familiar with performance testing tool LoadRunner, and familiar with automation testing tool QTP.I’m good at developing performance testing script base on C language in web system, and also have good skills in develop QTP script.
As we all know that software performance has become more and more important, while thousands of the users log in the system or visit the website simultaneously, the problem may occurred, the system crash or the server deny to provide the service to the user, so the performance testing need to be done before the software delivered to our customers.
We also benefit from the automation testing.There is always a lot of function testing or regression testing need us to finish in a short time.But we do not have enough time and sufficient human resource to complete it, how should we do? So the automation testing is the best solution.It cut down the costs, improve the work efficiency, save our time and energy.Its advantage is not merely as so.
软件测试工程师面试英文自我介绍范文2Good morning, ladies and gentlemen! It is really my honor to have this opportunity for an interview.I hope I can make a good performance today.I'm confident that I can succeed.Now I will introduce myself briefly.I am 26 years old, born in Shandong province.I graduated from Qingdao University.My major is electronics.And I got my bachelor degree after my graduation in the year of 2003.I spent most of my time on study, and I’ve passed CET-6 during my university.And I’ve acquired basic knowledge of my major.It is my long cherished dream to be an engineer and I am eager to get an opportunity to fully play my ability.
In July 2003, I began working for a small private company as a technical support engineer in Qingdao city.Because there was no more chance for me to give full play to my talent, so I decided to change my job.And in August 2004, I left for Beijing and worked for a foreign enterprise as an automation software test engineer.Because I want to change my working environment, I'd like to find a job which is more challenging.Moreover,Motorola is a global company, so I feel I can gain a lot from working in this kind of company.That is the reason why I come here to compete for this position.I think I'm a good team player and a person of great honesty to others.Also,I am able to work under great pressure.I am confident that I am qualified for the post of engineer in your company.
That’s all.Thank you for giving me the chance.
软件测试工程师面试技巧核心提示:第一个问题:自我介绍(心理学首因效应告诉我们第一印象非常重要),自我介绍最重要的是能够在面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。其实面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您好,我叫XXX,很高兴能获得这次...
第一个问题:自我介绍(心理学首因效应告诉我们第一印象非常重要),自我介绍最重要的是能够在面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。其实面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您好,我叫XXX,很高兴能获得这次面试机会,今天来面试是想证明自己是最合适的人选,另一个方面是获得您的认可,结合我过去的工作和学习经历,我自信我能符合咱们公司的认可,接下来您看是我继续介绍我做过的项目,还是您问您关心的问题?”
第二个问题:项目介绍(项目经验直接决定一个人能否胜任一份工作,企业更应该看重一个人解决问题的思路和具体能力),项目介绍部分最重要的思路是应该先整体后局部,介绍整体的时候要有量化的数据(从项目度量的五大维度:规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本),然后是整体的测试流程,然后再是角色与职责,接下来是项目中自己的特色,比如做得最好的是、遇到最大的困难时、最差的是,最后是心得体会。
第三类问题:数据库方面知识,最基本的要求是数据库记录的增删改查(insert、delete、update、select),表结构的增删改查(create、drop、alter、describe)、存储过程、触发器等。
第四类问题:linux操作系统相关,最基本的目标是熟悉常见的50个命令,比如find命令(-name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环境。比如LAMP环境搭建。
第五类问题:缺陷相关知识,最基本的是缺陷跟踪的流程(流程的基本要素),整体的流程,最好能在纸上给面试官画出来(尤其是男面试官,从男人好色的角度来看,写得很清楚很重要),缺陷单的属性,至少能列出20个属性,每个属性的意义,如何描述好缺陷单,缺陷单描述的5C原则,比如缺陷重现步骤应该complete.如何描述一个你认为的最经典的bug单。
第六类问题:用例相关,最基本的包括用例的格式要素,用例设计工程方法论,每个方法要求(方法的背景,操作步骤,优缺点、适应范围,与其他用例方法如何配合),在项目中如何利用测试用例设计工程方法。如何评价、评审测试用例,评审从哪些维度?要设计好测试用例需要哪些方面的知识结构,比如技术、业务、方法。
第七类问题:软件测试流程,系统测试相关规范和标准的流程:熟悉产品/项目,需求评审,测试需求,测试计划,测试方案,测试用例,预测试,第一轮正式测试、第二轮回归测试、第三轮测试,测试报告,测试总结,测试指南。
第八类问题,网络相关,最基本的网络基础知识,比如TCP/IP协议。
第九类问题,测试工具,包括三个大的类型,第一类是性能测试工具、自动化测试工具、测试管理类工具。最起码的要求是熟悉工具的使用。
第十类问题,给你一个软件,比如QQ、QQ斗地主,你如何去测试,这类问题基本的思路是,从软件质量模型、测试工具、测试方法、测试流程、探索式测试等角度先宏观解决,然后再具体微观讲解用例如何设计等。
第十一类问题,一个优秀/卓越的软件测试工程师应该具备哪些能力与素质,素质方面包括沟通、五心工程师、追求完美等
第十二类问题,最后一个问题,面试官一般会问,您还有什么想问的吗?还有什么想了解的吗?总体上来说最重要的是留下一个好的近因效应,就好比相亲的时候,分手离开的时候,留下好的最后的印象,基本的思路应该分三种情况,第一种是面试官对你满意,自己也感觉不错的情况下,先表示感谢,然后积极主动的问题,比如,非常感谢您给的这次机会,但是我还是想问,如果我有下一轮面试,我想知道知道是什么时候,我应该再做哪些方面的准备。第二种情况是面试官和自己感觉都一般般,感觉自己是鸡肋,这个时候说不说很重要,基本的套路是,非常感谢面试官给的这个机会,坦白地说我对自己今天的面试表现不是非常满意,还可以表现得更好,但是如果我还是非常想得到这个机会,您能否给我一些建议。第三种情况是面试情况非常糟糕,这种情况下,很少有人能说出感谢,但这恰恰体现一个人的风度。基本的思路是,不管怎么样,还是得感谢您给的机会,让我自己认识到自己的不足,坦白地说我离这个岗位的要求还有些距离,但是我还是想知道,如果将来我还想来咱们公司面试,您能否给点具体建议。
总结,面试是一个相亲的过程,相亲的成败取决于很多要素,但是好的、充分地准备,能够让我们更加从容地和主动的去面对压力与挑战,而不是简单地把自己变成超市里面的菜,供人挑选。
软件测试工程师面试经验总结首先说明我算上找实习的时候的面试总共就经历了不到5次,没有多少经验,就在网上和书上摘录了些我认为比较重要的,分享给大家,希望各位都能找到一份适合自己的好工作。
1.笔试题
对于笔试,有的公司笔试题是不区分开发和测试岗位的,测试人员除了要掌握好测试的基本知识外最好也是有编程基础,具有尽量多的计算机的知识,像操作系统的基本知识(线程等),数据库的基本操作(增删改查,关联查询,授予权限等),数据结构的知识(像二叉树的前序、中序、后序查询)。
2.面试
如果在笔试中没有考测试的基本知识,那在面试中是肯定要被问到的。面试前一定要做好准备,可以在网上搜一下关于这个公司的笔试题和面试题,以供参考。如果时间充裕可以找一本自己能看的进去的讲软件测试的书,认真的有侧重点的看看。软件测试的几个主要的阶段,不一定死记硬背能用自己的话说出来也可以或者能举例说明,那几个主要的白盒和黑盒的测试方法能熟练的应用到实际的例子中,等价类划分和边界值分析经常被问到。
每个公司做的项目都不一样,最好先了解下要应聘的那家公司主要是做哪方面的,比如对美外包的公司就要求英语水平,能看懂英文文档甚至能同外国人交流,最好能提前先看些英语的文章,准备下英文的自我介绍,临时提高下英语水平。
我被问到的面试题(答案仅供参考)
1.为什么不考研?
2.想要一份什么样的工作
3.做软件测试人员需要具备什么样的职业素质
(1) 专业技能,包括测试的技能和开发的技能
(2) 积极的态度
(3) 良好的沟通能力
(4) 细心
(5) 耐心
(6) 团队意识
4.对他们公司的了解
5.再就是些工作地点能否接受,有没有男朋友之类的基本问题
以下是针对实习项目问的问题(答案仅供参考)
6.缺陷报告有几个状态,都包括哪些内容
状态:新建,打开,修复,关闭,重复的bug,无效的bug,被拒绝的bug,其他 内容::标题、模块名称、项目名称、测试环境、重现步骤、期望结果、实际结果、严重级、优先级、发现人、接收人和附件(截图,说明等)。
7.有一个文本框,只能输入0-5个字母的组合,如何进行测试
从字符串的长度考虑,按照边界值方法设计测试用例
从字符串的长度考虑,按照边界值方法设计测试用例
从字符串的组成内容考虑,按照等价类划分方法设计测试用例
8.简单的说一下性能测试和压力测试
9.写过自动化测试的脚本吗
10.我实习的项目是一个金融的网站,技术的面试官问我,商品的价格是左对齐还是右
对齐(对于这个问题我也不知道为啥会被问到,有什么具体的含义,猜想可能是判断我的项目经验是否真实)
下面是我网上摘录的一些可能被问到的面试题
1.您认为做好测试用例设计工作的关键是什么?
答:白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
2.在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
3.谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面
4.什么是软件测试。
5.Alpha
测试与beta 测试的区别。
6.测试结束的标准是什么?
7.测试项目:杯子
需求测试:查看杯子使用说明书
界面测试:查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
国际化:杯子上的图案有没有触犯到某个国家或宗教的禁忌
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损
震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
测试数据:测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法
期望输出:该期望输出需查阅国标、行标以及使用用户的需求
说明书测试: 检查说明书书写准确性
给大家提三个产品:1.手机 2.电饭锅 3.电梯
8.图书(图书号,图书名,作者编号,出版社,出版日期)
作者(作者姓名,作者编号,年龄,性别)
用SQL语句查询年龄小于平均年龄的作者姓名、图书名,出版社。
9.软件测试分为几个阶段
各阶段的测试策略和要求是什么
10.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
11.请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程
12.您认为做好测试计划工作的关键是什么?
13.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
14.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)
15.为什么要在一个团队中开展软件测试工作?
答:因为没有经过测试的软件很难在之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将时,从测试报告中得出软件的质量情况。
软件测试工程师-个人简历个 人 简 历
基本信息:
姓 名:
出生年月:1991年7月
工作年限:2年
婚姻状态:未婚
电子邮箱: 性 别:男 毕业学校:广东建华学院 学 历:大专 专 业:计算机专业 手 机:
专业技能:
1、熟悉软件测试理论,软件测试流程,编写测试用例等;
2、熟练应用黑盒测试的方法,如边界值法、等价类法、场景法等;
3、掌握自动化测试工具QTP、性能测试工具LoadRunner的基本使用,如录制脚本,参数化设置,脚本优化等;
4、熟悉软件测试的管理工具,如BugFree
缺陷管理工具、SVN版本控制、MindManager 思 维导图等工具的使用;
5、熟悉Oracle和MySQL数据库的基本操作,如增、删、查、该等命令的使用;
6、熟悉Linux操作系统的基本操作;
7、对C语言有一定的了解,如9条基本语句、数组、指针等等的使用;
项目经验:
项目一
项目名称: 奔腾出租车
运行环境: Linux + MySQL + Apache
项目概述: 本系统是一套功能全面的出租车管理系统,通过该软件可以让出租车公司内部及时准确地采集各种数据信息,处理高速化和网络办公自动化。实现对出租车 公司司机的信息记录,操作,出租车管理,提供精确查询等多种查询方式。主 要功能模块有:首页、基本信息设置、任务管理、统计图表、辅助工具、帮助 菜单、用户信息管理等。通过规范化管理来掌握车辆信息,处理车辆调度,将 很大程度上解决出租车公司在工作上的管理难度,让车管理更上一个台阶。 责任描述: 1、根据项目需求文档进行需求分析,写出需求点;
2、针对责任模块编写有效的测试用例;
3、搭建测试环境,保证测试出的数据真实可靠;
4、执行测试用例,用BugFree提交Bug并跟踪其状态;
5、进行回归测试;
6、编写测试报告。
项目心得: 对软件测试有了更深层的理解,当编写用例时,要尝试新的技术,新的思维,往往Bug就出现在意想不到的地方;明白了回归测试的重要性,因为偶尔会有些模块在上一版本没有出现问题,但在修复某个Bug时却出问题了,所以测试时需要考虑全局,不要只局限于某个小模块。
项目二:
项目名称: 金华酒店管理系统
运行环境: Linux + MySQL + Apache +PHP
项目概述: 金华酒店管理系统主要应用于中小型酒店,通过该软件可以方便快捷的管理酒店,使酒店的工作质量和效率提高。软件采用先进的计算机网络通信技术,改变了酒店业务模式,大大提高了工作效率。本系统的功能包括房间状况管理、添加房间信息、维修管理、退房管理、客户入住等,是为了不让人工繁琐去操作,而设计的一个管理系统。
责任描述: 1、测试软件是否达到需求规格书的要求,包括:各个功能点是否以实现,业务流程是否正确;
2、编写测试用例,如用边界值法、等价法、错误推断法等方法编写;
3、搭建测试环境(按照说明书搭建);
4、执行测试用例,用BugFree提交Bug并跟踪其状态。
项目心得: 测试的规范化是及其重要的。测试时要注意Bug的群集现象,因为往往百分之八十的问题都发生在百分之二十的模块当中。
项目三:
项目名称: 科达薪水助手
运行环境: Linux + MySQL + Apache +PHP
项目概述: 本系统基于B/S架构,主要用来支持企业薪酬管理,方便企业管理员工信息,统计日常支出,员工薪酬管理等等。主要功能模块有员工信息管理、部门管理、工资管理、收支统计、系统设置、辅助工具、薪酬报表等。本系统的特色就是把员工的信息和薪酬等信息整合在一起,更方便快捷的操作,一套好的工资管理系统,有助于建立科学有效的薪酬体系。
责任描述: 1、编写测试用例;
2、执行测试用例,用BugFree工具提交Bug,并跟踪其状态。
项目心得: 对黑盒测试的各种方法的应用更加得心应手了。
工作经历:
2012/08—2021/01 创拓达科技有限公司 软件测试工程师 自我评价:
本人性格随和,适应能力强,有较强的学习能力,能独立分析和解决问题。能快速融 入到团队中去,工作积极上进,对于领导分配的任务认真完成。
软件测试工程师面试英文自我介绍范文的人还看了:
1.软件工程师面试自我介绍范文
2.应届生软件测试面试自我介绍范文
3.软件测试面试自我介绍范文
4.软件测试面试自我介绍
5.软件测试工作面试自我介绍范文
6.软件测试工程师简历自我评价
7.软件测试工程师的自我评价
8.计算机专业英文自我介绍范文
关键词:软件测试;误区;黑盒测试;测试用例
随着软件产业的发展、软件规模的逐步扩大,软件的质量问题日渐突显,软件测试与软件质量监控也越来越受到软件行业的重视。各类招聘信息中对软件测试类人才的需求猛增,很多人由此而选择了软件测试,但其中不少人始终未能拿到软件测试行业的“入场券”,原因何在?软件测试行业是一个高速发展的新兴行业,尽管当下认知程度不高,但有着广阔的发展前景。如何才能更有效地进入软件测试领域是本文的研究重点所在。
1 软件测试的误区
1.1 误区一:软件开发完成后才开始进行软件测试。 软件从开始计划、编制、测试,一直到公开使用的过程中都可能存在软件缺陷。事实证明,需求规格说明书是导致软件缺陷的最大原因。随着时间的推移,修复软件缺陷的费用呈几何级数增长。
1.2 误区二:软件后如果发现质量问题,那是软件测试人员的错。软件测试只能确认软件存在错误,不能保证软件没有错误。软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程设计出来的。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。
1.3 误区三:软件测试要求不高,随便找个人都可以完成这项工作。软件测试涉及很多领域,简单的点点鼠标、按按键盘的工作根本无法达到软件测试的目的,若想立足于软件测试领域必须掌握和学习很多方面的知识。
1.4 误区四:项目进度吃紧时少做些测试,时间富裕时多做测试。缩短测试时间会导致测试不完整,无法达到测试的目的,测试效果也将大打折扣。软件项目过程应该是有计划的、可控制的,若项目过程管理混乱必然会降低软件测试的质量。
2 学习软件测试的过程和方法研究
不同知识基础的人,学习软件测试技术、进入软件测试领域的感受也有所不同,很多人在学习软件测试知识的过程中非常盲目,没有计划、没有方向,学习效率低下。
在此,本人对学习软件测试的过程和方法进行总结、研究和探讨,以作交流学习之用。
2.1 学习软件测试的过程
(1) 第一步 明确测试目的。有目的才有动力,有目标才有方向。软件测试就是对软件需求分析、设计规格说明、程序代码以及软件其他相关产品进行测试的过程,是软件质量保证的关键步骤。明确软件测试的目的和目标才能准确的定位测试并更有效的进行测试。
(2) 第二步 结合实际项目,学习掌握测试方法、合理设计测试用例。常用的测试方法有黑盒测试和白盒测试。黑盒测试在完全不考虑程序内部结构和内部特性的情况下,针对软件界面和软件功能等进行测试,是最基本的测试方法。白盒测试允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例进行测试。准确的理解和掌握这些技术及其相互关系是进行软件测试的前提。因此,在学习软件测试的过程中,要准确的把握测试方法并有条理的组织和设计测试用例。
(3) 第三步 熟悉测试步骤。 一个完整的软件测试过程包括测试计划、测试设计、测试开发、测试执行、缺陷跟踪和测试评估。软件测试管理工具可以系统地控制整个测试过程,实现从测试需求、测试设计、测试执行和缺陷跟踪所有操作的全方位跟踪管理,并为这几个部分提供了关联机制,使整个测试管理过程更加简单和有组织。在此,本人建议在学习软件测试技术的过程中,以一个测试管理工具(例:TestDirector)为平台进行测试实践,用心体会一个完整的测试过程。
(4) 第四步 了解测试阶段。软件测试从软件需求阶段就已介入,基本贯穿软件项目开发全程,不同阶段有不同的测试点,需要不同的测试方法和技术。软件测试可以大致分为需求评审、 单元测试、集成测试、系统测试、验收测试( α测试/ β 测试)这几个阶段。明确各个阶段的测试目的和内容才能选择相对合适的方法进行测试。
(5) 第五步 测试技术的提高和升级。软件自动化测试是一项让计算机代替测试人员进行软件测试的技术,通常借助测试工具来执行。自动化测试可以模拟软件实际运行效果,测试效率高、准确度和精确度高、可以持续测试而无须休息,弥补了手工测试的不足。性能被列为系统质量的重要指标,并越来越受到人们的重视。性能测试是对软件性能的表现进行测试,较功能测试更难实现。
2.2 学习软件测试的方法 学习方法的好坏和学习习惯对学习效果的影响非常大,以下是软件测试初学者需要注意的几个地方:
(1) 勤学好问、充分利用各类学习资源。问题积累是学习的拦路虎。时间越久,问题越多,给学习造成了很大的阻力,更甚者会让初学者心生放弃。三人行必有我师,勤学好问,不要滋生“历史”遗留问题。当然,对于一个复杂问题,如果在短时间内无法理解透彻时,可以先简单的了解,然后在之后的学习和实践过程中慢慢体会其含义。由简入繁,勿钻“牛角尖”。
(2) 实践出真知。实践是检验真理的唯一标准。要想真正学会测试,必须进行实际的测试。不要说没有测试环境,想学的话,完全可以自己搭建环境。有了行动才能有收获。
(3) 切莫“闭门造车”。软件测试技术是解决实际软件测试问题的技术,与现实世界密切相关,盲目的学习可能适得其反。因此,应多关注软件测试行业的动态,了解软件测试行业的真正需求,有目的的学习。
(4) 细心、耐心。软件测试是对人技术和意志的一种考验,不细心就有可能与缺陷擦肩而过,没有耐心就无法将枯燥的测试进行到底。只有充分的细心和耐心才能适应和完成软件测试工作。
(5)“怀疑”精神。定性思维往往是发生错误的根源,对于软件测试人员来说,更应该具有“怀疑”精神,要考虑每个细节,不要想当然地接受任何假设。
3 软件测试的常用技巧 软件测试虽然辛苦,但掌握一定技巧后将事半功倍。
3.1 边界测试。边界是最容易出错的地方。在进行软件测试时,应测试临近边界的合法数据(即最后一个可能合法的数据, 以及刚超过边界的非法数据)。
3.2 非法测试。人们在不了解软件功能或使用方法的情况下,经常会不经意地输入一些非法数据或进行一些非法操作而导致软件出现意外情况。因此,在进行软件测试的过程当中,应考虑进行类似的非法测试。例如在输入数字的地方输入字符、输入邮件地址的地方输入非法格式的数据、进行一些不合理的操作等。
3.3 接口测试。程序往往在接口的地方发生错误,在进行相关测试时切勿掉以轻心。
3.4 代码重用测试。在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码的基础上作修改或修改不全面而引发错误。在测试的过程中应更加留意这方面的测试。
3.5 失效恢复测试。当意外(如网络突然中断、系统崩溃等)发生时,用户能否继续使用系统,用户将受到多大的影响也是测试要考虑的问题。
4 结束语
软件测试是一个入门易、深入难的工作。学习软件测试技术没有捷径可言,一点点的努力才是正道。学习过程是指引,学习方法是手段,希望以上的方法和技巧能够给大家以启迪,也希望更多有识之士能够与我们共同徜徉在软件测试这五彩缤纷的世界之中。
参考文献:
[1] 把 冉. 软件测试行业特别调查[J]. 中国经济信息,2008(9):76-77.
[2] (美)Ron Patton. 软件测试[M]. 周予滨,姚静,等译. 北京:机械工业出版社,2008.
[3] 路 璐,王文莉. 浅谈软件测试技术[J]. 郑州铁路职业技术学院学报,2007,19(2):41-42.
1.1 软件测试研究背景
随着计算机科学技术的快速发展,高度信息化正在以势如破竹之势推动着各行各业的飞速发展。伴随着软件系统被各行业所广泛的应用,而在使用中会有各种各样的软件故障风险,甚至带来很大损失,软件系统故障为用户所带来的危害也被众人/!/所熟知和重视。因此,对应用系统的正确运行的要求也越来越高,在提高软件质量的各种技术当中,最直接、最有效的手段还是软件测试技术[1]。正是由于这一原因, 系统测试也逐渐流行起来,特别是系统的核心--软件的测试。所谓的软件测试,其实就是指利用测试工具按照测试方案和流程对产品进行功能测试和性能测试,根据测试需要进行编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估[2]。软件测试从以往那种处于不为人重视的状态,慢慢转变成为企业全部生命周期中的一个重要组成部分。
目前国内的软件自动化测试水平参差不齐[3]。尤其在消费电子产品领域,比如谷歌公司开发的开源 Android 系统,更新速度更是惊人,所以许多产品的生命周期有的时候甚至会短于 6 个月。因此, 传统的人工软件测试方法已经无法赶上产品更新的步伐, 自动化测试就成为必然的选择,自动化测试的主要目标就是减少开销,获得更彻底的测试,从而提高软件产品质量[4]。
自动化测试就是通过使用计算机辅助手段,按照测试工程师的预先定好的计划进行自动化测试[6],目的是为了减轻手工测试的劳动量、降低人工出错概率,从而达到提高软件质量的目的[7]。
在做自动化测试过程中,使用自动化测试工具时应尽早开始测试工作,这样可以使修改错误更加容易和廉价,并可减少更正错误对软件开发周期的影响[8,9]。虽然自动化测试可以弥补手工测试无法达到的测试需求[10],但是自动化测试并非能够解决测试过程中的所有问题,因此不能追求自动化完全替代手工测试[11]。
1.2 自动化测试的优缺点
1.2.2 国内外研究现状
软件测试起源于国外,图灵是最早提出了需要对程序进行测试的人,但是直到到上世纪七、八十年代的时候,对软件测试技术的研究才开始受到了人们的重视。很多国内外学者开始对软件测试进行了深入的研究。美国北卡罗来纳大学召开的软件测试技术会议,可以说是软件测试发展史上的一个非常重要的里程碑,其中 Good nough 和 Gerhart两个人为软件测试理论的奠基做出了极大的贡献[21]。国外的高校、研究机构和企业也都对软件测试进行了比较深入的研究,比如华盛顿大学、Mational Software Testing Lab等。
第二章 相关技术分析与研究
2.1 自动化测试技术
2.1.1 自动化测试的发展阶段
自动化测试技术的发展,单从技术角度来说大概经历了三个阶段,这三个阶段分别是:录制回放测试、数据驱动和关键字驱动技术[26]。相对应的自动化测试系统从第一代基于线性的、结构化的自动化脚本系统发展到了第二代的数据驱动测试系统,再发展成为第三代的关键字驱动测试系统。其中数据驱动和关键字驱动系统就是属于目前所广泛应用的基于框架的自动化测试系统。
第一代基于线性、结构化的自动化测试脚本对数据的处理不灵活,这类脚本是录制手工执行的测试事例得到的脚本[27]。当测试数据比较大的时候,测试逻辑无法重用,当测试数据变化时,虽然测试逻辑不变,仍然需要开发出脚本来生产新的测试用例[28,29]。在测试中把需要用到的测试数据从测试脚本中提取出来,并集中管理,以增加测试逻辑代码的重用性,这就发展成为数据驱动测试技术。然而,随着软件的快速发展,软件系统的业务逻辑越来越复杂,因此关键字驱动技术应运而生。
第三章 测试管理系统的关键字管理分析............8
3.1 关键字的意义和作用................. 8
3.2 关键字的划分.....................9
3.3 关键字结构设计.....................10
3.4 关键字库的结构设计.......................15
3.5 本章小结..................19
第四章 测试用例管理系统设计与实现.....................20
4.1 测试用例管理系统的功能分析.....................20
4.2 测试用例管理系统的总体设计..................20
4.3 用例管理系统的主要功能实现.................32
4.4 本章小结.......................38
第五章 用例管理系统在关键字驱动测试系统中的应用 ...................39
5.1 自动化测试框架系统介绍.....................39
5.2 用例管理在关键字驱动框架中的结合应用................... 41
5.3 用例管理系统的不足及改进方案...................45
5.4 本章小结...................47
总结
在项目的创立和开发过程中,召集了公司测试部门的部分初级和高级测试工程师参与项目的立项和讨论,做了大量的前期调研工作。测试人员属于该项目的终端用户,所以我们在需求分析阶段认真听取大家的合理建议并采纳了很多宝贵的意见和项目实施建议。在开发过程中和开发完第一个版本之后,也多次召集大家一起参加演示会议,大家给产品提出了很多新的改进需求,例如界面友好度,操作流程还不够方便等,最终项目还是顺利的完成了第一个版本的计划。
该项目得到了公司领导的重视,也得到了各级各部门的大力支持,在接手该项目时,我对这个项目还是充满信心的,在项目开始后的初期阶段,遇到
关键词:软件;测试;看法
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599(2011)21-0000-01
Points View of Computer Software Test
Ma Lijuan
(302 Design Institute,Guiyang 550009,China)
Abstract:With the software technology to increase the size and complexity,as a software engineering throughout the entire software life cycle,an important part of software testing,increasingly stringent requirements,but also the very strong challenge.Based on years of experience in software testing, software testing in the points put forward views,I believe this plays start a discussion on software testing for reference.
Keywords:Software;Test;Views
随着近些年信息技术的高速发展,软件产品的应用已经深入到社会的方方面面。人们在享受软件产品带来的便利的同时,也重点关注软件产品的质量。对那些质量不合格的软件产品给开发商和用户都带来麻烦,而在一些关键部门的应用,如果出现质量问题则是毁灭性的。对软件进行的测试则受到重点关注。一般来说,伴随计算机软件的发展导致软件测试应运而生,软件测试的过程必须包含开发的任务,在对软件进行的测试周期内则需要充分考虑到评估测试时间和开发修复时间。
根据笔者总结得知,软件测试就是为了让用户更迅捷、更节省时间的把软件产品或者在软件系统中存在的各种问题找出来,在此基础上,让程序员解决存在的这些问题,并最后及时给予用户高质量的软件产品。作为软件开发过程中的重要内容,软件测试是对开发的软件提供高质量保证的关键。在整个软件开发的生命周期过程中,从新的软件项目开始起,到软件产品的需求分析,最后到验收测试和安装测试结束,都有着软件测试的影子。
寻找和纠正软件中的故障这是对软件进行测试的目的,在测试过程中,不但要发现软件中存在的错误,还要对软件的质量进行客观的评价。软件测试就是对软件的质量进行度量,从而评价一个程序或者一个系统属性,并在此基础上提高被检测软件的质量。
测试构成了所有工科的基本组成元素,在软件开发中具有举足轻重的作用。而软件测试就是对软件去组织测试,达到预期的效果和目的。近些年随着计算机软件开发的规模越来越大,而软件的复杂程度得到明显的提高,对软件进行检测以期望需找软件中的错误的测试也越来越困难。而在此背景下,尽可能的把程序中的错误一一挖出,对这些错误进行解决,从而生产处高质量的计算机软件产品,只有加强对测试工作的组织和管理,并选择最优的测试方法。根据笔者观点,一套完整的测试分为以下五部分:第一阶段:提出计划。通过对用户需求报告的详细阅读,特别是根据其中规格说明书中性能要求和性能仔细揣摩,制定出相应的测试需求报告,也就是制定黑盒测试的最高标准,在此项测试活动中,所有的测试工作都必须严格按照此项测试需求来开展工作,这也就是此项测试工作的行动准绳,依靠测试需求报告来进行判断,符合测试需求的应用程序就给判定合格,而不符合测试需求的应用程序就给判不合格。而在制定测试需求报告后,还要针对这一需求测试需求报告选择适当的测试内容,科学合理的安排测试人员、测试时间和测试资源等内容。第二阶段:测试设计。在提出计划的基础上,根据测试计划阶段的要求将之前制定的测试需求进行详细分解和细化为若干个可单独执行的测试小单元,并为每个小的测试单元寻找适当的测试比例,对这一比例要好好斟酌,因为这个比例选择的好坏直接关系到测试结果的有效性。第三阶段:测试开发。通过建立可重复的自动测试过程。这也是一个通过一组人通过阅读、讨论和争议对程序进行静态分析的过程。通过软件测试会审小组的审查,审查小组由组长、2~3名程序设计和测试人员及程序员组成。会审小组在充分阅读待审程序文本、控制流程图及有关要求、规范等文件基础上,召开代码会审会,程序员逐句讲解程序的逻辑,并展开热烈的讨论甚至争议,以揭示错误的关键所在。实践表明,程序员在讲解过程中能发现许多自己原来没有发现的错误,而讨论和争议则进一步促使了问题的暴露。例如,对某个局部性小问题修改方法的讨论,可能发现与之有牵连的甚至能涉及到模块的功说明、模块间接口和系统总结构的大问题,导致对需求定义的重定义、重设计验证,大大改善了软件的质量。第四阶段:测试执行。执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。软件测试。是整个软件开发过程中交付用户使用前的最后阶段,是软件质量保证的关键。软件测试在软件生存周期中横跨两个阶段:通常在编写出每一个模块之后,就对它进行必要的测试。编码与单元测试属于软件生存周期中的同一阶段。该阶段的测试工作,由编程组内部人员进行交叉测试。这一阶段结束后,进入软件生存周期的测试阶段,对软件系统进行各种综合测试。测试工作由专门的测试组完成,测试组设组长一名,负责整个测试的计划、组织工作。测试组的其他成员由具有一定的分析、设计和编程经验的专业人员组成,人数根据具体情况可多可少,一般3~5人为宜。第五阶段:测试评估。在进行测试执行阶段结束后,通过结合量化的测试覆盖域和缺陷跟踪报告的结果,给予应用软件所反映出来的质量和软件开发团队的工作进度和效率进行客观的综合评价。
当然,当面向对象技术开发的软件来说,传统的测试技术和方法则不能发挥应有的作用。为解决此项问题,我们对软件测试技术提出面向对象的专用方法。面向软件测试技术作为一项新兴软件测试技术,就是为了专门针对面向对象技术开发的软件而推出的一项测试技术。面向对象软件测试此项测试就是面向对象的软件开发过程结合面向对象的特殊特点而给出的。其内容有分析与设计模型测试技术、类测试技术、对象交互测试技术、类层次结构测试技术、面向对象系统测试技术等。