软件测试是与软件开发紧密相关的一系列有计划、系统性的活动,软件测试也需要测试模型去指导实践。由于软件开发与软件测试之间的紧密关系,可根据不同的开发模型,引申出对应的测试模型。
1、软件测试模型有:V模型、W模型、H模型、X模型、前置测试模型。测试所遵循的原则是“尽早地和不断地进行软件测试”。
2、V模型的优缺点:
优点:
(1)将复杂的测试工作按阶段划分为各个小阶段来实现
(2)从多角度测试系统找出更多的缺陷
缺点:
(1)软件测试容易误导为软件开发的最后一个阶段
(2)需求、设计阶段产生的问题不能很早发现
(3)质量控制和测试效率无高效发挥
3、W模型的优缺点:(对V的改进)
优点:
(1)测试和开发同步进行,有利尽早发现问题
(2)增加非程序角度测试系统的思想
(3)测试准备及设计工作提前,提高测试质量和效率
缺点:
(1)把软件开发视为需求、设计、编码等一系列的串行活动
(2)开发和测试保持一种线性的前后关系
(3)无法支持迭代、自发性以及变更调整
4、H模型的优缺点:(对W和V的改进)
优点:
(1)将测试从开发中独立出来,利于研究更深的测试方法
(2)同时测试多个项目时,可对测试技术重复利用
(3)高效调整测试人员
(4)缺陷修复时不受项目组内部人员限制
缺点:
(1)独立的测试组对系统认识不够深入
(2)影响测试质量及测试效率
5、X模型的优缺点:(对V模型的改进)
优点:
(1)强调单元测试及集成测试的重要性
(2)引入探索性测试使测试模型与现实更接近
(3)缺陷修复时不受项目组内部人员限制
缺点:
(1)只强调测试过程中的部分内容
(2)没有对需求测试、验收测试等内容进行说明
6、前置测试模型:将测试与开发紧密结合,认识到验收测试中包含的3个要素:基于测试的需求、验收标准、验收测试计划。前置测试模型用较低的成本来及早发现错误,并且充分强调了测试对确保系统的高质量的重要意义。
7、按照开发阶段,将软件测试类型分为:单元测试、集成测试、系统测试、验收测试。
单元测试内容:(最小单元,即程序模块)
(1)单元功能测试
(2)单元接口测试
(3)单元局部数据结构测试
(4)单元中重要的执行路径测试
(5)单元的各类错误处理路径测试
(5)单元边界条件测试
集成测试内容:(子系统组装测试、联合测试)
(1)模块间接口测试
(2)模块间数据传递
(3)全局数据结构测试
系统测试内容:(完整逼真模拟)
(1)从用户角度对系统做功能性的验证
(2)非功能性的验证,如压力、安全性、容错等
验收测试内容:(交付测试、发布测试、确认测试)包括易用性、兼容性、安装、文档等测试
(1)对整个系统的测试与评审
(2)根据验收通过准则分析测试结果
(3)决定是否接收系统及测试评价
8、按照测试实施组织,将测试类型分为:开发方测试、用户测试、第三方测试
开发环境测试内容:验证测试,α测试
(1)由内部的用户(不能由程序员或测试员)进行的受控测试
(2)证实软件满足规定的需求
(3)注重产品的界面和特色
用户环境测试内容:β测试,切记,用户测试≠验收测试
(1)由最终用户在客户场所进行验证
(2)不受开发者控制
(3)注重产品的支持性
第三方测试内容:需求分析审查、设计审查、代码审查、单元测试、功能测试、性能测试、并发测试、健壮性测试等
(1)介于开发方和用户方间第三方组织的测试
(2)保证测试工作的客观性
(3)评审需求、设计、用户类文档
(4)单元测试、功能测试、性能测试等
9、按照测试技术分类:黑盒测试、白盒测试、灰盒测试
黑盒测试内容:(功能测试)
(1)对界面测试
(2)对功能测试
(3)从用户角度出发
白盒测试内容:(结构测试)
(1)检查所有结构及路径是否正确
(2)检查软件内部动作是否按规定进行
灰盒测试内容:
(1)关注输出对于输入的正常性
(2)关注内部表现
(3)介于黑盒和白盒之间
10、按测试执行方式分类:静态测试(代码审查、静态结构分析、代码质量度量)、动态测试(编写测试用例、执行程序、分析程序的输出结果)
11、按测试对象分类:功能测试、界面测试、流程测试、接口测试、安装测试、文档测试、源代码测试、性能测试(负载、压力、稳定性、并发、大数据量)、数据库测试、网络测试。
12、文档测试分为:非交付用户的文档测试(需求文档、测试文档)和交付用户的文档测试(需求文档、用户手册、安装手册)。用户文档测试主要从读者群、术语、正确性、完整性、一致性、易用性、图表与界面截图、样例和示例、语言、印刷和包装几方面测试。
13、两个公式:
平均并发用户数:C=NL/T,其中N是登录用户数,L是会话平均长度,T是考察时长
并发用户峰值数:C’≈3
一般情况下,把每天访问用户数的10%作为平均的并发用户数。
14、按照质量属性分类:容错性测试、兼容性测试、安全性测试、可靠性测试、可用性测试、维护性测试、可移植性测试、易用性测试。
兼容性测试分为软件兼容性、硬件兼容性、数据兼容性,软件又分为操作系统兼容、浏览器兼容、分辨率兼容、数据库兼容、与其他软件兼容性
15、软件维护分为三大类:
(1)纠正性维护。纠正软件存在的错误
(2)适应性维护。为适应包部环境对软件做出修改
(3)完善性维护。提升性能或扩大功能
15、按照测试地域分类:本地化测试、国际化测试
16、黑盒测试试图发现以下几类错误:
(1)是否有不正确或遗漏了的功能
(2)接口上能否正确的接受输入,能否产生正确的输出
(3)访问外部信息是否有错
(4)性能是否满足要求
(5)界面是否错误或不美观
(6)初始化或终止错误
17、黑盒测试的优点:
(1)比较简单,不需要了解程序内部的代码及实现
(2)与软件的内部实现无关
(3)从用户角度出发,能很容易地知道用户会用到哪些功能和遇到的问题
(4)基于软件开发文档,所以能知道软件实现了文档中的哪些功能
(5)在做软件自动化测试时较方便
缺点:
(1)不可能覆盖所有代码,覆盖率只能达到30%左右
(2)自动化测试的复用性较低
18、黑盒测试的用例设计方法:测试区域确定法(等价类划分法、边界值分析法)、组合覆盖法(全组合覆盖法、成对组合覆盖法、正交实验设计法、数据覆盖法)、逻辑推断法(因果图法、判定表法、大纲法)、业务路径覆盖法(场景分析法、功能图法)
19、白盒测试法必须遵循的几条原则:
(1)保证一个模块中的所有独立路径至少被执行一次
(2)所有逻辑值均需测试真和假两种情况
(3)检查程序的内部数据结构,保证其有效性
(4)在上下边界及可操作范围内运行所有循环
20、白盒测试方法分类:静态白盒测试、动态白盒测试
21、测试管理内容包括:
(1)测试目标的明确,进行测试计划及过程监控准则的制订
(2)测试团队搭建和测试人员管理
(3)测试实施过程的监控,包括测试计划执行的跟踪和测试人员的工作安排等内容
(4)测试风险的评估和风险的应对策略
(5)测试外部的沟通协调和测试问题的确认处理
(6)测试资产、测试产品的统一管理
(7)测试规范的制定
(8)测试绩效考核的制定与考评
22、测试监控管理的目的是为测试活动提供反馈信息和可视性。测试监控的内容包括:
(1)测试用例执行的进度:=已执行数目/总数目——成功率
(2)缺陷的存活时间:=缺陷从open到closed的顺序——效率
(3)缺陷的趋势分析:按时间顺序统计缺陷数量的分布——趋势
(4)缺陷分布密度:对应于一项需求的总缺陷数/对应于该项需求的测试用例总数
(5)缺陷修改质量:每次修改后发现的缺陷数量(包括重现的缺陷和由修改引起的新缺陷)
注:测试过程中的配置管理不仅包括搭建满足要求的测试环境,还包括获取正确的测试、发布版本。
23、测试过程的风险主要包括:
(1)需求风险:需求理解不准确、需求变更,导致测试方法错误
(2)测试用例风险:用例设计不完整,忽略了边界、异常等
(3)缺陷风险:某些缺陷偶发,难以重现
(4)代码质量风险:代码质量太差,缺陷多,容易测试遗漏
(5)测试环境风险:测试环境和生产环境不完全一致导致测试误差
(6)测试技术风险:项目存在技术难度,测试能力和水平低
(7)回归测试风险:由于回归测试不运行全部测试用例,可能存在测试不完全
(8)沟通协调风险:测试人员和开发人员存在误解、沟通不畅
(9)其他不可预计风险:不可抗力风险因素
24、测试人员绩效考核包括的内容:
(1)考核测试工作内容:①参与软件开发过程的工作内容考核,如需求评审等;②参与测试文档的准备工作;③执行测试的工作;④测试结果缺陷残留;⑤测试人员的沟通能力考核。
(2)测试设计中效率相关指标:①文档产出率;②用例产出率。
(3)测试设计中工作质量相关的指标:①需求覆盖率;②文档质量;③文档有效率;④用例有效率;⑤评审问题数。
(4)测试执行中工作效率相关指标:①执行效率;②进度偏离度;③缺陷发现率。
(5)测试执行中工作质量相关的指标:①缺陷数;②有效缺陷数/率;③严重缺陷率;④模块缺陷率;⑤遗漏缺陷率;⑥Bug发现的时间点,Bug缺陷的收敛率;⑦缺陷定位和可读性。
没有一种测试模型是完美的,除了正确地选择测试模型,还要对测试过程和测试工作指标进行恰当地使得,方可提升测试效果,进而提高软件质量。