软件测试方法简介

上一篇 / 下一篇  2009-08-19 11:23:44

 

冒烟测试smoke testing,据说是微软起的名字。在《微软项目求生法则》一书第14构建过程关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。

冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板的基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

在一般软件公司,软件在编写过程中,内部需要编译多个版本(Builds),但是只有有限的几个版本需要执行正式测试(根据项目开发计划),这些需要执行的中间测试版本,在刚刚编译出来后,软件编译人员需要进行基本性能确认测试,例如是否可以正确安装/卸载,主要功能是否实现,是否存在严重死机或数据严重丢失等Bug。如果通过了该测试,则可以根据正式测试文档进行正式测试。否则,就需要重新编译版本,再次执行版本可接收确认测试,直到成功。

新版本的基本功能确认检查的测试,有的公司成为版本健康检查(Build Sanity Check)。对于编译的本地化软件新版本,除了进行上面提到的各种测试检查,还要检查是否在新的本地化版本中正确包含了全部应该本地化的文件。可以通过采用文件和目录结构比较工具,首先比较源语言版本和本地化版本的文件和目录中的文件数目文件名称和文件日期等,这个过程称为镜像检查(Build Image Check)。

 

二:随机测试—Ad hoc testing

软件测试中除了根据测试样例和测试说明书进行测试外,还需要进行随机测试(Ad-hoc testing),主要根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

随机测试主要是对被测试软件的一些重要功能进行复测,也包括测试那些当前的测试样例(Test Case)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一特殊情况点、特殊的使用环境、并发性、进行检查。尤其是对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。

理论上,每一个被测试软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。

 

三:黑盒测试---Black box testing

指测试人员不关心程序具体如何实现的一种测试方法。根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

 

四:白盒测试---White box testing,根据软件内部的工作原理分析来进行测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

五:α测试---Alpha testing

α测试是由一个用户在开发环境下进行了的测试,也可以是公司内部的用户在模拟实际操作环境下进行的的控制测试,Alpha测试不能由程序员或测试员完成。

 

六:β测试---Beta testing

测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

 

七:自动化测试---Automated Testing

使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI性能测试中用得较多。

八:兼容性测试---Compatibility Testing

也称“配置测试”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器,操作系统,硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

 

九:动态测试---Dynamic testing通过执行软件的手段来测试软件。

 

十:静态测试(Static testing)不通过执行来测试一个系统。如代码检查,文档检查和评审等。

 

十一:功能测试---Functional testing

也称“行为测试(Behavioral testing),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

 

十二:安装测试(Installing testing

确保该软件在正常情况和异常情况的不同条件下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

 

十三:单元测试Unit testing),指一段代码的基本测试,其实际大小是未定的,通常是一个函数或子程序,一般由开发者执行。

 

十四:集成测试(Integrating testing

被测试系统的所有组件都集成在一起,找出被测试系统组件之间关系和接口中的错误码。该测试一般在单元测试之后进行。

 

十五:国际化测试(International testing

国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域中都能正常运行。国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。

 

十六:本地化能力测试(Localizability testing

本地化能力是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力测试是通常在软件的伪本地化版本上进行。本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。、

 

十七:本地化测试(Localization testing

本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法可以分为基本功能测试,安装/卸载测试,当地区域的软件硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。

 

十八:负载测试(Load testing

通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最在预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如:响应时间、事务处理速率和其他与时间相关的方面。

 

十九:引导测试(Pilot testing

软件包开发中,验证系统在真实硬件和客户基础上处理典型操作的能力。在软件外包测试中,引导测试通常是客户检查软件测试公司测试能力的一种形式,只有通过了客户特定的引导测试,软件测试公司才能接受客户真实软件项目的软件测试。

 

二十:可移植性测试(Portability testing

测试瞄准于证明软件包可以被移植到指定的硬件或软件平台上。

 

二十一:健全测试(Sanity testing

软件主要功能成分的简单测试以保证它是否能进行基本的测试。参考“冒烟测试”

 

二十二:回归测试(Regression testing

在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,对软件的任何新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再现。

二十三:GB 18030测试---软件支持GB 18030字符集标准能力测试,包括GB 18030字符的输入、输出、显示、存储的支持过程。

 

二十四:User interface testing (用户界面测试),指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

 

二十五:验收测试—Acceptance testing

系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划各结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产口是否能够满足合同或用户所规定需求的测试。这是管理必和防御性控制。

 



TAG: 测试技术

 

评分:0

我来说两句

Open Toolbar