二、软件测试课程实践构建的主要思路
三、软件综合实践测试岗位的工作过程与方法
四、软件综合实践的考核
1.答辩委员会的组成。立体化全方位的考核方式,采用学生团队答辩的方式进行最终的考核,答辩委员会成员由软件开发方向教师、网站规划与开发教师、数据库管理方向教师、软件测试技术方向教师和企业工程师共同组成。2.软件测试岗位的知识点的考核。每个专业都设计了一套科学有效的评价体系,从三个部分对学生的能力进行全方位评。第一部分IT职业素养能,占总成绩比例的30%,考勤、项目管理能力、文档编写能力、团队合作与沟通能力、演讲与答辩能力;第二部分团队实践成果,占总成绩比例的30%测试环境部署、测试工具软件的安装、测试执行中缺陷报告的跟踪、测试总结报告的编写;第三部分岗位技能成果,占总成绩比例的40%,软件开发过程文档:需求评审报告、测试计划报告、测试用例报告。
五、软件综合实践教学实践的意义
1.软件综合实践项目分组教学的意义2.软件测试岗位同学的收获3.综合实践教学的后续影响4.软件综合实践教学的改革未来方向
作者:张彤宇李晶姚庚梅单位:广东东软学院计算机科学与技术系
参考文献:
[1]罗先录.IT类专业实践教学的三个层次[J].计算机教育,2007(18):14-15.
1高效软件测试团队建设的可行性策略
1.1软件测试团队的特质建设
1.2软件测试团队的制度性建设举措
一个优秀的软件测试团队必定拥有一套完善的团队管理制度,拥有明确的职责分工和高端测试人员,通过不断规范团队管理制度,做到扬长避短,及时提升整体测试质量。其中,软件测试团队需要不断加强汇报制度建设、工作总结制度建设、奖惩制度建设、测试审核制度建设、会议制度建设等,通过科学合理地分配职责关系来进一步强化团队成员的素质建设。在此过程中,还要注重对于资深测试人员的正确引导和建设,加强彼此间的沟通交流,不断丰富团队的测试知识库,通过科学吸收先进的测试管理知识来提升整体测试技能和技巧,以此减少开发团队协同工作中的一些领域瓶颈。
2结语
[关键词]软件测试课程体系教学改革
[作者简介]李静(1969-),女,陕西兴平人,河北北方学院信息工程学院,副教授,硕士,研究方向为教学设计、操作系统与软件测试;赵志升(1965-),女,河北张北人,河北北方学院信息工程学院,教授,硕士,研究方向为教学设计、软件工程、数据挖掘。(河北张家口075000)
一、国内软件测试专业教育现状
自2000年软件测试技术在我国兴起至今十余年,软件测试人才随着软件行业的迅猛发展呈现出供不应求的态势。专业的软件测试机构、测试网站及测试技术培训机构等迅速发展起来。目前,国内许多高校已经逐步设有本科阶段软件测试方向的专业。2011年11月,由教育部主办的“2011年高等学校软件测试课程教学论坛”在上海同济大学召开,对国内软件测试人才的培养及测试领域的全面发展起到积极推动的作用。
1.社会培训模式与现状。当前国内业界一些知名网站主要承担起测试人才的培养职责,如51testing、达内科技、北大青鸟等,为测试行业输送了大批动手能力较强的测试人才。针对性很强的短期教育模式是社会培训的特色。培训机构通常按照助理级、初级、中级和高级测试人员安排培训内容。诸如北大青鸟等规模较大的培训机构引进欧美的混合教学模式,采用“理论知识+分模块项目实践+全真项目实训+职业素质训练”的模式,形成一个科学并且实用的培训体系。培训机构通常设立自己专用的教学平台,通过网络远程授课与集中化分期分班授课方式,在半年到一年的较短时期,培训出上岗快、操作熟练、针对性强的应用人才,而且很多学员直接通过测试工程师面试,并在后期工作中累积了较深厚的测试经验,成为测试领域的支撑力量。培训课程主要内容涵盖操作系统管理、网络应用与Web编程、数据库管理等专业课程,实训环节应用主流的测试工具,如Winrunner,Loadrunner,RationalRobot等。着重于实用性的项目实践和开发是培训机构与高校教育的最大区别。参加这些培训班已成为目前大学生岗前培训的主要途径。
软件测试行业的人才匮乏仍然是当今的重要问题。依照行业需求,软件测试人员配备应是软件开发人员的2倍,而目前我国软测人员与开发人员比例却仅在15至18之间。以高等院校专业教育为主,实现多种途径的人才培养是当前软件测试行业的当务之急。
二、高校软件测试专业课程体系建设
构建专业课程体系,需要设置好基础课与专业课、理论课与实践课、必修课与选修课的比例关系,并合理安排与协调课程相互间的分工与配合。建设科学完整的软件测试专业的课程体系是一个需要多方考证借鉴和不断探索完善的工作。
由于计算机专业课程的关联性很强,一些专业课程可以相互结合教学。比如语言类,Shell等可以结合到UNIX/Linux操作系统课程中,HTML/XML可结合到.NET以及网络技术等课程中,PHP融入Web服务器配置等专业选修课程教学中等,避免专业内容交叉而造成的重复教学现象。在教学过程中,要将软件测试的思想广泛地渗透到所有的专业课程中。如在各类程序设计语言基础课程中引入单元测试的思想,在软件工程课程中强调软件测试的重要性,增强软件质量管理意识。当前微软、苹果、惠普等软件公司都推出完整的计算机应用与开发平台,从硬件、操作系统、集成开发环境到用户应用软件,基本上提供一条龙服务。以微软为首的测试框架开发也日趋成熟。高校需要从专业建设角度考虑,把握学科发展方向,汲取众家之长,将尖端技术和主流应用平台作为专业教学内容,在有限的学时之内统筹安排,让学生形成一个专业学习的整体思想,做到知识累积层次清晰、得到一个完整的专业知识体系。随着测试技术的快速发展,课程设置需要不断更新调整,既要考虑专业建设、学科建设,又要考虑市场需求和研发需求。合理选择、科学地纳入新知识到专业课程中,是需要不断探索和改革的无止境的工程。
三、面向从业需求的教学改革
1.注重面向市场应用的课程体系改革。为了更好地为社会培养应用型人才,高校应以企业岗位能力需求为标准,不断进行课程体系改革,构建“知识+应用+研究”的混合型课程体系结构,为学生从业后尽快适应工作岗位,担负起科技职能,并进一步从事测试技术开发与研究奠定基础。软件测试课程体系改革应基于不断发展的测试技术以及社会测试岗位的能力需求,从培养学生专业素养、测试技能、项目分析能力、探索开发能力等全面素质的高度进行必要的整合和重组,把学生应具有的知识、能力、素质结构作为课程体系改革的依据,组建模块化的课程结构。
2.注重面向从业需求的教学实践改革。面向从业需求,加强教学实践环节是高校实验教学改革的重要内容。目前很多高校与自己的合作企业签订培训合约,建立人才基地,共同开发软件和培训人才、交流人才,是教学结合实际应用的最佳模式。围绕着以企业需求为目标进行实验教学,使学生在真实的项目流程中对软件测试的完整过程与实施细节、管理机制与管理措施进行全面的了解,提高测试能力和积累测试经验,便于学生日后尽快适应实际工作,在专业技术岗位发挥人才作用。
3.注重培养学生的职业素养。高等教育为社会输送专业技术人才,不能忽视对人才职业素养的培养。在教学过程中要把专业素养、技能训练和职业素质培养有机结合起来。在学生实践与实习过程中,注重培养学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力,并培养学生的团队合作精神和相互协作能力,提高将来从事测试行业的职业素养。应结合社会对软件工程师的岗位需求,设立面向毕业生的专项系列讲座,为学生提供面试技巧培训、竞争意识培训、沟通与协作技巧培训和就业指南等,是极具实效且必要的教育内容。依照国外标准,软件测试工程师应与架构师处于同一等级。从事测试行业必须具备扎实的专业基础、综合的个人能力和较高的职业素养,才能真正实现高端的自动化测试。
[参考文献]
[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005.
[2]钱丽.以就业为导向的软件测试课程体系改革探析[J].科技信息,2012(1).
[3]顿煜卿.软件测试教学过程中的思考和实践[J].计算机光盘软件与应用,2012(14).
关键词:项目;软件测试;黑盒测试
随着软件产业的发展,软件测试被越来越多的软件企业重视,很多软件企业还设立了专门的软件测试部门,对软件测试人员的需求量非常大,而真正能符合软件测试的人员却很短缺。所以,软件测试技术作为高职软件技术专业的一门专业课程,教学模式的改革势在必行。传统的软件测试课程以测试的理论知识为主,忽视了软件企业中真实测试岗位的要求,造成课堂教学与测试岗位需求的不一致。本课程以企业软件测试工程师作为主讲教师,将企业中实际测试项目作为教学项目,为学生提供个尽量真实的软件测试环境,让学生真正参与到测试中来。通过学习该课程,让学生了解软件测试的基本过程,掌握单元测试、功能测试、系统测试的一般步骤和方法,并能够进行相应测试。
1测试项目的选择
在基于项目的课程设计中,测试项目设计是一个关键环节。本课程确定以项目作为载体的设计思路后,选取企业中实际测试的项目作为教学项目,这样的项目既有在企业中应用的普遍性和典型性,又能有效地促进学生职业能力发展,达到本课程的教学目标。在本课程中选择“能力验证样品软件”作为测试项目。
2测试项目的实施
2.1测试环境的搭建
在软件测试企业中,测试人员作为软件项目开发的一分子,为了及时、有效的与程序设计人员进行沟通,通常应用BugFree来实现缺陷管理。BugFree是基于PHP和MySQL开发,免费、开源的缺陷管理系统,通过该软件能很好的协调开发人员、测试人员和需求三方的关系,规范软件的研发流程。
2.2测试小组的确定
在项目测试过程中,以教师引导、学生自愿为原则,每五人组成一个小组,每个小组的总体能力、水平相当,并保证每个小组至少有一名组织能力较强的学生作为组长,负责协调教师与学生、小组成员之间以及小组之间的关系等工作。测试组成员一起讨论本组的测试计划,根据软件的需求规格说明书,制定详尽的测试计划,一起搭建测试环境,同时测试组长对测试小组成员的工作进行分工,测试组长负责本组测试的全面工作,并且严格地按照测试计划执行。
2.3测试的执行
(1)测试项目引入。在测试开始前,教师演示预测试项目,并对照“需求规格说明书”,明确此次测试的任务:完成对系统的功能测试,并通过BugFree来实现测试用例的管理和缺陷的管理。任务实施前,教师先演示一个缺陷的查找过程,让学生看到真实的“缺陷”,从而产生跃跃欲试的感觉。然后让学生在没有掌握查找缺陷的方法情况下,用自己的常识进行缺陷的查找。
(2)黑盒测试知识的导出。黑盒测试的两个关键技术:等价类类划分法和边界值分析法。等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。边界值分析法通常是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
(3)在理论知识的指导下进行缺陷查找。在黑盒测试理论的指导下,科学、有效的进行测试用例的设计。为便于学生的学习讨论和测试用例设计,课程教学直接在有职业氛围的软件技术实训室进行。
(4)考核标准和考核方法。该课程的考核重点放在了对学生学习过程的考核上。每个任务都有明确的考核标准。待学生完成任务后,教师对学生完成的任务成果进行点评,并对任务的完成情况进行总结。作为该部分教学,会让每组同学展示其缺陷列表,通过查找到的缺陷的数量和级别作为评判标准,同时结合平时表现,综合给出项目任务的成绩。最终的考核评价成绩由4个部分组成:平时表现10%,每次完成项目任务的情况25%,课程实训25%,综合技能考核40%。
3项目教学的效果
3.1采用项目教学法,提供学生专业技能
项目教学是指学生在教师的指导下完成一个典型项目的过程,在项目完成过程中学习知识和技能。学生通过解决在项目中遇到的问题,提高了学习兴趣,调动了学习的积极性和主动性。项目教学注重的是完成项目的过程,而不是最终结果。
3.2采用分组教学法,提高学生团队意识
在教学过程中,我们把班级同学分成若干个项目组,每个同学在小组中担任不同的角色。
3.3采用企业管理模式,促进学生零距离就业
通过校企合作,将企业的运行模式引入到课堂中来。请企业里有经验的软件测试工程师作为主讲教师,将企业里有代表性的真实项目作为测试项目,并搭建企业中的测试环境,让学生尽可能多的融入到真实的测试环境中,从而促进学生零距离就业。
[1]朱雷.软件测试技术课程项目式教学的探索与实践.辽宁高职学报,2011年第9期,52-54.
随着信息化军事技术的不断发展,装备仿真训练软件也获得了迅速的发展,其规模越来越庞大、实现的功能越来越多、结构越来越复杂,装备仿真训练软件的性能和可靠性也成为至关重要问题的。因此,软件测试成为装备仿真训练软件开发过程中一个必要的环节。依据一个科学的测试模型,使用先进的软件测试技术对装备仿真训练软件进行充分的测试,可以及时发现软件程序中的错误,有效降低软件错误出现的概率,验证软件功能的可行性,提高软件的可靠性和安全性。
1软件测试模型
软件测试是装备仿真训练软件开发过程中一个不可缺少的重要步骤,而且随着装备仿真训练软件规模的增大、复杂度的增加,软件测试也变得越来越重要。装备仿真训练软件软件测试过程与开发过程一样,都能决定软件的质量,而且测试过程的质量将直接影响测试结果的准确性和有效性。
在软件开发几十年的实践过程中,人们总结了很多的开发模型,这些模型对于软件开发过程具有很好的指导作用,由于测试与开发是紧密结合在一起的,所以软件测试也需要有测试模型去指导实践。软件测试模型是将测试过程活动进行抽象的概念模型,用于定义测试活动的流程和方法,是确保软件工程质量的重要手段。测试专家通过实践总结出了很多很好的测试模型。这些模型将测试活动进行了抽象,明确了测试与开发之间的关系,更好的分析软件测试在整个软件研发中的参与度和工作过程,进而不断完善软件质量保证流程,提高软件产品的质量,并成为了测试管理的重要参考依据。目前,主要的测试模型主要有以下4种:
1.1V模型
V模型是将传统测试模型瀑布模型改进后的一种测试模型,如图1所示,从左到右,分别描述了软件的基本开发过程和对应的测试行为,清楚地体现出每个测试阶段和开发过程各阶段的对应关系。但是在V模型当中,测试过程放在了编码的下一个阶段,这就容易使人误解为测试是软件开发的最后一个阶段,而需求分析的检验工作也是在验收测试才能进行。
1.2W模型
W模型由两个V模型组成,分别代表测试与开发过程,非常明确的标注了生产周期中开发与测试之间的对应关系,如图2所示。但是在W模型中测试和开发也保持着一种线性的前后关系,上一阶段工作完全结束,才能正式开始下一阶段的工作,这样就无法支持迭代、自发性以及变更性调整等情况。
1.3H模型
H模型形成了一个完整独立的测试过程,并且将测试准备活动和测试执行活动清晰的区别出来,如图3所示。图中仅仅演示了在整个生命周期中某个层次上的一次测试“微循环”,图中的“其他流程”可以是任意开发流程。H模型的特点是软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。当某个测试点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
2装备仿真软件测试的特点及关键问题
2.1装备仿真软件测试的特点
装备仿真训练软件是一个由系统、分系统/子系统、模块组成的复杂系统,并随着系统和操作功能的增多,复杂程度也在增加,系统的好坏归根结底是由各个分系统和各个模块的好坏决定的,对各个分系统和各个模块的测试是一个非常重要的环节。装备仿真训练软件测试具有以下6个特点:
2.1.1装备仿真训练软件测试主要分为三个阶段
从软件生命周期全过程来看,软件测试可分为单元测试、功能测试、集成测试、性能测试、系统测试、配置测试、回归测试等阶段。根据装备仿真训练软件的结构、规模、类型和安全性关键等级等方面的特点,确定装备仿真训练软件测试主要分为单元测试、集成测试和系统测试三个阶段。
2.1.2单元测试是装备仿真训练软件的测试重点
装备仿真训练软件测试是一项针对性很强的工作,即使对同一类型的功能,可能由于不同型号任务的要求,功能实现也会有所差异,因此要求重点进行单元测试。单元测试是根据详细设计和源程序,了解每个最小模块的输入、输出条件和逻辑结构是否正确合理。单元测试通常应对模块内所有控制路径设计测试用例,以便发现错误。
2.1.3装备仿真训练软件程序内部结构复杂,路径组合数目庞大
程序的三种基本结构分别是:顺序结构、分支结构和循环结构,装备仿真训练软件最小组成模块的内部程序都可看作是这三种结构按不同方式组合的产物,这其中包含大量多重选择和循环嵌套的程序,而且模块与模块之间存在着大量的交互,所以程序内部包含的不同路径数目可能是天文数字,尤其对大规模复杂的装备仿真训练软件,穷举所有的路径是不可能的,需要根据实际情况去选择适合的覆盖测试方法。
2.1.4装备仿真训练软件黑盒测试用例数量庞大
装备仿真训练软件中包含了不同专业的多个分系统,每个分系统又由多个子系统和模块组成,其中包含的参数数量庞大,参数与参数之间的进行组合之后的数量将更加庞大,而软件运行出现的故障时,更多的情况是由于多个参数的相互作用的原因,所以,要想充分考虑到参数与参数之间的关系,需要的测试用例数量是无穷尽的。
2.1.5装备仿真训练软件测试一般需要特定的测试环境支持
装备仿真训练软件测试可以采用静态测试方法和动态测试方法。其中,静态测试以人工检查为主,不需要特定的测试环境;而动态测试则需要建立驱动软件模块执行的测试环境,支持软件模块的参数输入和输出结果的可视化。
2.1.6装备仿真训练软件测试一般采用白盒测试与黑盒测试相结合的方法
一般采用白盒测试方法来测试装备仿真训练软件程序内部的逻辑结构;装备仿真软件的功能测试部分则需要采用黑盒测试方法。
2.2装备仿真软件测试的关键问题
软件测试的目标是发现软件中可能存在的设计缺陷和错误。测试时验证得越全面,软件中可能存在的缺陷就会越少,而每一个项目、每一个软件的测试都会有不同的特点和测试关键问题,测试工作要根据软件的特点和关键问题,设计适合该软件的测试。装备仿真训练软件测试的关键问题主要有以下4点:
2.2.1测试工作必须由非开发人员来完成
由于许多开发单位对软件测试的认识水平不够,自己设计、自己编程、自己测试、自己维护的现象还比较普遍,这样的结果就是导致测试结果不理想,没有达到测试的要求。所以,为了保证测试质量,装备仿真训练软件的测试工作必须由非开发人员来进行,保证的效果。
2.2.2在白盒测试中,采用基本路径测试方法解决路径覆盖率问题
在装备仿真训练软件结构中,路径组合是一个庞大的数字,所以要在测试中覆盖所有路径是不可能的,需要把覆盖的路径压缩到一定范围内。如:程序的循环部分可以只循环一次。因此,在路径覆盖测试上,我们选择基本路径测试法。
2.2.3在黑盒测试中,采用组合覆盖测试方法解决测试用例无穷尽问题
由于装备仿真训练软件中参数与参数的组合数量庞大,无法设计无穷尽的测试用例满足覆盖率问题,为此,采用组合覆盖测试方法,不仅可以充分考虑到软件中参数与参数之间的相互作用,更重要的是能以最少的测试用例实现最大程度的覆盖,具有较好的测试效果。
2.2.4要有必要的测试文档
没有文档的项目是一个不成功的项目,同样,没有文档的测试也不会是一个成功的测试。测试工作的计划、设计、实现和问题报告都要以文档的形式记录下来留存,方便同项目组人员进行阅读和修改,更重要的是对于后续同类项目是资源的积累过程和设计的改进依据。
3装备仿真软件测试模型
测试过程模型定义了测试的流程和方法,为测试工作提供了指导。但是传统的测试模型各有长短,不可能适合所有的测试软件,软件测试模型因测试软件的不同而不同,所以,本文通过对传统的测试过程模型进行的分析和探讨,同时研究分析了装备仿真训练软件的实际情况,进而得到了适合装备仿真软件的测试模型,然后从该模型出发,完善软件测试工作流程。装备仿真训练软件测试模型是一个包含了软件文档审查、代码静态分析和审查、单元测试、子系统集成测试、系统测试和验收测试的综合测试模型,如图4所示。
3.1测试准备
测试准备阶段是在测试实施之前,构造执行测试所需的要素,这些要素通常包括软件开发文档、软件开发程序、实际执行测试所需的软件、准备测试环境和测试工具;同时还要为测试过程准备适当的测试用例。
3.2单元测试
装备仿真训练软件单元测试部分包含静态测试和动态测试两个部分。其中静态测试的对象是装备仿真训练软件单元模块的文档和程序代码,主要通过文档审查、代码审查、代码静态分析等方法来确保软件需求和设计文档的正确性、代码的规范性、设计或实现的正确性。而软件结构和功能方面的缺陷则需要采用动态测试的方法来完成。
装备仿真训练软件单元模块动态测试采用黑盒测试和白盒测试相结合的方法,从模块级检查软件的功能、性能、接口和其他约束条件是否满足需求。白盒测试技术主要测试每个单元内部逻辑结构的覆盖率,黑盒测试技术测试模块单元功能满足需求情况。
3.3集成测试
集成测试主要检验装备仿真训练软件中经过单元测试的模块和子系统各部分工作是否实现了相应技术指标、达到了相应的要求。在装备仿真训练软件集成测试部分,既可以弥补单元测试中没有测试到的Bug,又可以测试单元测试中没有办法测试的功能,如装备仿真训练软件中前后台集成之后的关联功能。所以集成测试就是测试各个部件之间的配合情况,为系统测试提供基本保证。
装备仿真训练软件的集成测试必须在所有模块、子系统能够正常运转的情况下才能进行,一般采用的方法是数据驱动方法中的自底向上集成测试。具体的步骤是先测试组成子系统的模块群,由于最底层的单元模块都已经经过了单元测试,所以各个模块可以向上集成为各个子系统;然后在此基础上就可以测试各个子系统能否正常工作,以及进行各个子系统之间的测试工作。
3.4系统测试
装备仿真训练软件的系统测试是在集成测试的基础上进行的,不仅是单纯的测试软件部分,而是将硬件、网络和外设等其他要素结合进来进行综合性测试。系统测试主要依据系统总体技术方案和需求说明书进行测试,目的是发现系统与用户需求不符或矛盾的地方。
系统测试的测试类型一般包括功能测试、性能测试、负载测试、强度测试、容量测试、安全性测试、用户界面测试、有效性测试、配置测试、故障恢复测试、安装测试和回归测试。而在装备仿真训练软件的系统测试中,功能测试、性能测试、负载测试、安全性测试、有效性测试、配置测试、故障恢复测试是必须进行的,其他项目可以依据具体项目情况选择性的进行。
3.5验收测试
在完成装备仿真训练软件的系统测试之后,进行验收测试。只有通过了验收测试,才标志着项目的结束,软件产品的完成。一般来说,验收测试以用户为主,主要验证软件的功能、性能以及其他特性是否与用户要求相一致。
4结束语
软件测试的目的是通过测试来发现缺陷,找出缺陷的分布特征和出现的规律,以便在新的开发项目中改进设计结构,避免缺陷的出现,同时也能够通过设计有针对性的检测方法,改善软件测试的有效性。随着装备仿真训练软件质量要求的提高,软件测试在软件开发中的地位越来越重要。装备仿真训练软件测试模型是从传统的软件测试模型中提取出来的,适合装备仿真训练软件的测试模型,不仅可以提高测试在软件生命周期中的作用,还可以完善软件部分的工作流程。
软件测试过程一般来说,软件测试工作从立项后就开始了,主要经历以下几个主要环节,如图1所示。需求分析是软件测试的1个重要环节,测试人员对这一环节的理解程度将直接影响后续测试工作的开展。一般而言,需求分析包括软件功能需求分析,测试环境需求分析,测试资源需求分析等。测试计划的依据主要是项目开发计划和测试需求分析结果而制定,测试计划指导整个测试过程。测试设计在测试活动的各个阶段,对测试策略、测试方法、测试用例进行制定和编写。测试环境搭建要尽可能模拟实际应用场景,满足项目的设计要求,从而达到理想的测试效果。测试执行和测试记录由测试工程师完成,主要是查找软件的错误和缺陷,并记录测试活动中出现的问题。缺陷管理是对测试活动中出现的BUG进行管理和跟踪,保证每个BUG得到及时修复。软件评估是在测试活动的最后,对软件进行全面地分析和总结。
铁路产品开发过程中容易忽视软件测试
如何在企业内部实施软件测试
1测试流程
企业应全面规范项目开发管理流程,对项目进展的各个阶段进行明确划分。软件测试是建立在软件开发的成果之上,即测试的对象就是软件开发的阶段性成果,如设计文档、程序代码和可执行的程序。
软件测试和硬件测试的侧重点有所不同。对于软件测试,采用比较通用的测试流程,如图2所示。软件项目的开发从项目立项开始,测试人员介入项目组,明确需求分析阶段的用户需求,针对不同测试阶段的工作重点,制定各阶段的测试计划。在设计测试阶段,测试人员需要确定各测试阶段的测试方法和必要的测试工具,搭建测试环境,编写相应的测试用例。接下来,按照测试计划分别进行单元测试、集成测试和系统测试,形成各阶段的测试报告,对测试过程中发现的缺陷进行跟踪,保证缺陷得到及时修复。为了保证软件在现场环境下能够正常运行,测试人员针对现场实际情况,制定现场验收计划,确定现场验收策略,对软件进行现场验收和评估。当软件通过了各阶段的测试,且全部缺陷得到修复,将进入到软件的阶段。软件阶段通过对软件版本的管理和控制,实现软件、维护和升级等。
2软件测试技术在各阶段的运用
在软件测试实施的各个阶段,所采用的测试方法和测试策略也各不相同。下面对于测试过程的各阶段进行分别叙述。
2.1设计和代码审查
设计审查是由项目组和测试组成员组成评审组对软件设计和开发的输出进行评价,以判断确定设计和开发的输出能否实现软件产品预先定义的规格,同时通过审查标识出与项目需求之间的偏差。设计审查按《项目计划》所规定的评审点进行。因临时变更引起的突发性的评审随时进行。代码审查实际上属于静态测试。在代码审查之前,首先要对代码进行静态分析,其目的是通过对源程序分析、目测,但不执行程序,找出源代码中可能存在的错误和缺陷,对程序设计的结构属性,如分支、路径、转移等进行审查,尽可能地掌握程序的结构,为单元测试的测试用例的设计和执行提供信息。代码审查的目的是检查源程序编码是否符合详细设计的编码规定,确保编码与设计的一致性和可追踪性。检查的方面主要包括:书写格式、子程序或函数的入口和出口,数据,参数,程序语言的使用,存储器的使用,可读性,逻辑表达式的正确性,代码结构合理性等。静态分析和代码审查通常可以同时进行,通过静态分析掌握源程序结构,通过代码审查,尽量减少书写错误和隐含的逻辑错误,为单元测试提供比较稳定的环境。
2.2单元测试
单元测试是软件测试的基础,集成测试、系统测试都是建立在单元测试之上。单元测试是用来检验每个软件单元能否正确地实现其功能,满足性能和接口要求,还要验证程序和详细设计说明的一致性。从广义上来讲,单元测试包括静态测试和动态测试。静态测试就是上面介绍的“代码审查”,而动态测试则是通过测试用例、测试工具来执行程序,检验程序是否存在缺陷的过程。单元测试一般采用白盒测试方法,手工测试和自动测试相结合,针对程序内部的结构和逻辑来展开,单元测试工具一般针对不同编程语言和开发环境而设计开发的,种类很多。我们利用白盒测试进行代码测试,利用黑盒测试进行功能性测试,利用回归测试保证维护代码的完整性。单元测试工具固然有用,更重要的是测试策略,以及测试用例的设计。这也提醒我们在做单元测试的过程中,不可避重就轻,要抓住项目核心,进行科学、有效的测试,只有这样才能达到事半功倍的效果。
2.3集成测试
集成测试阶段采用白盒测试和黑盒测试相结合的方式,将每个独立的功能模块进行关联和集成,便于进行功能测试、界面测试、结构测试、数据正确性测试等。在进行集成测试前,测试工程师要搭建测试所需的硬件和软件环境,尽量模拟设备实际的工作环境。结合项目的不同特点,测试过程可以采用手工或自动测试。在进行多次重复测试和回归测试的情况下,可采用自动化测试工具对软件进行功能性检测。