您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 软件测试培训心得体会
软件测试培训心得体会概述2012年8月2日至2012年8月6日,中国软件评测中心的测试技术应用与实践培训课程在武汉召开,本人非常荣幸的参加此次培训,通过这次经验让我系统的梳理了软件测试理论技术,对软件测试有了一个更深入更全面的认识。下面请准许我简述软件测试的概念及软件测试在软件工程中的重要性。一:软件测试历史与发展到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,BillHetzel在《软件测试完全指南》(CompleteGuideofSoftwareTesting)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。软件测试已有了行业标准(IEEE/ANSI),1983年IEEE提出的软件工程术语中给软件测试下的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,而是与整个开发流程融合成一体。软件测试已成为一个专业,需要运用专门的方法和手段,需要专门人才和专家来承担。进入上世纪90年代,软件行业开始迅猛发展,软件的规模变的非常大,在一些大型软件开发过程中,测试活动需要花费大量的时间和成本,而当时测试的手段几乎完全都是手工测试,测试的效率非常低;并且随着软件复杂度的提高,出现了很多通过手工方式无法完成测试的情况,尽管在一些大型软件的开发过程中,人们尝试编写了一些小程序来辅助测试,但是这还是不能满足大多数软件项目的统一需要。于是,很多测试实践者开始尝试开发商业的测试工具来支持测试,辅助测试人员完成某一类型或某一领域内的测试工作,而测试工具逐渐盛行起来。人们普遍意识到,工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。测试工具可以进行部分的测试设计、实现、执行和比较的工作。通过运用测试工具,可以达到提高测试效率的目的。测试工具的发展,大大提高了软件测试的自动化程度,让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。设计良好的自动化测试,在某些情况下可以实现“夜间测试”和“无人测试”。在大多数情况下,软件测试自动化可以减少开支,增加有限时间内可执行的测试,在执行相同数量测试时节约测试时间。而测试工具的选择和推广也越来越受到重视。在软件测试工具平台方面,商业化的软件测试工具已经很多,如捕获/回放工具、Web测试工具、性能测试工具、测试管理工具、代码测试工具等等,这些都有严格的版权限制且价格较为昂贵,但由于价格和版权的限制无法自由使用,当然,一些软件测试工具开发商对于某些测试工具提供了Beta测试版本以供用户有限次数使用。幸运的是,在开放源码社区中也出现了许多软件测试工具,已得到广泛应用且相当成熟和完善。二:软件测试的概念与目的软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。1.测试的目的是为了表明软件能够工作2.测试的目的是为了表明软件不能够能够正常工作3.测试的目的不是要证明什么,而是为了把软件不能正常工作的预知风险降低到能够接受的程度4.测试不是行为,而是一种自觉的约束,不用太多的测试投入产生低风险的软件上的。三:自我体会体会一:软件测试在整个软件生命周期中的重要性它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个软件项目的走向,成败与否全在于开始阶段的决策。体会二:软件测试的真正意义这与发现错误,而不在于验证软件是正确的在严格的测试也不能完全的发现软件当中所有的错误,但是测试还是能发现大部分错误的,能确保软件基本可用和软件的适用性,所以在后使用的过程中还需要加强快速响应的环节。结合软件测试理论,故障暴露在最终客户端之前及时主动的去发现并解决。这点需要加强研发队伍的建设。体会三:在系统性能方面需要重视经过这次培训中多个案例的讲解,让我了解到系统在上线之后会有很多不能预知的性能问题,需要在上线之前实现进行模拟,以避免风险,包括大数据量访问,高并发数等等。当然也有很多应对手段,没有那种手段可以称最完美的,只有最合适的,需要灵活的掌握,综合运用以达到最优程度,这个很值的大家一起研究。四:个人想法根据软件部门目前的情况,接下为了我们的软件能在质量上得到保障减轻项目后期维护验收的风险,在此做以下想法和建议;想法一:有效制定软件测试流程;由于前期软件工程项目中,未对软件进行系统化的测试,导致后期维护成本较高,变相增加了软件开发人员的工作量。方案:1:测试需求分析明确需求范围明确每个功能业务处理流程不同的功能点作业务的组合挖掘显示需求背后隐藏的需求测试需求分析:单功能点输入输出------业务流分析-------全局-----隐藏需求挖掘2:阶段测试再软件工程项目中,根据节点、功能模块,业务场景对工程所属软件进行步奏化测试。3:流程关联性测试当所属软件开发初步完成时,对软件进行功能关联性,数据关联性进度完整测试。4:验收测试软件上线阶段,由我们工作人员带领用户进行现场实时测试并收集测试结果加以进一步完善软件项目,根据用户实际情况制定测试周期。想法二:设计测试用例在软件测试时测试用例是很关键的,应为他涉及到一套软件的输入输出发生情况,能够充分的体现和考虑软件各个方面的缺陷(有序测试)。如果没有一套完整的测试用例,那么当测试软件时是很难分析软件输入输出的各种条件,测试起来也较为盲目。(无序测试)。设计测试用例的好处1.在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率2.测试用例的使用令软件测试的实施重点突出、目的明确3.在软件版本更新后只需修正少部分的测试用例便可开展测试工作,降低工作强度,缩短项目周期4.功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精华其效率也不断攀升想法三:功能测试全员化根据软件部门人员实际情况,在开发过程中进程阶段化或模块化测试时,相互交换开发模块形式按需求说明进行功能测试及编写测试报告。想法四:当技术及设施条件充分的情况下可适当做性能测试目前我们在项目建设过程中对性能压力测试的重视程度还不太高,而是在现网进行试用,遇到问题再解决,可能会产生泄后问题,影响客户使用。件的性能测试在技术上来说需要大量的实践和经验才可进行,所以建议在有限的时间和条件下软件部门可以一起学习和实践,对软件性能进行有效的测试,以保障软件的质量降低软件的风险。最后再次感谢公司提供的平台,感谢领导的信任,让我有机会得到相关技术的学习及展示自己能力的机会,我也会尽我所能来完善工作的系统,提高工作效率。王斐2012.8.7
本文标题:软件测试培训心得体会
链接地址:https://www.777doc.com/doc-7244457 .html