软件测试术语
错误(error):同义词为过失(mistake)。
故障(fault):同义词为缺陷(defeat),见ISTQB术语表,故障可进一步分为过失故障和遗漏故障(更难检测和纠正)。
失效(failure):只出现在程序的可执行表象中,通常是源代码,实施好的代码审查能够找出故障来避免失效。
事故(incident):失效发生时,不一定能察觉到,事故与失效相关联的症状,警示用户失效发生了。
测试(test):考虑到错误、故障、失效、事故等问题,利用测试用例来测试软件。目标:找出失效和证实软件执行的正确性。
软件测试分类
按开发阶段分类
1.单元测试又称模块测试,检查各单元模块是否实现设计中的功能、性能等;从程序模块的内部结构设计测试用例,多模块并行测试。
2.集成测试又称组装测试,将各模块组装成系统,排除各单元模块连接中可能出现的问题。
3.确认测试又称有效性测试,检测已实现的软件系统是否满足需求规格说明书中的各种需求,以及配置是否完全、正确。
4.系统测试在实际环境或模拟环境下,测试其与硬件、外设、网络等能否正确配置、连接,并满足用户需求,系统需求定义是否符合。
5.验收测试是以用户为主的测试,依据项目任务书或者合同等对整个系统进行测试与评审以决定是否接收软件系统。
按实施测试的组织分类
1.α测试(Alpha Testing)开发方测试,模拟环境以及各类用户操作,用以评价产品的FLURPS1,注重界面和特色,经过α测试的版本称为β版本。
2.β测试(Beta Testing)是用户进行的测试,但≠验收测试,目的是在正式发布前对产品进行最后的改进,类似于内测,衡量产品的FLURPS1,注重产品的支持性,包括文档、客户培训和支持产品生产能力。
3.第三方测试由不同的开发方和用户模拟环境测试,保证客观、公平。
按测试策略分类
1.白盒测试(White-box Testing)结构测试、逻辑驱动测试,测试内部逻辑结构和处理过程,包含静态+动态测试。
2.黑盒测试(Black-box Testing)功能测试、数据驱动测试,不考虑内部结构和逻辑过程,在程序接口进行测试,检查需求规格说明书中的功能是否实现,动态测试。
3.灰盒测试(Gray-box Testing)介于黑盒测试与白盒测试之间,依据程序运行的外部表现和内部逻辑结构设计测试用例,执行程序,采集程序执行路径信息和外部用户接口结果。一般认为集成测试采用的测试策略近似于灰盒测试。
按测试执行方式分类
1.静态测试(Static Testing)不实际执行程序,采用人工手段及静态测试工具进行测试,检查软件表示与描述是否一致。
2.动态测试(Dynamic Testing)实际运行测试用例。
其他测试方法及技术
■回归测试:由修改、添加新模块引起的改变,验证对软件引入的修改的正确性及其影响而进行的测试。
■迭代测试:对当前迭代周期产品的增量测试,以及对原迭代周期已完成产品的回归测试。
■功能测试:验证产品的功能特性、可操作性是否符合需求。
■性能测试:产品/组件性能是否符合需求,包括负载(压力)测试、强度测试、容量测试、疲劳测试等。
■安全性测试:对非法侵入的防范能力,测试后应使非法入侵软件系统的代价大于被保护信息的价值。
■可靠性测试:在一定环境下系统正常工作的概率,可靠性=MTBF(平均无故障时间)=两次失效间的平均操作时间。
■兼容性测试:测试软件能否与其他不同的软件协作运行,配置测试则是为了保证软件在其他相关的硬件上能够正常运行。
■可移植性测试:是否可移植到其他平台或指定的硬件上。
■冒烟测试:一般为版本编译人员进行测试,确认软件基本功能正常。
■用户界面测试:确保界面简洁美观可操作等。
■随机测试:测试人员依据经验对软件功能、性能等进行抽查。
■引导测试:软件开发中验证系统在真实硬件和客户基础上处理典型操作的能力。
■本地化测试:基本功能测试,安装/卸载测试,当地软硬件的兼容性测试等。
测试基本流程
测试需求分析→测试计划→测试设计→测试执行→评估阶段
软件测试过程模型
V模型
是瀑布模型的变种。低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
缺点:测试与开发不同步,无法尽早的发现问题。
W模型
优点:测试与开发同步进行,有利于更早的发现问题。
缺点:无法支持迭代和变更调整。
H模型
优点:软件测试是一个独立的流程,贯穿产品的整个生命周期,与其他流程同步进行。
缺点:太过模型化。
X模型
左侧是针对单独程序片段进行的相互分离的编码和测试,然后再进行频繁的交接,通过集成最终合成可执行的程序;右上方是针对已集成的可执行程序进行测试、封版提交给用户;右下还提供了不进行实现计划的探索性测试。
优点:帮助有经验的测试人员发现更多测试计划之外的错误。
缺点:可能造成人力、物力和财力的浪费,对测试人员的熟练程度要求高。
前置模型
在设计阶段进行测试计划和测试设计,让验收测试和技术测试保持相互独立。
优点:用低成本来及早发现错误,节省时间,减少重复性工作。
测试用例的类型
测试用例的属性:输入数据、操作步骤、期望结果。
需求测试用例:是否符合需求。
设计测试用例:符合系统逻辑结构,代码与设计相符。
代码测试用例:代码的逻辑结构和使用的数据。
测试用例的一般结构包括:标志符(Identification),所属模块(可选),测试项(Test Items),测试用例名称,测试环境要求,输入标准,输出标准,测试用例之间的关联,优先级,关联的缺陷标识符2。