首页 > 编程知识 正文

软件测试分几个阶段,软件测试包括几个阶段

时间:2023-05-05 21:44:58 阅读:153938 作者:3372

软件测试步骤1、单元测试

单元测试也称为模块测试,是最小单元测试

单元测试具有独立性,可以与系统的其他部分分离完成测试,其依据是详细的设计

要测试的是软件设计的最小单元模块和组件,所有类、文件、窗口、函数、菜单、报告或存储过程都可以作为一个单元进行测试

在单元测试中可以发现的缺陷类型:

计算错误

需求或功能的缺失

选择程序路径时出错

执行方法:

代码扫描工具: SonarQube PMD

测试原则尽量保证测试用例相互独立。 (在测试用例中不能直接调用其他类的方法,应该在测试用例中重写模拟方法)这个阶段一般由软件开发者来完成。 单元测试验证开发的代码功能符合自己的设计要求的优势1 .早期发现缺陷2 .有利于重构3 .集成单元测试简化的不足在于无法覆盖所有的运行路径,从而捕获所有路径的错误

:按设计要求将通过测试的单元组合到系统或子系统中进行的测试。 目的是检查这些单元之间的接口是否存在问题。

测试目标:API

测试集成组件之间的接口以及组件和组件之间的配合。

测试依据

软件和系统设计文档

系统体系结构

定义和描述接口的文档、工作流、用例等

执行方法

工具: Postman

自动化测试框架: python requests ddt nose2

测试原则

早期集成测试关键模块

早期测试包含I/O的模块

集成测试的好处

可以检查一系列环境配置是否正确

能够迅速确定错误

可以支持功能测试和性能测试

集成测试的不足

很难完成业务场景的测试

无法测试前端页面

三.系统测试

充分运行软件系统,验证系统是否满足产品质量需求

系统测试如下

功能测试

非功能测试

性能测试、容量测试

安全测试

兼容性测试

可靠性测试

• 集成测试和系统测试之间的比较

测试内容:集成测试是测试各单元模块之间的接口,系统测试是测试整个系统的功能和性能;

测试观点:集成测试重点测试技术观点,系统测试重点测试业务观点

四.验收测试

验收测试:也称为交货测试,对用户需求、业务流程进行正式测试,以确定系统是否符合验收标准,并确定用户、客户或其他授权机构是否接受系统。

软件产品完成系统测试后,在产品发布前进行的测试

验收测试一般基于产品需求(用户故事),严格把关产品,确保开发的软件产品满足用户期望的各项要求。

静态测试与动态测试

静态测试的特点静态测试不需要动态执行程序,也不需要进行测试用例的设计和结果的判断等工作。 静态测试可以人工进行,充分发挥人类逻辑思维的优势。 静态测试的实施不需要特殊条件,很容易实施。

动态测试的特点

通过运行被测程序,检验执行结果与预期结果的差异,分析执行效率、准确性、健壮性等性能

白盒测试和黑盒测试

白盒测试的重点是进行代码覆盖,而黑盒测试则侧重于功能、性能的测试。 白盒测试中往往不考虑软件的外在表现特性,而是根据运行的代码来判断测试结果。 黑匣子测试不考虑程序的内部逻辑结构,只提供输入和操作流程,根据软件运行给出的运行结果判断测试是否通过。 在实践中,单元测试主要采用白盒测试方法,除单元测试外,其他阶段的测试多采用黑盒测试方法。 有时不能完全区分正在进行的测试,两者组合起来往往能得到更好的测试效果。

灰盒测试

介于白盒测试和黑盒测试之间的测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的准确性,而且关注程序内部的情况。 虽然白盒测试并不像白盒那样详细完整,但比起黑盒测试,他们更关注程序的内部逻辑。 大多数情况下,通过特征现象、事件和标志来判断内部的工作状态。

灰盒测试关注模块或模块之间的接口问题

手工测试与自动化测试

手工测试(通过人一个用例输入,观察结果,与机器测试相对应,是比较初级但也是必须的步骤。

自动化测试:一种通过让机器执行部分或全部测试而执行的测试类型。 被称为自动化测试。 这个测试不需要人的实时参与。 同时,这个测试对于小规模的APP应用

会比手动测试昂贵许多。
测试自动化:这是一种让测试过程脱离人工的一次变革。对于 控制成本,控制质量,回溯质量和减少测试周期都有积极影响 的一种研发过程。

适合使用自动化测试的情况
• 版本稳定、项目周期长、脚本可复用
不适合使用自动化测试的情况
• 定制型项目(一次性的) • 项目周期很短的项目 • 涉及业务规则复杂的对象 • 关于美观、声音、易用性的测试 • 很少运行的测试 • 测试的软件不稳定 • 涉及物理交互的测试
• 冒烟测试过程中,需要注意的是:
• 开发协同
• 注重效率
• 评估用例
回归测试
• 过一段时间以后再回过头来对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现 • 修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误 • 回归测试贯穿整个测试活动,且占据很大的工作量
功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查 产品是否达到用户的要求
性能测试:观察系统在一个给定的环境和场景中的性能表现是否与预期目标 一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性 能的完整的过程。
负载测试:在一定的软件、硬件及网络环境下,通过改变系统负载方式、增加负 载等来发现系统中所存在的性能问题。用于确定系统所能承载的最大用户数、最 佳用户数。关注不同用户数下的系统响应时间及服务器的资源利用率。
压力测试:在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务 器产生负载,使服务器的资源处于极限状态下长时间连续运行。目的测试服务器 在高负载情况下是否能够稳定工作,挖掘系统最脆弱的位置。
稳定性测试(可靠性测试):在一定的软件、硬件及网络环境下,模拟一定数量 虚拟用户运行一种或多种业务,长时间的运行(7*24小时)系统。目的是检测系统 在长时间运行下的稳定性和性能相关指标是否符合预期。
易用性测试:指用户使用软件时是否感觉方便,也称为用户体验测试
界面测试:测试用户界面的布局是否合理、整体风格是否一致、各个控件的 放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单 易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是 否美观,文字、图片组合是否完美等。

安装测试:确保该软件在正常情况和异常情况的不同条件下都能进行安装。 https://baike.baidu.com/item/
安装测试 • 安装:首次安装、重复安装 • 卸载 • 升级
文档测试:检验各种文档的完整性、正确性、一致性、易理解性、易浏览性。 • 软件产品的文档分为三大类 • 开发文档 • 用户文档 • 管理文档
兼容性测试:指检查软件之间能否正确地进行交互和共享信息。软件兼容性 测试工作的目标是保证软件按照用户期望的方式进行交互。
• 兼容性分类
• 向前兼容与向后兼容:向前兼容是指可以使用软件的未来版本,向后兼容是指可 以使用软件的以前版本
• 硬件兼容:与整机兼容、与外设兼容
• 软件兼容:操作系统/平台、应用软件之间的兼容、不同浏览器的兼容、数据库的 兼容、软硬件配合兼容
• 数据兼容:不同版本间的数据兼容、不同软件间的数据兼容
安全测试:指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程 • 安全性测试方法 • 功能验证:权限管理、加密、认证等 • 漏洞扫描:使用工具 • 模拟攻击试验:跨站攻击 • 侦听技术:在数据通信或数据交互过程中,对数据进行截取分析的过程
恢复测试:主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统。 • 应该检验以下内容 • 自动恢复:重新初始化、数据恢复以及重新启动是否正确 • 人工恢复:还需估测平均修复时间,确定其是否在可接受的范围内

为什么要编写测试计划
• 领导能够根据测试计划做宏观调控,进行相应资源配置等
• 测试人员能够了解整个项目测试情况,以及项目测试不同阶段所要进行的工作等
• 便于其他人员了解测试人员的工作内容,进行有关配合工作
什么时间开始编写测试计划?
• 测试需求分析前总体测试计划,测试需求分析后详细编写测试计划
测试计划编写六大要素
• Why -为什么要进行这些测试
• What -测试哪些方面,不同阶段的工作内容
• When -测试不同阶段的起始时间
• Where-相应的文档、缺陷的存放位置、测试环境等
• Who- 项目相关人员组成,安排哪些测试人员测试
• How-如何去做,使用哪些测试工具以及测试方法进行测试
什么是测试报告
• 测试报告是测试阶段最后的文档产出物
• 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进 行分析,为纠正软件中存在的质量问题提供依据,同时为软件验收和 交付打下基础
测试报告的元素?
• 引言(目的,背景,缩略语,参考文献);
• 测试概要(测试方法、范围、测试环境、工具);
• 测试结果与缺陷分析(功能、性能);
• 测试结论与建议(项目概况、测试时间、测试情况、结论性汇总);
• 附录(缺陷统计);
配置管理
• 通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范 的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开 发者在软件生命周期中各个阶段都能得到精确的产品配置
• 配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状 态统计等任务的工具,如cvs、vss、Harvest、ClearCase等
禅道的使用 • 需求管理 • 用例管理 • bug管理

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。