一、 生命周期模型
生命周期:软件从生到死的整个过程
生命周期模型:将从生到死所经历过的“各个环节”进行抽象
1. 瀑布模型
典型阶段:
需求分析:针对用户提出的需求进行整理分析,做出文档《需求规格说明书》(SRS)
作用:主要描述软件应该实现的功能
功能需求:输入、输出(有效、无效)、处理过程、原型(简易界面)、数据
设计阶段:总体设计(概要设计)(缩写-HLD)、详细设计(缩写-LLD)
编码阶段:开发写代码
测试阶段:特点:测试的介入时间晚——代码完成后
2. V模型
特点:本质–瀑布,但是对测试进行细分
测试的阶段划分:
单元测试:开发自行完成,测试对象:代码本身(逻辑–路径)简:代码逻辑
集成测试:测试单元之间的接口(是否吻合)——接口测试简:接口
系统测试:融合所有的软件、硬件、数据、网络环境等一起进行测试简:系统
验收测试:客户进行的测试简:客户完成
内部验收:公司内部人员
客户验收:客户完成
阿尔法(α)测试:对象——软件的α版本,对内(内部员工,潜在客户)可控
贝塔(β)测试:对象——软件的β版本,对外不可控
参考依据:
单元——详设
集成——概设
系统——需求规格
验收——客户需求(原始需求)
需求:显示需求(客户提出)、隐式需求(分析、发掘)、规范性需求(行业规范)
《GBT 15532-2008 计算机软件测试规范》对测试阶段的划分:
单元、集成、(配置项)确认测试、系统、验收
3. 敏捷开发
(1) 敏捷宣言
·个体和互动高于流程和工具
·工作的软件高于详尽的文档
·客户合作高于合同谈判
·响应变化高于遵循计划
(2) Scrum
Scrum: Scrum无对应中文翻译 Agile:敏捷 Sprint:原意为冲刺,Scrum中的Sprint无对应中文翻译,指一个迭代 Iteration:迭代 Sprint Review Meeting:Sprint评审会议 User Story: 用户故事,指一条需求 Backlog:待办列表 Lean:精益 Iterative:迭代式的 Agile Manifesto:敏捷宣言 Empirical:经验性的 Empirical Process:经验性过程 Transparency:透明性 Inspect and Adapt:检视与调整 Sprint Goal:Sprint目标 Product Owner :产品负责人简称PO Scrum Master :简称SM, 一般不翻译 Development Team : Scrum开发团队 Scrum Team:指PO,SM和开发团队 Scrum Roles:Scrum角色,指PO,SM和开发团队 Emergent :涌现的 Product Backlog:产品待办列表,指需求清单 Sprint Backlog:Sprint待办列表,指Sprint任务清单 Sprint Burn-down Chart:Sprint燃尽图,团队用于做Sprint内的进展跟踪 Release Burn-down Chart: 发布燃尽图,产品负责人做发布进展跟踪 Sprint Planning Meeting: Sprint计划会议 Daily Scrum Meeting:每日站会 Sprint Retrospective Meeting: Sprint回顾会议 Product Backlog Refinement: 产品待办列表梳理 Product Backlog Item: 产品待办清单条目,简称PBI Story Point:衡量用户故事的工作量大小的计量单位 Velocity: 团队速度 Sprint Task: 实现一条需求需要做的一个技术任务 Definition of Done: DoD,完成的定义 Stakeholders:干系人 Artifact :工件 Estimation :估算 Collaboration:协作 Scaling Scrum:大规模Scrum |
二、 测试过程
4. 双V模型
以系统测试举例:
特点:测试介入时间早(针对瀑布)
测试准备阶段:前置进行,和开发并行同步
计划阶段:(经理)编写《测试计划》:主要包括工作任务安排、风险、成本等
参考《GBT 9386-2008 计算机软件测试文档编制规范》
设计阶段:编写《测试方案》(包括:环境搭建、数据准备、用例设计等内容)
实现阶段:编写《测试用例》
执行阶段:执行《测试用例》、提交《缺陷报告》、进行回归测试、编写《测试报告》
回归测试:时间:新迭代(版本)后,要进行回归测试
目的:验证已有功能的稳定性–重复率高—自动化完成
验证缺陷修复是否成功
策略:完全回归:执行以前的全部测试用例——理想态
选择(部分)回归:只回归发现Bug的测试用例——实际
选择部分(重要、优先级高、使用频率高)测试用例进行回归
冒烟测试:时间:新迭代(版本)后,先进行冒烟测试
目的:验证新版本的基本功能是否实现
结果:实现:进入“转测试”阶段(华为)
未实现:打回版本给开发
三、 测试分类
按测试阶段分 | 按测试方法分 | 按动静分 | 按人工自动分 |
单元:内部逻辑 | 黑盒:代码不可见 | 动态测试:代码是否被运行–是 如:测试个输入 | 人工测试 |
集成:接口 | 灰盒:之间(过时) | ||
系统:完整系统 | 白盒:代码可见 | 静态测试:代码是否被运行–否 如:代码走读、检查文档 | 自动测试–依靠工具 |
验收:客户(αβ) |
|
四、 质量相关
测试的定义(目的):
1、定义没有统一标准
2、早期:强调发现错误(找Bug)——测试部
3、现在:强调对质量的把控—— QA、质量保证部
质量:强调全面质量管理的理念(全公司的人都对质量负责)
定义:《ISO9000国际质量标准》
ISO 国际标准化组织
评价软件质量:
找到被测软件的固有质量特性,权重,打分,评价;
软件固有特性参考:《ISO9126软件质量模型》
六大特性,27个子特性——指导测试的方向
如何从测试角度保证软件质量:
1、保证软件必须满足用户需求(尽量站在客户的立场);
2、保证软件符合各类行业规范
3、缺陷分析
如:按模块统计缺陷数量,调整后续工作测试重点
按产生原因统计,将缺陷原因反馈到开发,下个项目同样问题不累犯(循环)