测试模型
V模型:需求分析——概要设计——详细设计——编码——
单元测试——集成测试——系统测试——验收测试
V模型和瀑布模型有一些共同的特性,V模型中的过程从左到右,描述了基本的开发过程和测试行为。
优点:每一阶段都清晰明了,便于控制开发的每一个过程,既包含单元测试又包含系统测试。
缺点:测试介入得较晚,对于前期的一些缺陷无从发现和修改,测试和开发串行,总用时较长。
W模型:W模型是V模型的发展,强调的是测试伴随整个软件开发的周期,测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
优点:测试伴随软件的整个生命周期,例如在需求分析结束后就可以进行需求分析测试,测试与开发是并行独立进行的。
缺点:对需求和测试技术要求高,适用于大中型企业。
测试和开发的关系:
目标相同:制造出高质量的软件。
相辅相成:开发经验对测试有用,测试经验对开发有用。
侧重点不同:开发偏重从无到有,测试偏重从有到优。
软件测试的分类:测试(开发)的 阶段,是否覆盖源码,是否运行,是否自动化,地域测试,其他测试分类。
按测试阶段看:单元测试,集成测试,系统测试,验收(交付)测试。
α测试就是内侧,β测试就是公测。
是否覆盖源码:分为白盒测试和黑盒测试和灰盒测试。
白盒测试:覆盖源码。
语句覆盖:代码里每一条语句都会被测到。
判断覆盖:判断语句里每一个判断条件都会走到。
条件覆盖:每一个相关条件语句都会走到。
路径覆盖:代码每个分支都会走到。
黑盒测试:没有覆盖源码,只关心输入输出(有数电那味了)。不关心代码如何实现,只关心代码有没有问题。
如功能测试:UI(界面)测试,业务(功能)测试,文档测试,易用性测试,安装和卸载测试,兼容性测试(浏览器测试,平台测试,本身的兼容性)。
如性能测试:一般性能测试——响应速度、对资源的利用(CPU的使用率,GPU,内存),稳定性测试,负载测试,压力测试。
灰盒测试:关心输入输出,考虑程序的运行状态。
是否运行:静态测试和动态测试。
静态测试:测试程序的结构,程序过程,接口是否正常,代码的风格是否符合标准。
是否自动化:手工测试,自动化测试。
地域测试:本地化测试,国际化测试。
其他测试分类:回归测试,冒烟测试(硬件测试词语,基本功能,基本的模块能否正常运行),随机测试(monkey测试,乱点,看会不会崩掉),探索测试。