软件测试理论知识
一、为什么要测试?
1、软件本身就有缺陷
2、代码是人写的,难免会出错
3、环境会影响软件
4、测试才能保证软件质量
二、什么是测试?
制造业定义:“以检验产品是否满足为目标”
软件行业定义:
A.验证软件的正确性
B.发现软件中的缺陷(bug)
三、软件的生命周期
软件生命周期别称:软件生存周期或软件开发生命周期
定义:指的是软件从产生到报废的整个过程,是一种时间的概念
四、通常软件生命周期包括哪些阶段?
1)客户问题引入或定义
2)可行性分析(涉及经济(商业论证),政治,法律,技术等)
3)项目招投标
4)项目立项
5)需求分析
6)开发阶段(设计,编码,测试)
7)维护
五、软件生命周期模型有哪些?
(1)瀑布模型(waterfall) 最早的一种模型 被淘汰了
(2)V模型 (重点)
(3)W模型 (w是v的补充)
(4)H模型 (重点)
(5)敏捷开发模型 最新开发模型,
(6)迭代开发模型
(7)增量开发模型
==========================
v模型:
(1)需求(全程:软件需求规格说明书,简称srs)
用户需求:是一个文档
内容:对整个项目的设计,框架,功能,模块的描述
(2)概要设计(简称:HLD)
概要设计:是一个文档
内容:架构的初步设计文档,使用说明什么类型的数据库,架构的描述,设计,模块的名称;(理解未:盖房子的大概设计,基本框架结构)
(3)详细设计(简称:LLD)
详细设计:是一个文档
内容:针对功能具体的实现文档,模块的具体实现,具体设计,架构的具体描述,(理解为房子的具体装修)
v模型的四个阶段:
(1)单元测试 (ut)
单元测试:是指验证软件单元是否满足详细设计文档的规格,能正确的执行,主要是对代码测试;
单元测试是最小的测试单位
在工作中单元测试一般是开发自测,如果需要测试进行单元测试,对测试技术要求非常高,必须要懂开发语言。
(2)集成测试(it)
集成测试是指多个单元测试组合亚洲软件是否满足概要设计文档的规格,能正常执行,主要是模块与模块之间的数据交互。
(3)系统测试(st)
系统测试是指把软件进行正常的运行,对整个系统进行测试,验证这个系统能正常运行,主要是测试一个整体业务的流程。
(4)验收测试(uat)重点
验收测试是指:站在用户角度对软件进行测试,验证系统满足用户需求。
验收测试分为两种:alpha测试(α)和beta 测试(β)
α测试是内部测试
β测试是客户方测试(第三方验收)
alpha测试(α)和beta 测试(β)区别:
1、α测试测试地点是在公司,β测试一般在客户方
2、α测试都是内部人员测试,开发测试都在现场,发现问题及时解决;
β测试 是客户方的员工测试,发现问题统一反馈给开发在解决;
3、α测试测试时间端,技术人员比较集中;
β测试测试时间长,测试人员不集中
==============================
sit 集成测试和系统测试 合并:sit系统集成测试
sit 测试 技术测试 (sit 测试 sit 环境 ) sit 1环境 sit 2 环境 sit3环境
uat 测试 验收测试( uat测试 uat 环境)
线上环境(也叫生产环境) 客户在使用
开发环境 :开发人员使用
测试环境(sit环境,uat环境) 测试人员使用
面试题:
1、v模型包含那几个阶段?
2、什么叫单元测试?
3、验收测试有那些?
4、alpha测试(α)和beta 测试(β)区别?
5、什么是sit测试?
sit 系统集成测试 (系统测试和集成测试合并)
H模型
1、拿到需求
2、需求澄清会议(srs澄清) srs全称:软件需求规格说明书 ,产品召开,
参加:产品,开发,测试,架构
3、测试经理 输出测试计划,安排任务
测试计划内容:
测试目的,测试背景,测试范围,测试约束(准入和准出),环境和资源,测试任务和进度,风险及风险管理,测试交付文档,
4、编写测试用例
5、评审用例
评审方式分为两种:
(1)组内评审
评审方式:通过邮件通知项目组中的所有成员,地点,会议时,时间
参会人员:项目经理,测试,开发,产品
(2)交叉评审
评审方式:约定时间
参会员:测试组内测试人员
6、将用例导入到用例管理工具(禅道工具)
7、将用例分配给对应的测试人员,
8、搭建环境(测试经理,运维,自己)
9、开发提测(也叫准入,也叫转测)
测试:测试计划写好,测试用例写好,测试用例评审通过,环境搭建好
开发:概要设计说明书,详细设计说明书,开发自测报告,版本说明书
10、将代码包部署到测试环境中
11、冒烟测试(也称未版本验证测试,)
定义:是指对新版本的主要功能,基本功能进行测试,如果通过冒烟测试也通过,如果冒烟测试失败,那么就把版本大会给开发进行修改,直到冒烟通过。
备注:冒烟测试是每一轮提交版本前需要测试,冒烟测试通过以后才能进行sit系统集成测试;
12、sit系统集成测试
备注:一般一个项目有3次系统集成测试,有写项目周期长也可以4次或更多)
13、第一次sit系统集成测试也是全量测试(就是把所有的用例都进行测试,测试出来的bug,指派给开发,(通过禅道指派),测试小结);
测试小结内容:
14、开发修改bug,修改好了,在第二次提交代码,
15、进行第二次sit测试,先冒烟测试,冒烟测试通过以后才能进行sit2系统集成测试,
备注:第二次和第三次,第四次的测试都叫回归测试;
回归测试:是系统维护阶段进行的验证测试
区别:测试阶段不同
冒烟测试是版本提交时进行的第一个测试,回归测试时在维护阶段的测试
用例来源:
1、冒烟测试用例
2、验证上一个版本提交的用例
3、测试和bug相关联的用例
4、你认为可疑测试场景和测试用例
5、测试补充得分测试用例和测试场景
16、有bug提交给开发,开发修改,测试验证
17、第三次sit测试;
18、obug,用例100%执行
19、输出测试报告
测试报告内容:
测试目的,项目背景,测试概要,进度回顾,测试耗时,用例清单,测试环境,bug清单,测试结论
20、表示sit测试完成(sit技术测试完成)
21、通知uat测试,(uat环境)====通过
22、封装版本,(简称:封版)
23、上线, 可以提前准备线上数据
24、线上测试:
如果线上有问题就分析问题的影响,影响程度大,就回退版本,进行修改,下次上线;影响程度小,备注下次修改,
如果没有问题
25、上线成功
====================
总结流程:
拿到需求=编写测试计划编写用例=评审用例导入用例管理工具=分配用例搭建环境开发体测=部署代码包=冒烟测试=sit1系统集成测试=有bug提交开发,开发修改测试小结提交第二次版本冒烟测试sit2系统集成测试以此类推,达到准出要求输出测试报告通知uat验收测试验收通过版本封装上线=上线测试===上线成功
============================
1、背下H模型
2、什么时冒烟测试?
3、测试计划包含哪些内容?
4、测试报告包含哪些内容?
5、上线发现bug如何处理?
6、验收不通过怎么办?
7、你参加过用例评审吗?如何评审?
8、你之前工作流程是什么?
9、给你一个需求,你会怎么做?
10、你们公司有那些环境?
================================
敏捷开发模型:
是一个新型开发模型适应于快速需求变化,交互周期短,轻量级的开发模式。
一般一周或两周一个需求,
第一周:开发写代码,测试编写用例一周,
第二周:测试执行用例,开发修改代码
================================
增量开发模型
项目被划分为一系列的增量,每一个增量都交付整个项目需求中的一部分功能,需求按优先级进行划分增量的交付。
================================
迭代开发模型
项目被分为大量的迭代过程,一次迭代就是一个完整的开发循环,是一个可以发布的可执行的产品,属于软件开发周期中最中产品的一个字迹。
================================
测试的基本原则:
1、测试的标准是:从用户的角度出发
2、测试不仅是单纯软件本身的测试(比如:环境,配置)
3、软件外在可用,不代表没有问题(闪退,白屏)
4、软件测试没有完全正确,只有更加完美和正确
5、测试是永远测试不完的
6、测试应尽早进入
7、2 /8原则 (80%的错误出在20%的区域)
8、杀虫剂效应
9、测试尽量选择第三方测试
10、测试活动依赖对象(功能测试,性能测试,安全测试)
================
测试活动的生命周期