《基础知识软件测试.doc》由会员分享,可在线阅读,更多相关《基础知识软件测试.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件评测基础知识软件测试基本概念软件质量与软件测试:软件测试是软件质量保证工作的一个重要环节。软件测试和软件质量保证是软件质量工程的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量,它所关注的是软件质量的检查和测量。软件测试所关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。软件测试定义:软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行的查错(包括代码执行活动与人工活动)。软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一
2、批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序的错误。是在软件投入运行前,对软件需求分析、软件设计规格说明和软件编码的最终复审,是软件质量保证的关键步骤。软件测试目的:(1)测试是一个为了寻找错误而运行程序的过程;(2)一个好的测试用例是指很可能找到迄今为止未发现的错误的用例;(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试的目标是能够以耗费最少时间与最小工作量找出软件系统中潜在的各种错误与缺陷。测试只能证明程序中错误的存在,但不能证明程序中没有错误。软件测试原则:(1)尽早地并不断地进行软件测试;(2)程序员或程序设计机构应避免测试自
3、己设计的程序;(3)测试前应当设定合理的测试用例;(4)测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据;(5)在对程序修改之后要进行回归测试;(6)充分注意测试中的群集现象;(7)妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为软件的维护提供方便;(8)应当对每一个测试结果做全面检查;(9)严格执行测试计划,排除测试的随意性。软件测试对象:软件的测试不仅仅是程序的测试,软件的测试应贯穿于整个软件生命同期中。在软件定义阶段产生的可行性报告、项目实施计划、软件需求说明书或系统功能说明书,在软件开发阶段产生的概要测试说明书、详细设计说明书,以及源
4、程序等都是软件测试的对象。软件测试过程模型:V模型、W模型、H模型。软件测试模型的使用:在实际软件测试的实施过程中,应灵活地运用各种模型的优点,通常可以在W模型的框架下,运用H模型的思想进行独立的测试。当有变更发生时,按X模型和前置模型的思想进行处理。同时,将测试和开发紧密结合,寻找恰当的就绪点开始测试,并反复进行迭代测试,以达到按期完成预定的目标。软件问题分类:软件错误、软件缺陷、软件故障、软件失效。软件测试类型:按开发阶段分:单元测试、集成测试、确认测试(有效性测试)、系统测试确认测试、验收测试按测试实施组织分:开发方测试(验证测试或alpha测试)、用户测试(beta)、第三方测试(独立
5、测试)按测试方式分:动态测试、静态测试按测试技术分:白盒测试、黑盒测试、灰盒测试软件测试过程:用黑盒法设计基本的测试方案,再利用白盒法补充一些必要的测试方案。可以用以下策略结合各种方法:(1)在任何情况下都应该使用边界值分析的方法;(2)必要时用等价划分法补充测试方案;(3)必要时用错误推测法补充测试方案;(4)如果在程序的功能说明中含有输入条件的组合,最好在一开始就用因果图法,然后再按以上(1)、(2)、(3)步进行。(5)对照程序逻辑,检查已设计出的设计方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑覆盖程度没有达到要求的覆盖标准,则应再补充一些测试方案。单元
6、测试主要是对模块的5个基本特性进行测试和评价:(1)模块接口;(2)局部数据结构;(3)重要的执行路径;(4)错误处理;(5)边界测试。在集成测试时,要考虑的问题有:数据经过接口是否会丢失;一个模块对另一模块是否造成不应有的影响;几个子功能组合起来能否实现主功能;误差不断积累是否达到不可接受的程度;全局数据结构是否有问题。确认测试又称为有效性测试、合格测试或验收测试。确认测试主要由使用用户参加测试,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在
7、一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试实质上是由一系列不同测试组成的,其主要目的是充分运行系统,验证系统各个部件是否都能正常工作并完成所分配的功能。系统测试包括:恢复测试、安全性测试、强度测试、性能测试等。验收测试是以用户为主,软件开发人员和质量保证人员也应参加的测试。由用户参加设计测试用例。使用用户界面输入测试数据,并分析测试的输出结果。验收测试往往知系统测试完成后,项目最终交付前进行。测试用例设计方法白盒测试基本技术:控制流图、代码覆盖率分析(Code Coverage Analysis)。白盒测试方法:从总体上可划分为静态测试和动态测试;按测
8、试操作的实施方式划分为手工测试和借助于工具的自动化测试等。白盒测试的静态测试方法:代码检查法、静态结构分析法、代码质量度量法等。白盒测试的动态测试方法:功能确认与接口测试、逻辑覆盖分析法、基本路径测试法、性能分析、内存分析等。动态测试通常在静态测试之后进行。其他白盒测试方法:域测试(Domain Testing)、程序变异测试、符号测试、数据流测试、Z路径测试。常用的黑盒测试用例设计方法有:等价类划分法、边值分析法、错误猜测法、因果图方法等,其他的一些测试方法还有判定表驱动法、正交试验法、功能图法,以及场景法等。面向对象测试关注于设计合适的操作序列以测试类的状态。测试用例设计方法的主要原则包括
9、:(1)对每个测试用例应当给予特殊的标识,并且还应当与测试的类有明确的联系。(2)测试目的应当明确。应当为每个测试用例开发一个测试步骤列表。这个列表应包括以下一些内容:(1)列出所要测试的对象的专门说明;(2)列出将要作为测试结果运行的消息和操作;(3)列出测试对象可能发生的例外情况;(4)列出外部条件;(5)列出为了帮助理解和实现测试所需要的附加信息。软件自动化测试自动化测试可以帮助测试人员做到:(1)提高测试执行的速度;(2)提高运行效率;(3)保证测试结果的准确性;(4)连续运行测试脚本;(5)模拟现实环境下受约束的情况。自动化测试不能做到的是:(1)所有测试活动都可以自动完成;(2)减
10、少人力成本;(3)毫无成本的得到;(4)降低测试的工作量。面向对象软件的测试面向对象技术主要包括6个核心概念:对象、消息、接口、类、继承、多态。面向对象的开发模型实质是将软件测试过程分成3个阶段,即面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。面向对象测试的类型分为:面向对象分析的测试(OOA Test)、面向对象设计的测试(OOD Test)、面向对象编程的测试(OOP Test)、面向对象单元测试(OO Unit Test)、面向对象集成测试(OO Integration Test)、面向对象系统测试(OO System Test)。你面向对象测试类型的另一种划分
11、:模型测试、类测试(用于代替单元测试)、交互测试(用于代替集成测试)、系统(包括子系统)测试、接收测试、部署测试。传统测试模式与面向对象的测试模式的最主要的区别在于,面向对象的测试更关注对象而不是完成输入/输出的单一功能,这样的话测试可以在分析与设计阶段就先行介入,便得测试更好的配合软件生产过程并为之服务。与传统测试模式相比,面向对象测试的优点在于:更早地定义出测试用例;早期介入可以降低成本;尽早的编写系统测试用例以便于开发人员与测试人员对系统需求的理解保持一致;面向对象的测试模式更注重于软件的实质。面向对象测试的过程:(1)指定范围;(2)指定深度;(3)指定已创建的被测试模块的基本要求(上
12、一个阶段需要提供的接口);(4)以基本模型的内容为输入来设计测试用例作为评估标准;(5)生成测试覆盖度量标准;(6)试用测试清单执行静态分析,确保被测模块与基本模型的一致性;(7)执行测试用例;(8)如果覆盖不足以检测所有的活动,就需要分解测试工作,并且使用传统测试用例的方式来警醒,或者中断测试,重新测试传统测试用例。Web应用测试Web应用测试类型:功能测试、性能测试、可用性测试、兼容性测试和安全测试。根据测试对象的不同,Web功能测试又分为链接测试、表单测试、Cookies测试、设计语言测试、数据库测试。Web性能测试是要是确保Web应用系统达到要求的性能,一般用最大运行时间、吞吐率、响应
13、时间描述。Web应用在极端条件下的性能测试又分为负载测试和压力测试。负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统的在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数据,也可以是在线数据处理的数量。压力测试是指实际破坏一个Web应用系统时测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。压力测试侧重于确定系统崩溃时的用户负载量。压力测试的区域包括表单、登录和其它信息传输页面等。Web性能测试:(1)连接速度测试;(2)负载测试;(3)压力测试。Web可用性测试:(1)导航测试;(2)图形测
14、试;(3)内容测试;(4)整体界面测试。Web兼容性测试:(1)平台测试;(2)浏览器测试。Web安装性测试,就是测试Web应用防止未授权用户访问或故意破坏等情况下的能力,其重点是测试SSL(安全套接字)配置、登录模块、事务完整性等方面。网络测试网络性能测试的主要依据是:(1)双方在规划设计阶段共同认可的网络性能指标;(2)有关的国家标准或行业标准。网络性能测试的具体内容应以网络设计方案为准,但一般包括以下内容:(1)网络容量测试:最大容量和有效容量;(2)网络响应时间测试:检测网络系统完成一系列任务所需的时间;(3)网络可靠性测试;(4)网络吞吐量测试;(5)网络配置规模测试;(6)网络瓶颈
15、测试;(7)衰减测试。网络性能测试分类:(1)网络可接受性测试;(2)网络升级测试;(3)网络设备评估测试。网络性能测试的对象:(1)路由器、集线器、交换机和网桥;(2)网段;(3)全局网;(4)网络操作系统;(5)文件服务器;(6)工作站。网络应用测试的主要内容:(1)性能测试;(2)功能测试;(3)网络应用负载测试;(4)应用系统响应时间测试;(5)应用系统升级测试。安全测试软件安全性是与防止对程序和数据的非授权的故意或意外访问的能力相关的软件产品属性。软件安全性的测试包括程序和数据安全性的测试。安全测试内容:用户认证机制、加密机制、安全防护策略、数据备份与恢复、防病毒系统。安全测试策略:
16、(1)安全防护体系:实体安全、平台安全、数据安全、应用安全、通信安全、运行安全、组织安全、管理安全。(2)安全保护国家标准:用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、安全域级保护级。为保证实体、数据、平台、应用、运行等的安全,主要采用以下几种安全防护技术:防火墙、入侵检测系统、漏洞扫描、安全审计、病毒防治、Web信息防篡改。安全测试方法:主动发现方法:功能验证、漏洞扫描、模拟功能、侦听技术。兼容性测试硬件兼容性测试:主机兼容性测试;板卡、配件及外设的兼容性测试。配置指标主要包括对CPU、内存和硬盘的要求。推荐配置就保证软硬件构成的系统在正常业务的压力负载下,CPU资源占用率
17、平均值不超过75%。软件兼容性测试:操作系统兼容性测试、数据库兼容性测试、中间件兼容性测试、与其他软件的兼容性测试。数据兼容性测试:编码体系测试、数据标准符合性测试。新旧系统数据迁移测试:迁移准备、迁移实施、迁移验证。平台软件兼容性测试:平台软件硬件、软件、数据库、文种兼容性测试。易用性测试在2003年颁布的GB/T16260-2003(ISO 9126-2001)软件工程 产品质量质量模型中,提出易用性包含易理解性、易学习性和易操作性;即易用性是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。(1)易理解性;(2)易学习性;(3)易操作性;(4)吸引性;(5)依从性。易用性
18、测试包括针对应用程序的测试,同时还包括对用户手册系统文档的测试。通常采用质量外部模型来评价易用性。包括如下方面的测试:(1)易理解性测试;(2)易学性测试;(3)易操作性测试;(4)吸引性测试;(5)易用的依从性测试。易用性测试方法有:静态测试;动态测试;动态和静态结合测试。软件质量模型将质量属性划分为6种特性:功能性、可靠性、易用性、效率、维护性和可移植性。易用性与可靠性是正相关的;易用性与安全性(功能性的子特性)的某些方面是负相关的。安装测试的主要工作(安装的易用性):(1)安装手册的评估;(2)安装的自动化程度测试;(3)安装选项和设置的测试;(4)安装过程的中断测试;(5)安装顺序测试
19、;(6)多环境安装测试;(7)安装的正确性测试;(8)修复安装测试和卸载测试。功能易用性测试:(1)业务符合性;(2)功能定制性;(3)业务模块的集成度;(4)约束性;(5)交互性;(6)系统信息与错误提示。界面整体测试指对界面的规范性、一致性、合理性等进行测试和评估。文档测试国家有关计算机软件产品开发文件编制指南()*有14种文件,可分为3大类。1. 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。2. 用户文件:用户手册、操作手册。3. 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
20、用户文档分类:联机帮助;样例、示例和模板;包装;宣传与广告;其他。用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。用户文档测试方法:技术校对;功能测试;其他辅助方式。用户文档测试要点:文档的读者群;文档的术语;文档的正确性;文档的完整性;文档的一致性;文档的易用性;样例与示例;文档的语言;印刷与包装质量。用户手册、操作手册的测试:“严格”地使用系统;“随心所欲”地使用系统;尝试文档中的每个建议和注意事项;描述的准确性;从用户角度看手册。联机帮助的测试:准确性、用户的查询;帮助主题的完整性;帮助的风格。测试项目管理软件配置管理的作用:通过软件配置管理,严
21、格执行软件开发过程控制,使软件开发的各个过程阶段()置于软件配置管理控制之下,真实地记录软件生命周期内的全部过程活动,使软件开发从无形变成有形,从无法管理变成有章可循。通过软件配置管理,严格执行软件版本控制(),做到完整保存各种历史软件,有利于验证和比较测试、联试中出现的问题;严格执行软件更改控制,严格审批更动过程。配置管理内容:确立基线;建立3库(开发库、受控库、产品库);出入库管理和审计;状态报告和查询。测试管理组包括评审小组、测试小组和支持小组。软件测试过程分成4个阶段:单元测试、集成测试、系统测试和验收测试。软件测试文档描述要执行的软件测试及测试的结果。测试文件的类型:测试计划和测试分析报告。测试文件的重要性表现在:(1)验证需求的正确性;(2)检验测试资源;(3)明确任务的风险;(4)生成测试用例;(5)评价测试结果;(6)再测试;(7)决定测试的有效性。软件工程领域要考虑的风险类型:(1)项目风险;(2)技术风险;(3)商业风险。风险条目检查表:(1)产品规模风险;(2)商业影响风险;(3)客户相关风险;(4)过程风险;(5)技术风险;(6)开发环境风险;(7)与人员数目及经验相关的风险。
限制150内