您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 软件测试基础技术培训教程
实用软件测试技术分析姓名:崔启亮(GavinCui)Email:cuiql@sina.comMSN:QiliangCui@hotmail.com2005年7月2目录•黑盒测试与白盒测试的比较•静态白盒测试•动态白盒测试•黑盒测试技术•软件测试工具概述•测试工具的种类•测试工具的选择•测试工具WinRunner的使用方法3黑盒测试与白盒测试的比较测试方式特征依据测试人员测试驱动程序黑盒测试只关心程序的外部表现,不关心内部设计与实现软件需求测试人员、用户不需要编写额外的测试驱动程序白盒测试关注软件的内部设计与实现,要跟踪源代码的运行设计文档开发人员与测试人员需要编写额外的测试驱动程序有了黑盒测试为什么还需要白盒测试?•黑盒测试只能观察软件的外部表现,即使软件的输入输出都正确,却不能说明软件是正确编码的,因为程序有可能用错误的计算方式得出正确的结果。•白盒测试能发现程序中的隐患,例如,内存泄漏、误差累计等问题,在这方面黑盒测试严重不足。有了白盒测试为什么还需要黑盒测试?•通过了白盒测试只能说明程序代码符合设计需求,并不能说明程序的功能符合用户的需求。如果程序的系统设计偏离了用户需求,即使100%正确编码的程序也不是用户所要的。4静态白盒测试•在不执行程序的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为“结构测试”。•测试执行人可以是程序编码人员,也可以是测试人员(需要代码编写人员协助)•正式审查的四个步骤:–确定问题:出错的项目和遗漏的项目–遵守规则:设定审查的代码量和耗费的时间–准备:要审查的代码和审查的规则–编写报告:总结审查结果•实施方式:–同事审查:其他程序员和测试人员参与–公开陈述:代码编写者向其他人员陈述编码方法5静态白盒测试(续)•代码审查检查项清单–数据引用错误:没有正确初始化,数组下标出界,指针没有分配空间–数据声明错误:变量的类型,命名,是否至少引用过一次–计算错误:除0,变量的值超界–控制流程错误:死循环,是否循环一次都不能执行–子程序参数错误:形参和实参类型是否匹配,子程序更改了金作为输入值的参数–输入输出错误:文件读取、键盘或鼠标输入,打印机或屏幕输出–代码的书写规范:缩进,命名方式,注释等6动态白盒测试•在执行程序的条件下有条理地仔细审查代码和运行状况,从而找出软件缺陷的过程,有时称为“结构测试”。•测试执行人可以是程序编码人员,也可以是测试人员(需要代码编写人员协助)•区分调试和白盒测试,调试的目的是修正代码错误,白盒测试的目的是发现代码错误。•白盒测试之单元测试:–主要检验软件设计的最小单位—模块,在单元测试期间,通常考虑模块的四个特征,模块接口、局部数据结构、“重要的”执行路径、错误执行路径。–单元测试步骤分四部分,首先测试穿过模块接口的数据流,其次,进行数据结构的测试,再次,进行执行路径的选择测试,最后,边界测试是单元测试中的最后工作,也是最重要的工作。–由开发人员编写额外的测试驱动程序进行单元测试。7动态白盒接口与路径测试•接口测试–数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。–根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。如果实际输出与期望的输出不一致,那么说明程序有错误。•路径测试–对于非严格系统而言,在分析路径方面化费很多精力是不值得的。–在构造接口测试的同时已经建立了测试路径。因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。8动态白盒接口与路径测试•路径测试的检查表–数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理•预防漏测的方法–由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没有被测试。预防措施有:•观察是否有程序语句从来没有被执行过。如果发生在这种情况,要么是程序有错误,存在无用的代码;要么是接口测试不充分,漏掉了一些路径。•要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。9黑盒测试•运行程序,观察程序的输入与输出是否正确,把程序看作一个不透明的盒子,不关心内部结构。•黑盒测试可以发现下列错误:–功能不对或遗漏–界面错误–数据结构或外部数据库访问错误–性能错误–初始化和终止错误•黑盒测试类型–安装/卸载测试–兼容性测试–性能测试–系统测试10黑盒性能测试•性能测试的目的–测试软件处理和响应事务的速度–为了检验性能是否符合需求,–得到某些性能数据供人们参考(例如用于产品手册的环境配置要求)。•性能指标的类型–有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。•黑盒性能测试–在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。–例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。11黑盒性能测试注意事项•不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关数据。•应当测试软件在标准配置和最低配置下的性能。•为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件(如杀毒软件)。•不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从100K到1M可以分成若干等级。•由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。12测试工具概述•软件测试工具的作用:–提高测试效率,减少测试执行时间–提高测试精度,某些测试无法使用手工测试完成–实现测试自动化•在测试中应用测试工具,可以发现正常测试中很难发现的缺陷(例如,Numega的DevPartner工具就可以发现软件中的内存方面的问题)•软件测试工具的不足–某些测试工具难于学习和使用,创建和修改测试脚本费时费力,不一定节省时间。–测试工具只能解决某一方便的问题,应用范围狭窄–商业测试工具售价高昂,十几万元一套的假伽非一般公司能承受•软件测试不是万能的,根据测试实际需要确定是否选用和选用什么样的测试工具13测试工具的种类白盒测试工具白盒测试工具黑盒测试工具黑盒测试工具静态测试工具动态测试工具Telelogic的LogiscopePR的PRQACompuware的DevPartnerRational的Purify功能测试工具性能测试工具Rational的TeamTestCompuware的QACenterRadview的WebLoadMicrosoft的WebStressRational的Robot14测试工具的种类(续)性能测试工具性能测试工具测试管理工具测试管理工具数据库测试工具性能优化测试工具TestBytesEcoScopeMercuryInteractive的TestDirectorIBMRational的ClearQuest负载测试工具LoadRunner15测试工具的选择确定需求确定需求工具调研工具调研工具比较工具比较工具使用工具使用工具使用工具使用工具培训工具培训工具购买工具购买选择测试工具的考虑因素:•测试工具的功能•测试工具的价格•培训与售后服务•购买工具的时机建议:•适合的就是最好的•少花钱,多办事•确实需要购买测试工具?•现在就要立刻购买工具?16测试工具WinRunner的使用方法•概述–MercuryInteractive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。•步骤–创建脚本•通过键盘和鼠标对软件操作,自动生成脚本,也可以手工创建测试脚本–插入检查点•在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。17测试工具WinRunner的使用方法(续1)–检验数据•WinRunner能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。–运行测试•创建好测试脚本,并插入检查点和必要的添加功能后,就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除这些干扰。18测试工具WinRunner的使用方法(续2)–分析结果•测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过MercuryInteractive的测试管理工具TestDirector来查阅。–测试维护•随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,不必对程序的每一次改动都重新创建测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用测试投资。每次记录测试时,WinRunner会自动创建一个GUIMap文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUIMap文件而非无数个测试,WinRunner可以方便地实现测试重用。
本文标题:软件测试基础技术培训教程
链接地址:https://www.777doc.com/doc-988431 .html