IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 测试基础12.2 -> 正文阅读

[开发测试]测试基础12.2

mark学习测试的第一天


?做一款购物软件
提出方:客户(甲方)
想法:做一款购物的软件

解决方案:找外包公司(乙方) 乙方:把项目接到手拿回自己公司做/把你派到甲方公司驻场
公司研发组团队成员
项目经理:分工项目 ?监管作用
产品经理:编写需求说明书(.prd格式 ?word文档) ?制作原型
研发人员:Java工程师 ios工程师 Android工程师 前端工程师.....
测试人员:功能测试 ?自动化测试
设计师:UI设计师?

周期:6个月 12月1日交付给我 ?合同:功能清单

以上参与人员为项目成员,测试人员所做的工作就是保证甲方需求按需求说明书保质保量完成并上线。


测试内容
1、测试基础 测试用例的编写
2、linux系统操作
3、mysql数据的使用
4、接口工具的使用 postman/jmeter
5、fiddler?
6、python课程

软件测试工作职责
1、理解项目的需求、功能清单范围
2、根据项目的原型或者提供资料编写测试用例
3、编写测试用例通过审核后执行测试用例
4、当执行过程中发现与预期的想法不一致判断为bug 记录好bug(禅道)
5、开发修改bug,测试再去检查bug是不是已修复
6、修复好所有的bug后提交一个报告 测试报告(告知老大项目完成任务)

需求文档:以.prd格式或者word文档给的 ?文档内容:告知有哪些功能 具体功能里面页面展示元素有哪些 流程走向
原型:将功能的排版位置固定好 用墨刀编写的

验收测试:如果是给甲方客户做的项目 ?甲方客户验收
? ? ? ? ? 如果是给自己公司做的项目 ?自己老板说了算/邀请用户验收

1、软件测试概念

一般系统分为软件和硬件,软件被划分为系统软件、应用软件和介于这两者之间的。在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件:手机中的应用程序比如淘宝 微信 QQ 医院的挂号系统 超市的收银系统以及车载系统等

硬件:蓝牙 鼠标 电脑 连接线、电源 等

软件体系结构

什么是C/S结构

C/S(Client/Server)结构即客户端/服务器结构。客户端通常可以理解为安装在PC、手机终端设备上的软件,是软件系统体系结构的一种。比如:QQ软件、手机APP等,C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。

还有一类通信的软件,比如:百度云盘、迅雷下载等,也属于C/S结构。但是它们之间的数据传输不需要经过服务器处理业务,可以直接通过客户端进行传输,这种结构通常称为P2P(Peer to Peer)点对点结构。

P2P是可以简单的定义成通过直接交换来共享计算机资源和服务,而对等计算模型应用层形成的网络通常称为对等网络。对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。

什么是B/S结构

B/S(Brower/Server)结构即浏览器/服务器结构。随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务通过逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S是目前互联网中应用最为广泛的系统结构。B/S结构比起C/S结构有着很大的优越性,传统的MIS系统依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制;而B/S结构则不需要专门的操作环境,在任何地方,只要能上网,就能够操作MIS系统,这其中的优劣差别是不言而喻的。

什么是软件测试

说法一:使用人工或自动的方式来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

说法二:软件测试就是利用一定的方法对软件的质量或者使用性进行判断和评估的过程

软件生命周期(测试流程)

软件的生命周期理解很广泛,可以结合人来做比方,人的“生老病死”是一个闭环的环节,对一个软件产品或软件系统而言也需要经历同样阶段,一般称为软件生命周期。软件生命周期大致分为六个阶段

测试需求分析

需求分为确定需求和不确定需求:

A、探讨,商务等阶段时候的需求多半是不确定的,都是口头描述的想法×

B、合同签字或者邮件确认的需求是明确的需求

什么是需求?

诉求:比如我想喝水了

需求:为什么想喝水 是因为口渴还是单纯的想喝水

需求方案:如果口渴 是因为什么原因口渴 运动还是醒来口渴,不同场景下给到的方案是不一样的 运动补充功能饮用水,早起口渴一杯温开水等

如果是从软件上理解,这个有一个专业叫法:软件需求说明书(测试人员的工作标准和尚方宝剑)

企业需求来源:客户、客服、市场部、产品经理、老板等

需求分析的作用:

梳理清楚产品的功能以及业务逻辑

对产品逻辑不清楚不合理的地方提出进行讨论 并最终确定好解决方案

对功能模块进行划分 功能的优先等级

项目成员以及对应工作职责

项目经理,产品经理、测试经理,开发人员,测试人员

项目:代表软件研发的项目,包括了从前期项目调研,立项,组建项目团队,设计开发软件,测试调试,交付验收,以及软件运营等各项具体的工作

项目经理:软件项目的总负责人。项目经理既需要广泛的计算机知识,又需要项目管理技能,能够对项目的成本,人力,进度,质量,风向,安全等进行准确的分析和管理。从而使项目按照计划顺利完成。

产品经理:负责项目的产品分析,和竞品做比对分析 ,整理需求文档,设计原型

需求:主要是从客户方获得他们想要的内容,产品经理整理陈需求文档编写原型,确认定稿后给到开发人员去做项目

用户:可以是提出需求的一方,验收项目质量的一方 使用者

开发人员:负责项目搭建研发的技术,项目的研发核心人员

测试人员:软件中项目质量把控人员

什么时候介入项目是最好的?

肯定是越早越好

软件测试的目的

简单来说,就是代替用户体验,测试最终目的是确保最终交付给用户的功能是满足用户的需求,把尽可能多的问题在产品交付给用户之前发现并解决好

A、发现缺陷

尽早和尽量发现被测试的对象中的缺陷,测试人员通过再次测试和回归测试,确保开发人员已经将缺陷处理好,并不会影响原来正常测试通过的功能,从而保证软件的高质量,提交测试的效率,降低成本和提高质量,软件的测试质量是多维度的比如:界面测试、功能测试、性能测试、兼容测试等方面

B、增加信心

当测试过程中发现很少或者没有缺陷时,测试就可以帮助树立对于软件产品的质量信心,确保软件的实现符合满足需求,被测试的对象可以按照用户/客户的要求工作

C、预防缺陷,提高软件的产品质量

测试过程中所发现的缺陷,以及遗漏到用户现场的缺陷,都应该对它进行缺陷的分析,找到引发缺陷的主要原因,避免同样的问题再次发生,从而改进开发和测试的过程,过程改进反过来也是可以预防相同的缺陷再次发生或者遗漏,从而提高软件的质量, 这也是软件质量保证的重要环节

软件缺陷的定义

A、软件没有实现产品需求说明书所描述的功能

生活实例:房子的主人希望有一个落地的大窗户 ,让阳光可以更好地照进来屋子里,而且特意在图纸上要求画出来,并且加好了说明,但是结果收房的时候主人看到四周都是墙壁,只有一个小门,那么对于测试人员来说,这就是一个缺陷

项目实例:一个电商购物项目,客户需要有支付宝支付功能,并且在需求说明书上加好说明,但是验收的时候发现支付宝功能没有实现,那么对于测试人员来说这就是一个缺陷

B、软件实现了需求说明书描述不应有的功能

生活实例:由于房主人是生活在南方的,天气温暖,而请来的瓦匠是北方的,结果给主人建造的房子里加一个很大的取暖烟筒,主人特意在房子设计图纸中说明自己的房子是不需要烟筒的,那么对于测试人员来说,这就是一个缺陷

项目实例:一个电商购物项目,正常显示的是售价和市场价格,需求上也明确说了只显示两种价格,但是开发把供应商价格也显示出来,从实际角度出发,供应商价格显示出来会让消费者直接看到商家赚取了多少钱,这个是不合理的,那么对于测试人员来说这就是一个缺陷

C、软件实现了需求说明书上没有描述的操作

生活实例:与上面第二个类似,不同的是第二条房主人明确了不要烟筒,而这一条强调的是房主人没说的情况下,工人自作聪明的把烟筒加上去了,那么对于测试人员来说,这就是一个缺陷

项目实例:和上面第二个类似,不同的是没有说明不可以显示供应商价格,但是开发把供应商价格也显示出来,从实际角度出发,供应商价格显示出来会让消费者直接看到商家赚取了多少钱,这个是不合理的,那么对于测试人员来说这就是一个缺陷

D、软件没有实现需求说明书没讲但是应该要实现的功能

生活实例:设计图主要对房屋的高度、格局、材料、颜色描述的非常清楚,工人在建造房子的时候发现主人没有提地基这件事,为了房子的牢固地基是必须要打的,虽然主人没有说,但是地基的功能是必须要做的,如果因为描述没有去做但这是一个必须要做的事情,那么对于测试人员来说,这就是一个缺陷

项目实例:设计图对于项目需要有商品详情、购物车、下单等功能都有描述,开发在做项目的时候发现需求方没有提下单的时候需要锁住库存,但是从程序完善角度出发,如果不锁住库存大家都下单,那么就会出现超出原本库存的情况,货供不应求,那么对于测试人员来说,这就是一个缺陷

E、从用户体验角度,软件难以使用。不好理解、运行速度缓慢或者最终验收方认为不对

软件流程--开发流程规范

需求整理阶段(1个月-2个月)-->开发阶段(3个月左右)--->联调阶段(前端页面和后端接口联调)(1-2周)---->测试阶段(1个月-2个月)---->UAT阶段(用户验收测试)(3周左右)---->上线阶段

需求整理阶段

产品经理整理需求文档,需求评审定稿后,编写项目原型(用Axure、,墨刀)、原型定稿后交给设计部门出设计稿(邮件或官方方式给到测试和开发人员)

开发阶段

A、执行每日例会、更新项目进度、讨论技术优化、解决遇到问题

B、测试人员编写完整的测试用例,测试用例评审:开发、产品经理、项目经理一起进行评审

C、测试用例评审后,等待开发提测

项目可以是:web端管理系统、APP、H5、小程序、PC端等(后续对于这块有详细介绍)

D、第一轮测试-->第二轮测试-->第三轮测试-->回归测试-->UAT测试-->线上测试

软件测试分类、阶段

软件测试应该从需求开始

验收测试根据需求分析来定,测试人员主要做的是系统测试,集成测试和单元测试主要由开发人员做。

验收测试有客户参与

软件测试分类经典的软件测试分类:白盒测试、黑盒测试

白盒测试:关心软件内部设计和程序实现,主要测试依据是设计文档。

黑盒测试:不关心软件内部,只关心输入输出,主要测试依据是需求文档。

比如,对于用户功能点,黑盒测试关注需求,明确知道需要做什么工作,关注功能点;白盒测试更关注代码

一般白盒测试由开发做,黑盒主要由专门的测试工程师做。

一个关注细节,一个关注外围。

测试规划

项目

黑盒测试

白盒测试

功能

根据用户的规格说明,即对命令、信息、报表等用户界面及体现它们的输入数据和输出数据之间的对应关系,特别是针对功能进行测试。

根据程序的内部结构,如语句的控制结构,模块间的控制结构以及内部数据等进行测试。

优点

能够站在用户的立场上进行测试

能够对程序内部的特定部位进行覆盖测试

缺点

不能测试程序内部特定部位;如果规格说明有误,则无法实现。

无法检测程序的外部特性;无法对未实现规格说明的程序内部缺陷部分进行测试

方法举例

基于图的测试;等价类划分;边值分析;

比较测试

语句覆盖;判定覆盖;条件覆盖;判定-条件覆盖;基本路径覆盖;循环覆盖;

软件测试阶段(重要)

测试阶段

主要依据

测试人员、测试方法

主要测试内容 (系统测试和

验收测试的测试内容相同)

单元测试

系统设计文档

由开发小组执行白盒测试

接口测试

集成测试

系统设计文档 需求文档

由开发人员执行白盒测试和黑盒测试


接口测试、功能测试、性能测试

系统测试

需求文档

由独立测试小组执行黑盒测试

功能测试、性能测试、用户界面测试

验收测试

需求文档

由用户执行黑盒测试


安全性测试、压力测试、

可靠性测试、安装测试

如何提高测试效率

1、减少冗余的测试

白盒测试与黑盒测试的方式虽然不同,但是往往在很多地方,白盒测试与黑盒测试会产生一模一样的效果(或者能够推理出来),这样的测试是冗余的。

在集成测试、系统测试阶段,可能要执行多次“回归测试”。每一次“回归测试”都会存在不少的冗余,应当设法剔除不必要的重复测试工作。

2、减少无价值的测试

无价值的测试通常是由不懂得测试技术引起的。例如功能测试,在等价区间之中,本来只要测试一个典型的输入就行了,如果有人在此区间测试了100次,那么其中99次就是无价值的。


?

测试优先级选择

测试要决策重点

1、哪些功能是软件的特色也就是核心功能?

2、哪些功能是用户最常用的?

3、如果系统可以分块卖的话,哪些功能块在销售时最昂贵?

4、哪些功能出错将导致用户不满或者索赔?

5、哪些功能是最复杂、最容易出错的?

6、哪些程序是相对独立,应当提前测试?

7、哪些程序最容易扩散错误?

8、哪些程序是全系统的性能瓶颈所在?

9、哪些程序是开发者最没有信心的?

各个等级测试工程师所需的必要技能

A、初级测试工程师(门槛低)

  1. 大专以上文化程度即可;
  2. 有一定的业务熟悉能力,能快速的熟悉业务并定位出业务中的缺陷;
  1. 了解软件生命周期和简单的互联网交互方式;
  2. 会使用简单的工具(抓包工具、bug管理工具、测试分析软件等);
  1. 能做系统的测试分析;
  2. 能写出完整的测试用例(覆盖面百分之七十);

B、中级测试工程师(会把控项目)

  1. 有一年以上的测试工作经验;
  2. 会使用工具编写自动化脚本;
  1. 能定位出项目的缺陷,配合产品制定项目优化方向;
  2. 能写出系统的测试用例(覆盖面百分之八十);
  1. 对业务异常的测试能力较强;
  2. 一定程度上了解性能测试;

C、高级测试工程师(具有丰富的开发知识和经验)有三年以上的测试工作经验;

能熟练编写自动化脚本(多种);

能把控项目的进程和质量风险;

能带领一定的测试团队;

对系统异常的测试能力较强;

能第一时间定位问题,并push对应人员进行修改;

懂Python、Java等编程语言(至少对一种熟练);

能对产品做系统的性能测试与评估;

能做接口测试,在集成层次上对产品进行把控;

Q:所有的软件都可以修复吗?

A:每一个测试人员都有一颗追求完美的新,当发现缺陷的时候都是希望可以尽快修复好,但是在软件测试中 ,令人难受的是即时尽全力也不是所有的缺陷都能修复

不需要修复缺陷的原因:

原因1:没有足够的时间

原因2:对于程序来说不一定是缺陷

原因3:目前技术无法解决 依赖于其它技术客观因素

原因4:修复风险太大:可能修复这个缺陷会引发其他的不确定缺陷的发生

原因5:修复成本太高

原因6:不值得修复:比如建议性的问题

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:20:35  更:2021-12-07 12:21:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:22:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码