软件测试阶段
单元测试又称为模块测试,是最小单位测试 单元测试具有独立性,可以与系统其他部分分隔离出来,从而完成测试,其依据是详 细设计 其测试对象是软件设计的最小单位模块与组件,类、文件、窗口、函数、菜单、报表 或一个存储过程都可以作为一个单元进行测试 单元测试可以发现的缺陷类型: 计算错误 需求或功能遗漏 程序路径选择错误 执行方法: 代码扫描工具:SonarQube + PMD
单元测试 测试原则: 尽可能保证测试用例相互独立(测试用例中不能直接调用其他类的方法,而应在测试用例 中重写模拟方法) 此阶段一般由软件的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求 单元测试的好处 尽早的发现缺陷 利于重构 简化集成 单元测试的不足 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误 每行代码需要3~5行代码进行单元测试,存在投入与产出的平衡
集成测试:是将已分别通过测试的单元按设计要求组合成系统或子系统,再 进行的测试。目的在于检查这些单元之间的接口是否存在问题。
系统测试 是充分运行软件系统,以验证系统是否满足产品的质量需求 系统测试分为: 功能测试 非功能测试 性能测试、容量测试 安全性测试 兼容性测试 可靠性测试
集成测试和系统测试之间的比较: 测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个 系统的功能和性能; 测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的 角度进行测试。
验收测试:也称交付测试,是针对用户需求、业务流程进行的正式 的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机 构决定是否接受系统。
软件测试分类–策略
一:静态测试与动态测试 静态测试的特点 : 静态测试不必动态运行程序,也不必进行测试用例设计和结果判断等 工作。静态测试可以由人工进行,充分发挥人的逻辑思维优势。 静态测试实施不需要特别的条件,容易开展。 动态测试的特点 : 通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确 性和健壮性等性能
二:黑盒测试 又称为功能测试、数据驱动测试或基于规格说明书的测试 黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么 事情,只能通过输入输出看是否能得到我们所需的来测试。 黑盒测试的主要测试方法有: 等价类划分法、边界值分析法、因果图法、场景法、正交实验设 计法、判定表驱动分析法、错误推测法、功能图分析法等。
三:手工测试与自动化测试 手工测试:就是由人去一个一个的输入用例,然后观察结果,和 机器测试相对应,属于比较初级但是必须的一个步骤。 自动化测试:通过将测试执行部分或者全部交由机器执行的一种 测试,叫做自动化测试。这种测试不需要人的实时参与。同时这 种测试在小规模应用时会比手动测试昂贵许多。 测试自动化:这是一种让测试过程脱离人工的一次变革。对于 控制成本,控制质量,回溯质量和减少测试周期都有积极影响 的一种研发过程 适合使用自动化测试的情况: 版本稳定、项目周期长、脚本可复用
不适合使用自动化测试的情况 : 定制型项目(一次性的) 项目周期很短的项目 涉及业务规则复杂的对象 关于美观、声音、易用性的测试 很少运行的测试 测试的软件不稳定 涉及物理交互的测试
适合使用自动化测试的情况: 版本稳定、项目周期长、脚本可复用
不适合使用自动化测试的情况 : 定制型项目(一次性的) 项目周期很短的项目 涉及业务规则复杂的对象 关于美观、声音、易用性的测试 很少运行的测试 测试的软件不稳定 涉及物理交互的测试
四:冒烟测试:冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件 基本功能进行确认验证的手段,并非对软件版本包的深入测试。冒烟测试也是针对软件版 本包进行详细测试之前的预测试,执行冒烟测试的主要目的是快速验证软件基本功能是否 有缺陷。如果冒烟测试的测试用例不能通过,则不必做进一步的测试。 冒烟测试执行,与正式测试的区别在于二者侧重点不同,冒烟测试关注的是阻塞型缺陷, 包括但不限于流程不通、主要功能未实现等,而正式测试则属于全面、细致的测试,需要 尽可能的发现全部缺陷并按其严重性进行区分。
需注意 开发协同,注重效率,评估用例
五:回归测试: 过一段时间以后再回过头来对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现 修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误 回归测试贯穿整个测试活动,且占据很大的工作量
回归测试应兼顾效率和有效性两个方面 回归测试:再测试全部用例。基于风险选择测试:选择重要的、最常用的、存在风险的功能。基于操作剖面:操作剖面是操作的集合以及各种使用方式的出现概率。再测试修改的部分。
常见测试方法
1.功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查 产品是否达到用户的要求 2.性能测试:观察系统在一个给定的环境和场景中的性能表现是否与预期目标 一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性 能的完整的过程。 负载测试、压力测试、稳定性测试。 3.易用性测试:用户使用软件是否方便,也称用户体验测试 安装、功能、界面、辅助系统易用性。 4.界面测试:测试用户界面的布局是否合理、整体风格是否一致、各个控件的 放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单 易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是 否美观,文字、图片组合是否完美等 优秀界面7要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性、实用性
5.安装测试:确保该软件在正常情况和异常情况的不同条件下都能进行安装。 安装:首次安装、重复安装 卸载 升级
6.文档测试:检验各种文档的完整性、正确性、一致性、易理解性、易浏览性。开发文档、用户文档、管理文档
7.兼容性测试:指检查软件之间能否正确地进行交互和共享信息。软件兼容性 测试工作的目标是保证软件按照用户期望的方式进行交互
向前后兼容、硬件兼容、软件兼容、数据兼容
8.安全测试:指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程
功能验证:权限管理、加密、认证等 漏洞扫描:使用工具 模拟攻击试验:跨站攻击 侦听技术:在数据通信或数据交互过程中,对数据进行截取分析的过程
9.恢复测试:主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统。 自动恢复:重新初始化、数据恢复以及重新启动是否正确 人工恢复:还需估测平均修复时间,确定其是否在可接受的范围内
软件测试计划
测试计划:1.领导根据测试计划做宏观的调控、进行相应的资源配置。2.测试人员了解整个项目测试情况,以及项目不同阶段所要进行的工作。3.便于其他人员了解测试人员的工作内容,进行有关配合工作。 时间:测试需求分析前总体测试计划,测试需求分析后详细编写测试计划 六要素:why、what、when、where、who、how、
软件测试报告
什么是测试报告: 测试阶段最后的产物。测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进 行分析,为纠正软件中存在的质量问题提供依据,同时为软件验收和 交付打下基础 测试报告的元素? 引言(目的,背景,缩略语,参考文献); 测试概要(测试方法、范围、测试环境、工具); 测试结果与缺陷分析(功能、性能); 测试结论与建议(项目概况、测试时间、测试情况、结论性汇总); 附录(缺陷统计);
|