功能测试
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
定义
Functional testing(功能测试),也称为behavioral testing(行为测试),根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。
功能测试[1]也叫黑盒子测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码.一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。
性能测试(商用的Loadrunner、PerformanceRunner(简称PR))
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。 兼容性测试(向前兼容、向后兼容、软、硬件的兼容) 基本概念 所谓兼容性,是指几个硬件之间、几个软件之间或是几个软硬件之间的相互配合的程度。兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之间的兼容性比较好,反之就是兼容性不好。 而在软件行业,一种是指某个软件能稳定地工作在若干个操作系统之中,就说明这个软件对于各系统有良好的兼容性。再就是在多任务操作系统中,几个同时运行的软件之间,如果能稳定地工作,不频繁崩溃、死机,则称之为它们之间的兼容性良好,反之兼容性不好。另一种就是软件共享,几个软件之间无需复杂的转换,即能方便地共享相互间的数据,也称为兼容。 界面测试(UI) 简介 界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且
设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。 测试目标 通过用户界面 (UI) 测试来核实用户与软件的交互。UI测试的目标在于确保用户界面向用户提供了适当的访 问和浏览测试对象功能的操作。除此之外,UI 测试还要确保 UI 功能内部的对象符合预期要求,并遵循公司或行业的标准。 1、通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab 健、鼠标移动和快捷键)的使用。 2、窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准。 规则 方式 目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。 主要从一下方面测试:易用性、规范性、帮助设施、合理性、美观与协调性、菜单位
置、独特性、快捷方式的组合、安全性考虑。 随机测试 软件测试中除了根据测试样例和测试说明书进行测试外,还需要进行随机测试(Ad-hoctesting),主要是根据测试者的经验对软件进行功能和性能抽查。 随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。 理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。 验证 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情(Dotherightthing)。确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;评市、审查、测试、检查、审计等各类活动,或对某些项处理、服
务或文件等是否和规定的需求相一致进行判断和提出报告。 确认 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Doitright) 静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性; 动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。 软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。 目标 测试是为了发现程序中的错误而执行程序的过程; 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试。 测试策略 (测试策略是测试的办法或方案) 16种测试策略:
功能测试,性能测试,压力测试,容量测试,安全性测试,GUI测试,可用性测试,安装测试,配置测试,
异常测试,备份测试,健壮性测试,文档测试,在线帮助测试,网络测试,稳定性测试
在:正常情况下测试;非正常情况下测试;边界测试;非法,极端测试;
本地化测试 分类:企业本地化、市场本地化、生产和技术本地化、人才本地化、网络本地化、软件本地化、游戏本地化等。 软件本地化是指将某一产品的用户界面(UI)和辅助材料(文档资料和在线帮助菜单)从其原产国语言向另一种语言转化,使之适应某一外国语言和文化的过程。软件本地化包括本地化翻译、本地化开发和本地化测试。妙文翻译本地化中心于2004年4月建立软件本地化中心,由一组认真负责的程序员、译员和工程师组成,他们在程序语言及开发环境方面的知识无可挑剔,可为您提供专业、高效、准确 软件本地化 的本地化翻译及本地化测试解决方案。“软件本地化”是指将软件产品按照最终用户的使用习惯、语言以及需要进行转换和定制的过程。它包括文字翻译、多字节字符集支持、用户界面重新设计和调整、本地化功能增强与调整、桌面排版 (DTP)、编译、测试等。本地化是为解决网站、软件以及文档资料向其它国家推广时遇到的语言障碍问题。网站需要翻译成不同国家的语言,以便不同国家的人能够无障碍地阅读网站内容,这便是网站本地化。软件也需要本地化,以便能够在目标国家推广。当然将网站或软件本地化为全世界所
有语种是不现实的,一般的惯例是只面向几种主要的语种(尤其是英语)进行本地化,比如现在许多国内网站都有中英文两个版本,有些还有日语、韩语等版本。本地化不仅仅是简单的文字翻译转换,还必须根据目标语言国家的市场特点、文化习惯、法律等情况进行本地特性开发、界面布局调整等工作。我公司在这方面具有深厚的技术背景及业务经验,已经为众多国内外企业提供了优秀的本地化服务。
软件测试按使用的测试技术不同可以将测试分为静态测试和动态测试。
静态测试
静态测试是指依据需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行,对软件进行分析、检查和测试,不实际运行被测试的软件,约可找出30~70%的逻辑设计错误。
动态测试
动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的两个基本要素:被测试程序和测试数据(测试用例)。
静态测试可以分为静态分析和代码审查。动态测试可为分白盒测试、黑盒测试和穷尽测试。
静态分析
静态分析是一种计算机辅助静态分析方法。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析的对象是计算机程序,程序设计语言不同,相应的静
态分析工具也就不同。目前具备静态分析功能的软件测试工具如Purify、Macabe等。
代码走查
代码走查是一种人工测试方法。包括代码评审和走查。主要依靠有经验的程序设计人员根据软件设计文档,通过阅读程序,发现软件缺陷。
白盒测试
白盒测试又称结构测试,玻璃盒测试或基于覆盖的测试。
白盒测试是一种按照程序内部的逻辑结构设计测试方法。在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。
白盒测试把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
黑盒测试
黑盒测试又称为功能测试,数据驱动测试,基于规格说明书的测试。
黑盒测试是一种从软件需求开发,根据软件需求规格说明设计测试用例,并按照测试用例的要求运行被测程序的测试方法。
它根据软件产品的功能设计规格,在计算机上进行测试,以证实每个已经实现的功能是否符合要求。
黑盒将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。即检查适当的输入是否能够产生适当的输出。
穷尽测试
不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错误。
单元测试
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。
单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的更大部分。方法是测试片段的组合,并最终扩展成进程,将模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。
集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。
目的
是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。
目标
集成测试的目标是按照设计要求使用那些通过单元测试的构件来构造程序结构。单个模块具有高质量但不足以保证整个系统的质量。有许多隐蔽的失效是高质量模块间发生非预期交互而产生的。以下两种测试技术是用于集成测试:
1)功能性测试。使用黑盒测试技术针对被测模块的接口规格说明进行测试。
2)非功能性测试。对模块的性能或可靠性进行测试。
方法
集成测试应该考虑以下问题:
1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
2、各个子功能组合起来,能否达到预期要求的父功能;
3、一个模块的功能是否会对另一个模块的功能产生不利的影响;
4、全局数据结构是否有问题;
5、单个模块的误差积累起来,是否会放大,从而达到不可接受的成都。
系统测试
系统测试,英文是System Testing。是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
内容
系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
系统测试的目的是验证最终软件系统是否满足用户规定的需求。
主要内容包括:
1、功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如《产品需求规格说明书》。由于正确性是软件最重要的质量因素,所以功能测试必不可少。
2、健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含
义:一是容错能力,二是恢复能力
分类
比较常见的、典型的系统测试包括恢复测试、安全测试、压力测试。下面对这几种测试进行一一介绍:
1)恢复测试
恢复测试作为一种系统测试,主要关注导致软件运行失败的各种条件,并验证其恢复过程能否正确执行。在特定情况下,系统需具备容错能力。另外,系统失效必须在规定时间段内被更正,否则将会导致严重的经济损失。
2)安全测试
安全测试用来验证系统内部的保护机制,以防止非法侵入。在安全测试中,测试人员扮演试图侵入系统的角色,采用各种办法试图突破防线。因此系统安全设计的准则时要想方设法使侵入系统所需的代价更加昂贵。
3)压力测试
压力测试是指在正常资源下使用异常的访问量、频率或数据量来执行系统。在压力测试中可执行以下测试:
①如果平均中断数量是每秒一到两次,那么设计特殊的测试用例产生每秒十次中断。
②输入数据量增加一个量级,确定输入功能将如何响应。
③在虚拟操作系统下,产生需要最大内存量或其它资源的测试用例,或产生需要过量磁盘存储的数据。
验收测试(是由用户/客户确认是否接受的验收性测试)
验收测试,系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
常用策略
实施验收测试的常用策略有三种,它们分别是:
· 正式验收
· 非正式验收或 Alpha 测试
· Beta 测试
web测试(网页测试)
功能测试检查项:
1. 表单测试:必填项,提示信息,边界值,数据类型,字符长度,特殊字符
2. 链接测试:风格,链接正确,导航条,图片链接
3. 图形测试:图片大小,位置,相关说明,字体,大小,颜色,背景前景
4. 表格:样式
5. 内容测试:信息归类是否正确,显示位置,检索功能
6. 浏览器测试:功能,风格显示等
常见错误类型:
页面链接和风格、相关性检查、按钮功能、字串长度、字串类型、重复提交、回退、上传下载、必填项、快捷键、刷新、信息重复、功能错误、功能遗漏、界面错误、外部数据库错误。
因篇幅问题不能全部显示,请点此查看更多更全内容