为什么要测试?
1、软件非正常运行或自身缺陷会引发问题
2、代码和文档是人写的,难免会出错
3、环境原因影响软件(内存不足,存储,数据库溢出等)
4、软件测试活动是保证软件质量的关键之一

什么是测试?
软件行业:
1、验证软件的正确性
2、发现软件中的缺陷(bug)

如何做一个成功测试?
能发现前所未有的错误的测 试

软件生命周期?

指软件从产生到报废的整个过程,是一种时间概念。

通常软件生命周期包括哪些阶段?
1)客户问题引入或定义
? 2)可行性分析(涉及经济(商业论证),政治,
法律,技术等)
? 3)项目招投标
? 4)项目立项
? 5)需求分析
? 6)开发阶段(设计,编码,测试)
? 7)维护

软件生命周期模型:
--瀑布模型(waterfall)
? --V模型
? --W模型
? --H模型
? --X模型
? --敏捷开发模型
? --迭代开发模型
? --增量开发模型

v模型
概要设计:简称HLD 是一个文档
内容:架构的初步设计文档,使用说明什么类型数据库,架构的描述,设计,模块的名称(理解为:要盖一栋房,文档里面记录着放在的大概设计的规格)
详细设计: 简称 LLD 也是一个文档
内容:针对功能具体的实现文档,模块的具体实现,具体设计,架构的具体描述(理解为:房子的具体的装饰设计)

需求 (软件需求规格说明书) 是一个文档 简称: SRS
内容:对整个项目的设计,框架,功能,模块的描述,

四个阶段(重点)
1、单元测试 UT UNIT TEST(简称白盒测试---开发自测)
单元测试:是指验证软件单元是否满足详细设计文档的规格,能正确的执行,主要是对代码的测试;
单元测试也是最小的测试单位;

在工作中,单元测试一般都是开发自测,如果测试要进行单元测试,对测试的技术要求非常高,必须要懂开发语言;

2、集成测试 (IT)
集成测试是指多个单元组合验证软件是否满足概要设计文档的规格,能正常执行,主要是模块与模块之间数据的交互,我们也叫接口测试。

3、系统测试 (ST)

系统测试是指把软件进行正常的运行,对整个系统进行测试,验证这个系统能正常的运行,主要是测试一个整体业务的流程。

4、验收测试:(UAT)重点
验收测试是指:站在用户的角度对系统进行测试,验证系统满足用户需求。

验收测试分为alpha(α) 和beta (β)
如果公司验收需要经过α测试 和β测试,都是先α(内部测试)然后β测试(客户方测试)

alpha(α) 和beta (β)区别:
1、α测试地点是在公司;β测试地点一般在客户方
2、α测试 都是内部人员进行测试,开发,测试都在现场,及时发现问题,及时解决;
β测试是客户方的员工测试,发现问题后统一反馈给开发,在解决;
3、α测试时间比较短 ,测试人员比较集中,
β测试 时间较长,测试人员不集中

IT和ST 合并为 sit 系统集成测试 (sit测试,sit环境(技术用来测试的环境))

uat 验收测试 ( uat测试,uat环境 (专门用来验收环境))

H模型

拿到一个需求(SRS)
了解概要设计(测试文档)
了解详细设计(测试文档)
需求评审会议(测试,开发,产品)产品主持会议
编写测试计划(测试经理,测试组长)
根据测试计划,分配工作
编写测试用例 测试
用例评审(两种评审方式:1、组内评审 :测试,开发,产品,交叉评审:测试同事之间评审)

用例通过,导入到用例管理工具中(禅道)
用例分配给对应的负责

部署环境(测试环境(测试),开发环境,线上环境)
部署:运维,测试经理,测试组长,自己

开发提测,也是提交代码包(达到准入的要求)
拿到代码包部署到环境中
冒烟测试(重点)
冒烟测试(称为版本验证测试,提交测试)是指:对新版本的主要功能,基本功能进行测试,如果通过,那么冒烟测试通过,如果冒烟识失败,那么就把版本打回给开发进行修改,直到冒烟通过;

每一次开发提交新版本,测试都需要在测试环境中进行冒烟测试;

冒烟测试通过以后才能进入sit测试(系统集成测试);

sit测试(系统集成测试) 一般一个项目有三次,项目周期长可能4次,更多;
第一次sit测试是全量测试(所有编写的用例都要进行测试);

测试小结:包括用例数,bug数,新增用例数等 ;
开发修改bug
第二sit测试

冒烟测试 ,sit2测试,(回归测试)
回归测试:是系统维护阶段进行的验证测试
区别:测试的阶段不同
冒烟测试是在版本提交时进行的第一个测试,回归测试是在维护阶段的测试;

用例来源:
1、冒烟测试的用例
2、验证上一个版本提交的bug用例;
3、测试和bug相关联的模块的用例
4、你认为可疑的测试用例或者是测试场景
5、测试补充的测试用例或测试场景
第二次测试小结
有bug转给开发
开发修改bug;
提交第三次版本
sit3测试
冒烟测试
测试用例
达到准出要求;
输出测试报告 -----表示sit测试完成

--------
uat 验收测试 (uat环境) --通过uat通过

系统版本打包(封板:是封装版本)
----------
上线
上线成功 ,上线失败,版本回退,继续用之前的版本

回退的版本要重新让开发修改,测试 ,上线
----------
上线前会准备线上测试数据,上线后我们在线上测试下新版本;
如果线上没问题,上线完成,
如果有bug,首先分析bug对项目的影响,影响大,退回版本;影响小,开发和测试分析并上报,建议下一个版本修改。

上线成功 ;
1、说下你是如何开展测试工作的?
2、冒烟测试和回归测试的区别?
3、说下每一轮sit的测试用例怎么来的?
4、你们公司如何去评审用例?谁主持评审会议?如何去开评审?
5、

敏捷开发:
针对于需求变化快,交付周期短的项目,轻量级开发
(一个星期,两个星期做一个需求)
tapd 腾讯项目管理工具

增量开发模型:

迭代开发模型:

有一个需求,划分多个模块,按优先级来实现,在增加量来交付;

测试原则:

1、尽早介入测试
2、测试是无穷尽
3、测试根据用户需求
4、测试不仅是软件的测试,(兼容性,可靠性)
5、二八原则
6、克服杀虫剂效应,
7、测试关注点不一样(性能,安全)
8、尽量选择第三方测试,

1、你写过测试计划?测试计划的内容?
2、测试中的测试文档?

最新文章

  1. GJM : C#语言学习笔记
  2. Linux (Centos)操作MySql命令
  3. Java线程:概念与原理
  4. QQ浏览器安卓5.8版本的Uint8Array API有bug
  5. 【C++/Qt】Qt中的parent形参
  6. HDU 5083 Instruction --模拟
  7. 手把手教你用Python爬虫煎蛋妹纸海量图片
  8. MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
  9. Mysql varchar大小长度问题介绍
  10. MyBatis学习总结_10_批量操作
  11. Ubuntu下gdb远程调试--warning: Could not load vsyscall page because no executable was specified解决方案
  12. ArcEngine查询、添加、删除要素的方法
  13. java基础(十四)集合(一)
  14. jquery中$.ajax的$.get与$.post使用
  15. 「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)
  16. 3D数学 矩阵常用知识点整理
  17. Spring Boot 定时任务使用
  18. Camera摄像头
  19. msf客户端渗透(二):PDF漏洞、恶意网站、flash漏洞、IE漏洞、java漏洞、android漏洞、VBScript感染payload
  20. PHP 自定义方法实现数组合并

热门文章

  1. ASP.NET Core 进程内与进程外的性能对比
  2. 新三种求数列中值SQL之效率再比拼
  3. flume读取日志文件并存储到HDFS
  4. 安装paddle的问题,报错Can not find library: libcudnn.so. The process maybe hang.
  5. python 手把手教你基于搜索引擎实现文章查重
  6. synchronized和lock的作用与对比
  7. Shell学习(四)Shell运算符
  8. 文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码
  9. java 常用类-StringBuffer-StringBuilder
  10. 你用对锁了吗?浅谈 Java “锁” 事