站长seo查询工具,佛山专业做网站,番禺网站建设技术,互联网新项目在哪里找目录#xff1a;
软件测试基础概念 软件测试:软件测试作用:软件缺陷:软件测试原则:软件测试对象:测试用例软件开发流程 软件:软件生命周期:软件开发流程:瀑布模型:瀑布模型优缺点敏捷开发模型: XP - 极限编程:SCRUM:DevOps#xff1a;DevOps 生命周期#xff1a;DevOps 对发…目录
软件测试基础概念 软件测试:软件测试作用:软件缺陷:软件测试原则:软件测试对象:测试用例软件开发流程 软件:软件生命周期:软件开发流程:瀑布模型:瀑布模型优缺点敏捷开发模型: XP - 极限编程:SCRUM:DevOpsDevOps 生命周期DevOps 对发布的影响CI/CDCD 与 DevOps 的关系测试流程体系 软件测试模型 V模型W模型H模型:软件测试工作流程: 传统测试流程:系统测试流程:Bug管理流程:测试左移和测试右移 测试左移测试左移-质量保障手段(方法)测试右移测试右移-线上监控测试技术体系 软件测试分类黑盒测试白盒测试自动化分层测试体系单元测试接口测试接口测试方法UI 测试常用测试平台 测试用例管理平台 JIRA 测试用例管理Xray Test ManagementRedMine 系统TestLinkBug 管理平台代码管理平台 GitLab持续集成管理平台 Jenkins 平台流程管理平台 JIRA 管理平台JIRA 中的基本概念JIRA 管理测试用例流程JIRA 管理 Bug 流程项目管理与跨部门沟通协作 项目管理需求阶段设计阶段开发阶段集成测试阶段系统测试阶段软件项目管理的方法跨部门沟通协作 - 与产品沟通跨部门沟通协作 - 与研发沟通跨部门沟通协作 - 上下游测试配合项目实例测试经典书籍拆分讲解 全程软件测试探索式测试Google测试之道持续交付不测的秘密
1.软件测试基础概念
软件测试:
通过手工或者工具对 “被测对象”进行测试验证实际结果与预期结果之间是否存在差异 软件测试作用:
通过测试工作可以发现并修复软件当中存在的缺陷从而提高用户对产品的使用信心测试可以降低同类型产品开发遇到问题的风险
软件缺陷:
软件缺陷被测试工程师和开发工程师们称作 bug软件缺陷会导致软件不能正常运行它的存在会在一定程度上导致软件不能满足用户的需求甚至有可能破坏或泄漏用户的重要数据
软件测试原则:
测试显示缺陷的存在穷尽测试是不可能的测试尽早介入缺陷集群性2/8原则杀虫剂悖论测试活动依赖于测试内容没有错误是好是谬论 软件测试对象:
需求分析阶段需求文档、接口文档编码实现阶段源代码系统功能使用软件程序 测试用例
为特定的目的而设计的一组测试输入、执行步骤和预期的结果以便测试产品否满足某个特定需求的文档
2.软件开发流程
软件:
软件是与计算机系统操作有关的计算机程序、可能有的文档及数据。 软件生命周期:
定义问题软件开发软件维护 软件开发流程:
为了使软件开发的工作系统化并且可控制需要采用合适的软件开发模型和开发过程管理所有的活动。 瀑布模型:
软件开发的各项活动严格按照线性方式进行。当前活动接受上一项活动的工作结果。当前活动的工作结果需要进行验证。 瀑布模型优缺点
优点 开发的各个阶段比较清晰。强调早期计划及需求调查。适合需求稳定的产品开发。缺点 早期的错误可能要等到开发后期的阶段才能发现。由于开发模型是线性的增加了开发的风险。
敏捷开发模型:
适用于需求频繁变化和需要快速开发的场景。 XPSCRUM
XP - 极限编程: SCRUM: 敏捷模型总结
增量迭代小步快跑
DevOps DevOps 生命周期
持续开发持续测试持续集成持续部署持续监控 DevOps 对发布的影响
减少变更范围加强发布协调自动化
CI/CD
持续集成Continuous Integration缩写为 CI 一种软件开发实践。团队开发成员每天可能会发生多次集成。每次集成都通过自动化的构建包括编译发布自动化测试来验证。根据测试结果确定新代码和原有代码能否正确地集成在一起。持续交付Continuous Delivery缩写为 CD 是一种软件工程手法。让软件产品的产出过程在一个短周期内完成。保证软件可以稳定、持续的保持在随时可以发布的状况。目标 让软件的构建、测试与发布变得更快以及更频繁。减少软件开发的成本与时间减少风险。
CD 与 DevOps 的关系
DevOps 的范围更广 DevOps 是软件交付过程所涉及的多个团队之间的合作。并且将软件交付的过程自动化。持续交付是一种自动化交付的手段 关注点在于将不同的过程集中起来。并且更快、更频繁地执行这些过程。总结DevOps 可以是持续交付下的一个产物持续交付的成果直接汇入 DevOps 模型。
3.测试流程体系
软件测试模型
V模型
V模型是瀑布模型的一种改进V模型标明了测试过程中的不同阶段 V模型的优缺点
优点
既有底层测试又有高层测试。将开发阶段清楚的表现出来便于控制开发的过程
缺点
容易让人误解为测试是在开发完成之后的一个阶段。由于它的顺序性当编码完成之后正式进入测试时这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。如果需求变更较大导致要重复变更需求、设计、编码、测试。返工量大。
W模型
W模型明确表示出了测试与开发的并行关系W模型中测试伴随着整个软件开发周期并且测试的对象不仅仅是程序需求和设计同样要测试 W模型的优缺点
优点
将测试贯穿到整个软件的生命周期中且除了代码要测试需求、设计等都要测试。更早的介入到软件开发中,能尽早的发现缺陷进行修复测试与开发独立起来,并与开发并行。
缺点
无法支持迭代的开发模型对有些项目开发过程中根本没有文档产生故W模型无法使用。。对于需求和设计的测试技术要求很高实践起来很困难。
H模型:
软件开发中需求、设计、编码等活动被分阶段执行、但是实践中他们并不是完全串行的它们之间更多时候是交叉进行的更多的是迭代执行把测试活动完全独立出来形成一个完全独立的流程将测试准备活动和测试执行活动清晰地体现出来 优点
软件测试完全独立贯穿整个生命周期,且与其他流程并发进行。软件测试活动可以尽早准备、尽早执行具有很强的灵活性
缺点
测试就绪点分析困难对于整个项目组的人员要求非常高
软件测试工作流程:
传统测试流程: 系统测试流程: Bug管理流程: 测试左移和测试右移
测试左移
左移是往测试之前的开发阶段移测试团队在软件开发周期早期就开始介入。对代码进行测试从发现bug到预防bug
测试左移-质量保障手段(方法)
代码评审(code review)代码审计单元测试自动化冒烟测试。研发自测 测试右移
右移是往发布之后移。产品上线后进行线上监控。
测试右移-线上监控
闭环的线上问题反馈-检查-解决-更新流程更便捷的日志查看、回传服务丰富有效的log便于问题的快速定位。丰富的监控指标例如业务异常点指标)。业务监控例如短信发送等)关键指标每日监控(服务器指标)。生产数据监控警报)
4.测试技术体系
软件测试分类 黑盒测试
黑盒测试又称数据驱动测试。完全不考虑程序内部结构和内部特性。注重于测试软件的功能需求。只关心软件的输入数据和输出数据。 白盒测试
白盒测试研究产品内部的源代码和程序结构。单元测试就是白盒测试的一种。 自动化分层测试体系
70% 单元测试。20% 服务测试。10% 用户界面测试。
单元测试
Java JUnitTestNGPython unittestpytest 接口测试
接口全称 Application Programming Interface一般称作 API。接口测试是针对软件对外提供服务的接口的输入输出进行测试。 检查接口参数传递的正确性。接口功能实现的正确性。输出结果的正确性。对各种异常情况的容错处理的完整性和合理性。
接口测试方法
Charles、FiddlerpostmanJmeterloadRunnerpythonRequests、HttpRunnerJavaHttpClient、RestAssured UI 测试
手工方法人工查看、操作。自动化方法 WebSeleniumAppAppium 5.常用测试平台
测试用例管理平台
JIRA推荐方案定制性很强。RedMine推荐方案开源活跃定制性很强。TestLink流行的测试用例管理平台体验不太好。其他Tapd、云效、禅道、GitLab、在线协作文档。无协作模式Excel、思维导图。
JIRA 测试用例管理 Xray Test Management RedMine 系统 TestLink Bug 管理平台
通常与用例管理平台一致。测试用例、Bug 都可以使用 issue 表达。关联关系设定。测试用例与 Bug 的属性设定。
代码管理平台
GitLab可本地部署的 Git 代码管理平台行业标准。SubVersionSVN 管理已经过时。GitHub开源项目运作。BitBucket与 JIRA 同属一家公司 Altassian。 GitLab 持续集成管理平台
Jenkins持续集成与持续交付的主流平台。GitLab RunnerGitLab 的持续交付方案。GitHub ActionGitHub 的开源方案。自建 DevOps 平台企业定制平台Tapd、云效等。
Jenkins 平台 持续集成与持续交付
研发 构建、单元测试 覆盖率分析。自动化代码审计。运维自动化部署。测试 接口测试。UI自动化测试。专项测试自动化。性能测试、安全测试。
6.流程管理平台
JIRA 管理平台
推荐方案。定制性很强。 JIRA 中的基本概念
Project 项目Issue 问题Field 字段Workflow 工作流Screen 视图 JIRA 管理测试用例流程
创建测试用例管理项目。录入用例。测试用例状态转化。 JIRA 管理 Bug 流程
创建 Bug 管理项目。从用例关联到 Bug。在项目中录入 Bug。Bug 状态转化。 7.项目管理与跨部门沟通协作
项目管理 需求阶段
项目经理产品研发测试活动 1. 在项目管理工具中建立项目目录 2. 分析项目所需资源、风险等 3. 预估项目周期活动 1. 收集整理需求参与 1. 需求分析 2. 环境分析参与 1. 需求分析 2. 环境分析产出 1. 项目计划大致时间规划产出 1. 需求文档
设计阶段
项目经理产品研发测试活动 1. 监控项目进度 2. 组织安排本阶段的评审 3. 任务分解责任到人 4. 细化项目计划活动 1. 系统功能设计活动 1. 系统功能技术设计 2. 数据库设计活动 1. 组织测试计划评审产出 1. 项目计划具体到各个功能产出 1. 系统说明书产出 1. 概要设计文档 2. 详细设计文档产出 1. 测试计划
开发阶段
项目经理产品研发测试活动 1. 监控项目进度 2. 调整人员安排 3. 跟踪解决技术难点参与 1. 需求细节沟通活动 1. 具体功能开发 2. 组织 code review 3. 单元测试活动 1. 编写测试用例 2. 组织测试用例评审产出 1. 项目计划更新进度 2. 项目报告进度产出 1. 功能代码 2. 单元测试代码产出 1. 测试用例
集成测试阶段
项目经理产品研发测试活动 1. 监控项目进度 2. 跟踪解决技术难题参与 1. 需求细节沟通 2. Bug 修改方案活动 1. 集成测试 2. 修改 Bug活动 1. 支持研发进行集成测试 2. 准备测试数据 3. 准备自动化测试用例产出 1. 项目报告进度产出 1. 集成测试报告 2. 部署测试环境
系统测试阶段
项目经理产品研发测试活动 1. 分配 Bug 2. 跟踪解决技术难题参与 1. 需求细节沟通 2. Bug 修改方案活动 1. 支持测试 2. 修改 Bug活动 1. 测试环境搭建 2. 补充测试数据 3. 功能测试 4. 自动化测试产出 1. 项目报告进度产出 1. 系统测试报告执行报告 2. 缺陷报告
软件项目管理的方法
制定项目计划。执行该计划并监控跟踪管理。项目风险应对与问题解决。项目收尾。 跨部门沟通协作 - 与产品沟通
需求评审会。在分析需求阶段。在测试用例编写阶段。在测试过程中。
跨部门沟通协作 - 与研发沟通
在分析需求阶段。在测试用例编写阶段。在测试过程中。在线上监控发现 Bug 时。 跨部门沟通协作 - 上下游测试配合
测试计划沟通。环境对接。熟悉业务。
项目实例 8.测试经典书籍拆分讲解
全程软件测试
测试行业的经典书籍 测试方法测试策略领域测试主流测试技术涵盖了软件测试的流程与方法体系 探索式测试
探索式测试的经典代表性书籍探索式测试是业务测试和手工测试实践中的一个方法论 Google测试之道
高级测试工程师与架构师必读讲解google的测试策略与方法以及google对软件开发与测试的理解 持续交付
持续交付的经典书籍现代化软件研发与测试的启蒙 持续交付 1.0持续交付 2.0 不测的秘密
腾讯TMQ出品精准化测试代表性书籍