ISTQB基础知识软件测试设计技术测试工具类型测试工具类型测试静态分析工具概述静态分析工具是由开发者在单元和集成测试之前使用的辅助工具。在进行静态分析时,不需要运行所测试的程序,而是通过检查程序代码,对程序的数据流和控制流信息进行分析,找出系统的缺陷,得出测试报告。静态分析工具可以发现的缺陷类型引用了一个未定义值得变量;发现模块和组件之间的不一致性;从未使用的变量;不可到达(死)的代码;编程标准违例的情况;安全的脆弱性;代码和软件模型的语法错误。常见静态分析工具Telelogic公司的Logiscope软件;PR公司的PRQA软件。功能测试工具概述使用功能测试自动执行工具,一方面,能保证回归测试的完整、全面性,测试人员也能有更多的时间来设计新的测试用例,从而提高测试质量;另一方面,能缩短回归测试所需要的时间,缩短软件产品的面市时间。功能测试自动执行工具的测试对象是那些拥有图形用户界面的应用程序。成熟的功能测试自动化工具要包括以下几个基本功能:录制和回放检验可编程常用工具WinRunnerQuickTestProfessionalRobot功能测试工具的录制和回放录制就是记录下对软件的操作过程回放就是把工具录制的操作过程重新执行的操作。方法启动功能测试自动化工具,打开录制功能,依照测试用例中的描述一步一步的操作被测软件,功能测试自动化工具会以脚本语言的形式记录下你操作的全过程。依照此方法,可以将所有的测试用例进行录制。在需要重新执行测试用例时,回放录制的脚本,功能测试自动化工具依照脚本中的内容,操作被测软件。检查点测试自动化工具的检验功能,在测试脚本中设置检验点,使得功能测试自动化工具能够对操作结果的正确性进行检验,这样,就实现了完整的测试用例执行自动化。软件界面上的一切界面元素,都可以作为检验点来对其进行检验。功能测试工具的编程可编程的优点对脚本的执行过程进行更多的控制,比如依据执行情况进行判断,从而执行不同的路径,或者是对某一段脚本重复执行多次。编程脚本象传统的程序语言一样,在功能测试自动化工具录制的脚本中,可加入分支,循环,函数调用这样的控制语句。通过对脚本进行编程,能够使脚本更加灵活,功能更加强大,脚本的组织更富有逻辑性。在传统的编程语言中适用的那些编程思想,在组织测试自动化脚本时同样适用功能测试工具的应用过程准备录制保证所有要自动化的测试用例已经设计完毕,并形成文档。进行录制打开功能测试自动化工具,启动录制功能,按测试用例中的输入描述,操作被测试应用程序。编辑测试脚本通过加入检测点、参数化测试,以及添加分支、循环等控制语句,来增强测试脚本的功能,使将来的回归测试真正能够自动化。调试脚本,保证脚本的正确性。在回归测试中运行测试在回归测试中,通过功能测试自动化工具运行脚本,检验软件正确性,实现测试的自动化进行。分析结果,报告问题查看测试自动化工具记录的运行结果,记录问题,报告测试结果。结构性测试(覆盖)工具覆盖工具能通过衡量和跟踪代码执行及代码稳定性,帮助开发团队节省时间和改善代码可靠性覆盖工具可以针对程序的逻辑结构设计测试用例,用逻辑覆盖率来衡量测试的完整性。覆盖工具利用程序的逻辑结构图进行覆盖运行,运行完成后可以立即统计白盒覆盖率常见覆盖测试工具Telelogic公司的Logiscope性能测试工具概述性能测试工具实际上是一种模拟软件运行环境的工具,帮助在实验室里搭建出需要的测试环境通过性能测试工具来检验是否达到客户所要求的性能指标,通过性能测试工具能分析各种问题和性能瓶颈,为进一步改善系统性能提供帮助。现在,基于Web是软件系统发展的一个趋势,性能测试也就变的比以往更加重要了,性能测试工具也自然会在软件测试过程中被更多的使用。特点新一代的性能测试工具可以使测试工程师无人值守地运行,借助这些工具可以使测试执行时间预先设置,而后脚本自动开始,无需任何人工干预。许多自动性能测试工具可允许虚拟用户测试,在虚拟用户测试时,测试工程师可仿真几十个、几百个或几千个执行各种测试脚本的用户。压力测试工具概述压力测试是一个让服务器机运行在高压力场景下观察它是否会崩溃的过程。例如,让客户机应用连续运行多个小时、让某个测试程序重复运行很多次或运行很多不同的测试程序。压力测试对于确保应用程序能够控制生产条件是很重要的,因为在生产时,对机器资源的无效管理能够导致系统崩溃。特点通过压力测试工具具有的资源监控特性,使得压力测试变得容易。可以很快发现应用程序在资源管理方面存在的问题。压力测试工具可以识别系统的薄弱环节。许多自动压力测试工具还可以包括负载仿真器,该仿真器可使测试工程师同时模拟几百个或几千个使用目标程序的虚拟用户压力测试工具可以发现的缺陷类型内存泄漏、性能问题、锁定问题、并发问题、系统资源过量消耗问题以及磁盘空间耗尽的情况。压力测试工具的类型Radview公司的WebLoad;Microsoft公司的WebApplicationStress等工具;针对数据库测试的TestBytes;对应用性能进行优化的EcoScope等工具。MercuryInteractive的LoadRunner一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,更快的查找和发现问题。其它测试工具测试设计工具、调试工具、嵌入式测试工具。测试设计工具是设计测试用例的软件工具。很多设计测试用例的原则、方法是固定的,比如等价类划分、边界值分析、因果图等等,这些成型的方法,很适合通过软件工具来实现。测试用例设计工具按照生成测试用例时数据输入内容的不同,可以分为:基于程序代码的测试用例设计工具和基于需求说明的测试用例设计工具。嵌入式测试工具在测试嵌入式软件专用的一套测试工具集,它贯穿于软件设计、开发、代码评审、单元/集成测试、系统测试、以及软件维护阶段。它面向源代码进行工作。嵌入式软件测试工具针对编码、测试和维护。嵌入式软件测试工具可以帮助代码评审(Review)和动态覆盖测试(Testing)。自动化测试及工具概述软件自动化测试是执行用某种程序设计语言编制的自动测试程序,控制被测软件的执行,模拟手工测试步骤,完成全自动或半自动测试手动测试测试人员根据测试大纲中所描述的测试步骤和方法,由手工地输入测试数据,记录测试结果。能详细地测试软件的各个功能,测试速度由人来控制,能够完整而从容地观察软件的运行情况并立即报告测试结果。手工测试的缺点测试人员要负责大量文档、报表的制订和整理工作,花费大量时间;受软件开发周期、开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试;如果修正缺陷所花费的时间相当长,回归测试将变得异常困难;反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一致,测试花费的时间越长,测试的严格性也就越低;组织一次多用户的测试很不方便需要花费巨大的人力和物力,并且其效果并不明显;难以对不可视对象或对象的不可视属性进行测试自动化测试的优点执行一些手工测试不可能或很难完成的测试使用得当时,可以提高测试的效率提高测试准确度提高一致性和可重复性,有利于执行回归测试缩短测试的时间自动化测试的缺点自动化测试可能降低实际的测试效率这种情况发生在仅进行很少的软件测试时。期望自动测试发现大量错误。测试在首次进行时可能发现大量的错误,如果测试已经进行过,则再次运行发现错误的概率要小得多。除非测试一段已经修改过的代码或者软件的其它部分的修改影响了这段代码,或者在不同的环境中运行这段代码。技术问题。商用测试工具是软件产品,作为第三方的软件产品,不具备解决问题的能力和技术支持。同样的原因,测试工具和其它软件的互操作性也是一个严重的问题,技术环境变化如此之快,使测试工具很难跟得上。手工测试与自动化测试的过程对比执行用户操作1等待程序处理完成2与预期结果对比验证3完成所有操作4生成自动脚本1同步脚本回放2添加检查点3运行测试脚本4自动化测试的认识误区不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才测试工具本身的问题影响测试的质量没有进行有效的、充分的培训没有考虑到公司和项目的实际情况,盲目引入测试工具没有形成良好的使用测试工具的环境其它技术问题和组织问题正确认识自动化测试自动化测试并不能完全代替手工测试。不要期望有了自动化测试就能提高测试的质量。自动测试也需要测试人员具备相应的技术,如脚本开发等。如果缺少了这些必备的技能,自动测试很难保证可靠和高效自动化测试只能发现15%左右的缺陷,85%的缺陷需要手工测试发现下列情形不适合自动化测试:客户定制的一次性项目测试周期短的项目自动测试技术难以实现的验证:验证本地化后软件的界面语言是否翻译,并翻译正确,俗称语言相关测试;验证本地化后软件的界面布局是否对齐、美观;发布前夕的验收测试易用性测试自动化测试团队引入自动化测试的条件清晰定义并且严格实施的过程各级组织领导的支持周密的计划具体的设计和架构选择测试工具的原则与潜在测试对象进行交互的质量测试人员对工具或方法的知识积累集成到现有开发环境的便捷性与使用的其它工具集成的可能性工具要部署的系统平台制造商的服务、可靠性和市场地位许可条件、价格、维护成本选择测试工具所需要考虑的关键点评估组织的成熟度(maturity)、分析引入工具的优点和缺点和认识引入工具能改善测试过程的可能性。根据清晰的需求和客观的准则进行评估。概念验证(proof-of-concept),在评估阶段要确认在现有的情况下使用工具对被测软件是否有足够效果,或为了有效使用工具,目前的基础设施需要如何改变。对工具提供商进行评估(包括培训、提供的支持及其他商业方面考量)或针对非商业性工具要考虑供应商提供的服务。确定在工具使用方面应提供的指导和内部培训需求。评估培训需求时需要考虑现有测试团队的自动化测试技能。根据实际的情况估算成本-收益比。在组织内成功部署工具的因素逐步在组织的其他部门推广工具。调整并改进过程来配合工具的使用。为新使用者提供培训和指导。定义使用指南。找到并实施学习工具使用方面教训的方法。监测工具的使用和收益情况。为测试团队使用工具提供支持。在所有团队内收集经验和教训。自动化测试的7个步骤正确选择自动化测试工具定义问题测试自动化的解决方案工具供应商确定需求候选评估演示检验做出决定约束成立小组商务谈判时间表工具软件市场谢谢观看