为什么要测试?
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、测试中的测试文档?

多测师_测试理轮_002(v模型和H模型)的更多相关文章

  1. 测试的V模型和W模型

    V模型 :后测试 优点: 1.每一阶段都清晰明了,便于把控开发的每一个过程. 2.既包含了单元测试又包含了系统测试 缺点: 1.测试介入的比较晚,所以开发前期的缺陷无从修改. 2.开发和测试串行. W ...

  2. 多测师_讲解python__004 函数

    # 函数:一个工具,随调随用# 降级代码冗余## 增加代码的复用性,提高开发效率,为了不成为cv战士## 提高程序扩展性## 函数有两个阶段:定义阶段,调用阶段.## 定义时:只检查函数体内代码语法, ...

  3. 多测师_肖sir_性能测试之性能测试了解001(jmeter)

    一.了解jmeter 1.Jmeter的概念? JMeter是Apache组织开发的基于Java的压力测试工具.具有开源免费.框架灵活.多平台支持等优势.除了压力测试外,JMeter在接口测试方面也有 ...

  4. 多测师_肖sir _python 练习题(一)100以内奇数,偶数,质数胡计算

    (1)求1~100的和方法: 方法一:print(sum(range(1,101))) 方法二: sum1 = 0 i = 1 while True: sum1 = sum1 + i if i == ...

  5. 多测师_高级讲师肖sir讲解html中 Button跳转连接方法归纳

    第一种方法: 1.1<a href="http://www.baidu.com">   <input type="button" name=& ...

  6. 多测师_高级肖sir分享pycharm中设置主题和设置代码颜色方法

    一.修改pycharm中的主题颜色 二.修改代码颜色 File-->Settings-->Editor--> Color Scheme-->Language Defaults- ...

  7. 多测师_肖sir_git _004(版本控制器)

    gitgit 是一个开源的分布式版本控制系统,用于敏捷高效的处理任何大小的项目.git是linux torvalds 为了帮助管理linux内核开发的一个开放源码的版本控制软件.git与常用的版本控制 ...

  8. 多测师讲解自动化--rf断言(下)--_高级讲师肖sir

    1.Page Should Contain 1.1存在页面上的内容 1.2 不存在页面上的内容, 运行抛异常 1.3 Page Should Not Contain 1.4 1.5 输入页面元素,判断 ...

  9. 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir

    学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...

随机推荐

  1. nginx -s reload 导致的错误

    C:\pleiades\nginx-1.16.1_3\nginx-1.16.1>nginx -s reload nginx: [error] CreateFile() "C:\plei ...

  2. python pickle库

    一.简介: 将文本信息转变为二进制数据流存储在一个文件中,便于下次使用. 二.常用函数: dump(object, file, protocol=None) 必填参数 obj 表示将要封装的对象 必填 ...

  3. Kubernetes 服务部署最佳实践(二) ——如何提高服务可用性

    引言 上一篇文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并提 ...

  4. 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案

    原文地址: Critical CSS and Webpack: Automatically Minimize Render-Blocking CSS 原文作者: Anthony Gore 译者: 蜗牛 ...

  5. 生成token和获取token

    1.先安装模块pip install itsdangerous 举个例子:一个用户登录成功后,讲username和token作为key,value写到redis里面,判断是否失效(1.时间到了失效,2 ...

  6. Linux常用的三种软件安装方式

    一:Linux源码安装    1.解压源码包文件    源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,后缀格式会分别为.tar.gz与.tar.bz2,分别的解压方式:   ...

  7. python语言概述

    python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...

  8. zabbbixs数据库常用操作

    设置MariaDB数据库远程 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'admin' WITH GRANT OPTION; SEL ...

  9. 转载:python的format格式化输出

    https://www.cnblogs.com/chunlaipiupiupiu/p/7978669.html python中format函数   ---恢复内容开始--- python中format ...

  10. java内存屏障

    为什么会有内存屏障 每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取.但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的 ...