文章目录
一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义
标准定义
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于验证它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试以是否满足需求为目标。
Bug和缺陷
bug是软件(包括程序和文档)中不符合用户需求的问题。
bug类型包括:
完全没有实现的功能功能或性能上的问题或差异多余的功能
二、软件测试与软件质量保证
软件质量保证(SQA)是为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。
三、软件测试七大基本原则
不可能执行穷尽测试Zero bug和Good Enough测试应尽早启动,尽早介入测试应追溯需求缺陷存在集群现象(二八原则)缺陷具有免疫性(杀虫剂悖论)——使用交叉测试测试只能证明软件存在错误而不能证明软件没有错误,测试是无法显示潜在的错误和缺陷四、软件测试分类
按测试手段
白盒测试(逆向观点-证明程序有错)接口测试也是一种白盒测试。黑盒测试(正向观点-软件是否正常工作) 功能测试:逻辑功能、界面测试、易用性测试、安装测试、兼容性测试性能测试:一般性测试、稳定性测试、负载测试、压力测试
按测试执行方式
静态测试:不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误动态测试:通过观察代码运行过程,来获取系统信息,对系统进行验证。按测试阶段或层次
单元测试:采用白盒测试的手段,针对模块或组件进行测试,和编码同步进行。集成测试:白盒测试和黑盒测试相结合。将模块按设计要求组装起来。目标是发现接口问题。系统测试:将软件系统看成一个系统测试。包括对功能、性能以及软件所运行的硬软件环境进行测试。 回归测试:在修改了旧代码后,重新执行上一个版本的测试用例以确认没有引入新的错误。冒烟测试:对每一个新编译的正式版本,确认软件的基本功能正常,可以开展后续测试工作。 验收测试 α测试:由一个用户在开发环境下进行的测试。β测试:使用由软件最终用户(多个)在用户场景进行的测试。按测试对象
可靠性测试兼容性测试安全性测试性能测试功能测试文档测试界面测试:也称UI测试。测试功能模块界面上看到的所有元素(包括空文字、控件等)颜色风格是否统一,布局是否合理、美观,符合用户习惯等等。五、软件测试过程模型
V模型
与软件开发瀑布模型相对应
局限性:软件测试作为设计和编码后的一个阶段,忽视了测试对需求分析、系统设计的验证。不能体现尽早测试的原则。
W模型
增加了软件开发各阶段中同步进行的验证和确认活动。
一旦由文档提供,就要及时确定测试条件、编写测试用例。
优点:
测试与开发同步进行测试的不仅仅是程序,还包括需求和设计。能尽早地发现软件缺陷
局限性:需求、设计、编码活动被视为串行的,同样,测试和开发也有前后关系。无法支持迭代的开发模型。
H模型
H模型将测试活动完全独立出来,形成了一个完全独立的流程,贯穿于产品的整个生命周期。将测试准备活动和测试执行活动清晰的体现了出来。
优点:
揭示了软件测试除测试执行外,还有很多工作;软件测试完全独立,贯穿整个生命周期,与其他流程并行;测试可以尽早准备、尽早执行,有很强的灵活性;可以根据被测物的不同而分层次、分阶段、分次序进行,是可迭代的。
局限性:
对管理要求高对技术要求高:要求合理定义每次迭代的规模。测试就绪点模糊:很多时候并不知道测试就绪点应该放在哪是合适的。
X模型
针对单独的程序片段进行相互分离的编码和测试,通过频繁的交接,最终集成为可执行的程序。
X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。