测试课程内容

第一天 软件测试的初步认识(2024.11.26)第一讲  软件测试知多少课程分为两个阶段就业课程1、理论 80%(测试用例,设计用例方法&

第一天 软件测试的初步认识(2024.11.26)

第一讲  软件测试知多少
课程分为两个阶段+就业课程
1、理论 80%(测试用例,设计用例方法,测试流程 ,测试阶段,bug)  + 20% 实操  (linux  mysql)

2、80% 实操(python UI 自动化  接口自动化  接口 app自动化等)+20%理论(接口的基础)

3、就业课程

我们主要从哪几个点开展
1、软件测试工程师薪资及待遇

2、软件测试岗位的环境

3、团队成员

4、什么是软件,软件的组成

5、软件测试一些基本术语

6、什么是测试?主要开展工作?

7、软件测试工程师需要具备哪些技能和素质


一、软件测试工程师薪资及待遇

岗位薪资:
测试助理 (4-6k) 实习生 没有经验

初级测试工程师(7-9k)1-2年的工作经验  一般做功能测试(点点测试  称为点工)最简单

中级测试工程师(10-15k)  3-5年工作经验   一般做功能测试+接口测试

高级测试工程师(15k以上)5年工作经验以上  功能 接口 自动化  性能等

资深测试工程师(20-30k) 高层  测试经理  测试总监指导工作(工作的安排 技术分享,安全指导)

福利待遇
工作时间:基本双休  8小时制
上班时间:9:00  -12:00  13:30-18:30   弹性制
法定节假日:清明节  端午节 中秋节 国庆 春节等
公司定期会有下午茶 团建 生日宴
发放工资时间:5号  10号 15号
加班:打车报销 夜宵 补餐费 交通费 加班费 调休
五险一金

二、软件测试工作环境
1、高楼大夏 每个人一个工位 配备电脑(一台到两台) 白领
2、一般企业:物流企业  电商企业  证券公司  银行 游戏公司 物联网等
3、自研 外包 集团
4、早上9:00 打个卡 吃个早餐 上个洗手间 接杯水 11点,下午:先午休,13:30  过会14:30
整体一天上班下来4-5小时

三、团对成员
部门:研发部 产品部
测试:测试部 测试组
前端开发:前后台页面交互 UI交互
后端开发:接口 数据库 服务器
具体的角色信息:
项目经理:PM  职责:管理整个项目组
产品经理:对接客户 对接业务(接活)编写需求文档
测试经理:TPM   职责:管理整个测试组,安排任务  人员协调,技能培训,线上出问题了分配问题给对应的测试,把控风险
测试组长:跟进测试人员的任务进度,管理自己小组成员
测试人员:TE  职责:看需求文档 ,编写测试点或者编写测试用例,执行用例,提bug 
开发经理:管理(前端和后端) 职责:搭建系统框架  java php 
开发人员:编写代码  web端(pc端,电脑端) app端(移动端 手机端)编写开发文档   api(接口)
DBA    :数据库管理员  ==》后端开发去管理
运维人员:维护环境(测试环境 开发环境 真实环境)linux指令
UI 设计师: 画效果图

问题:公司团建有哪些人?开发和测试比例?
25人:4个测试  17个开发  1产品经理 1个运维 1个ui  1个项目经理    测试:开发= 1:4

四、什么是软件?
1、软件组成: 计算机程序  代码和文档数据组成

2、软件:电脑上的应用程序 和手机上的app   京东  微信 qq

3、硬件:桌子 鼠标 空调

4、代码:前端  和后端
后端:java  php c c++  c# python  go

前端:JavaScript  php html css vue 

5、文档:需求文档  设计文档 开发文档 测试文档(测试计划 测试用例 测试报告等)


五 软件的一些基本术语
1、 pc  机   个人电脑

2、物理机:   电脑  一般用作服务器

3、便携机: 电脑 用于基建项目

4、os:  操作系统   windows  linux uinx mac os  android

5、dos命令: win+r ==》输入cmd ==》ipconfig 本地电脑的ip地址,无线局域网 ipv4
切换d盘:输入d: ,cd +目录  进入哪个目录, 
cd ..  返回上一级
dir  查询当前目录下有哪些目录

6、共享:充电宝 svn git 

7、备份:u盘  拷贝

8、文件和文件夹:d盘中的文件 目录

9、目录:文件夹

10、路径
绝对路径:可以理解为从根目录开始   (与陌生人)
例子:C:\package\gongju
 

相对路径:相对当前路径  (与熟人讲话)
例子:\gongju
 

11、客户机与服务器
客户端访问服务器   client  ==》server  简称 C/S 架构   手机端app操作软件
简历写项目   app 端(手机端)

优点:方便快捷  安全点

缺点:需要更新 不能运行大型软件  耗流量


12、浏览器与服务器
浏览器访问服务器    browser ==》server  简称 B/S 架构   chrome 浏览器操作软件
简历写项目 web端  (pc)

优点:不需要更新,能运行大型软件

缺点:不安全,容易中病毒

13、单机软件:不用连网,俄罗斯方块  贪吃蛇

14、共享软件:有道云,百度网盘   腾讯会议  提供免费,需要享受更多服务就收费

15、app:移动端  手机端  例如:支付宝 微信

16、客户:提要求的人,买单人

17、客户需求:要求研发团队实现 电商平台

18、项目:成立一个电商项目组

19、项目需求:产品经理根据客户需求梳理出我们研发团队能看懂的需求,是否实现 是否可以支持 
做成什么样子,具体有什么逻辑等


六、什么是测试,怎么开展工作?
1、什么是测试?
就是运用一些测试方法去验证功能是否正常运行

例如:微信聊天功能,测试聊天功能,发送一些文字  图片 表情 红包等
      微信支付功能,买一个早餐需要支付5元,输入金额 输入密码 支付成功
      玩游戏:签到功能,每天签到一次可以领取一个奖品,
      
测试方法有哪些      按测试技术分类
白盒测试:也叫单元测试    也叫内部结构测试,可以看得到内部结构和内部数据以及代码 ==》开发自测

黑盒测试:看不到内部结构数据,只能关注表面功能,也叫点点点测试   ==》 测试人员做

1)盲测:把所有的功能随意测试一遍,想到哪里测试那里,不需要编写测试用例或者测试点  自研公司
2)依据测试用例或者测试点去执行测试
什么是测试用例?依据需求,编写测试用例或者案例,作为测试的依据
谁来写? 测试人员编写

例子:需求登录功能 账号 为amdin  密码为 123456
用例1:输入正确的账号admin,正确的密码123456,点击登录按钮,登录成功
用例2:输入正确的账号admin,错误的密码1234567,点击登录按钮,登录失败

灰盒测试:接口测试,需要关注外部输入和输出,,也需要关注内部逻辑,注册功能,注册一个账号成功了,还需要去
登录一下     ==》测试人员做


白盒测试分类:静态测试和动态测试
静态测试:不需要执行程序,就可以进行测试   关注:颜色 字体 布局 

动态测试:需要执行程序,才可以进行测试,通过请求接口数据发生变化

2、怎么开展工作?
1)拿到需求,需求一般是产品经理提供
获取途径:项目组群 、领导发给你、项目管理工具自己取(svn  git 禅道 蓝湖 tapd) 

产品经理之前会开一个需求评审会议,就是讲解需求文档

2)深入了解需求:实现什么功能  什么逻辑 什么交互,做成什么样子

3)使用xmind思维导图编写测试点

什么是测试点?包括是否 能否
例子:微信发朋友圈
① 是否可以正常发朋友圈
② 是否可以选择图片发朋友圈
③ 是否可以视频发朋友圈
④ 选择图片后进行取消

4)根据测试点编写测试用例(excel)
评审用例

5)开发代码编完了,部署到测试环境       测试人员开始执行用例

6)发现bug,提交bug到bug管理(禅道)指派给对应的开发

7)回归测试bug

8)输入测试报告

9)准备上线


3、给你一个任务从哪些维度去考虑?
需求测试
功能测试:产品是否实现了预期的功能
界面测试:布局、每个元素的大小、颜色、材质
兼容性测试:软件的不同版本、打开网站所用的不同浏览器、不同的系统版本、数据兼容性(不同版本数据是否展示正确且相同)
安全测试:产品网站系统,用户信息,页面数据展示的是否恰当和合适(用户的隐式数据),登录时候是否加密,接口返回值—SQL注入,越权问题(垂直越权和水平越权):权限、管理员、普通用户,不同的角色对应不同的功能

易用性测试:产品是否容易上手、提升文字(登陆时)、打开软件的操作步骤提示
性能测试:功能测试没有问题,不代表性能好(网站速度、流畅的)

设计测试用例的万能公式 (在没有需求文档的情况下) 

从不同维度阐释软件测试(测试点  重要)

1)需求测试:客户首先提出需求,对接产品经理,产品经理把客户需求梳理出来
例如:客户说需要实现一个电商平台 ==》登录成功  订单成功 商品管理功能 购物车功能
==》找到出产品经理开会讨论(讨论一周)==》产经经理把上面的功能用world文档梳理成研发团队
能看懂的项目需求文档 ==》需求规格说明书 ==》发给研发团队 测试  开发  运维 等 ==》这个看
或者分析的过程就是需求测试
看下需求逻辑,实现 技术 有没有问题

2)界面测试:外观测试   颜色  字体大小  布局  提示文案
这里会涉及一个职位 UI设计师 负责画效果图,一边拿着效果图看,一边看着开发出来的系统进行比对,这个比对的过程就是界面测试

3)功能测试:黑盒测试 ,可以把它当做一个黑色的盒子,看不到内部逻辑,也不需要关注内部数据,只关注外部功能是否正常运行
例如:抖音点赞功能,是否可以点赞 ,是否可以取消,点赞一个数量
      支付宝扫码支付:是否可以扫码,是否可以正面扫码  斜着扫码
功能是一个系统的根本,如果功能出问题了几乎是没有人去使用

4)安全测试
一般和钱打交道的安全性非常高    银行  证券 政府单位
例如:
登录界面的账号 密码  这里的密码是加密显示的
快递:手机号 加了*号

5)可靠性测试     ==》软硬件方便   包含可用性测试
   可用性测试
   假设:电梯厂商说这个电梯完成一次升降需要用时2分钟
① 第一次测试:电梯人比较少,非常平稳 用时 1.5分钟完成升降   ==》可靠性
② 第二次测试:电梯人多,不太稳定,用时3分钟完成升降         ==》可用性

6)可移植性测试:在不同环境中是否可以正常运行
例如:一部手机在深圳生成的,在深圳是否可以打电话,是否可以支持外地  北方  最南方  雨天 黑夜 通道

音视频sdk 
腾讯视频会议   zoom视频会议   ==》为什么可以视频,是因为都嵌入了音视频sdk
音视频sdk在不同(腾讯会议软件和zoom会议软件中)环境中都可以正常运行

微信    可以 windows7   windows10  windows11都可以使用说明可以移植性测试


7)兼容性测试   以产品经理为主,需要测试那些版本
不同的系统     windows  linux unix mac os

web端
浏览器:谷歌  火狐 ie  搜狗 360 qq浏览器   功能需要一致
屏幕:  打小屏幕需要兼容
分辨率:

app端:  
android:15.xx  14.xx  13.xx 12.xx 11.xx 10.xx 

ios :   18.xx  17.xx  16.xx  15.xx  14.xx 

屏幕:曲面屏  折叠屏  水滴屏  平板
分辨率
尺寸 
不同的品牌:OPPO  vivo  华为 荣耀 三星

异常: 2g 3g 4g 5g wifi 无网 切换网络  来电 短息 接电话 杀进程等
手势 屏幕旋转 二手指纹
权限:访问相册 通讯录 
定位


8)性能测试   非功能测试
压力测试 破坏性测试  生活中的例子:一个人背东西临界值 100斤,一直往上加 10  20 30找出
最大值

软件上:淘宝系统 一台服务器支持100w ,需要测试出部署几台服务器

负载测试:一个人背东西临界值 100斤,一直背着,看能持续多久

软件上:淘宝系统 一台服务器支持100w,会不会抛异常

9)易用性测试:客户体验度,好不好用,   抖音
体现的例子:操作系统会提示语   输入框的提示文案


作业:每一个编写30条以上
1、完成微信发朋友圈测试点
2、支付宝扫码支付测试点
3、微信发红包测试点
4、登录功能测试点

第二天 软件生命周期(2024.11.27)

一、为什么要测试软件生命周期

1.软件的非正常运行或自身的缺陷

非正常:12306抢票软件 平时使用该软件抢票,没啥问题,到了春节或者节假日,很多人在做同一件事情,导致软件处理不过来,产生了性能问题

缺陷:在测试过程中发现问题,通过测试用例执行过程中与用例预期结果不符,也就是说明与需求不一致,例如:需求规定登录按钮,高亮显示,开发出来的登录按钮没有高亮显示。

2.软件是由代码和文档组成,而这些都是有人去设计和编写,人都有可能犯错误的

需求文档:由产品经理编写,在编写过程中多多少少会存在;

① 错别字

② 逻辑问题 登录密码 设计输入正确的账号admin 正确的密码123456,密码强度弱 不安全;再比如,购物车勾选优惠券后支付金额会变化

③ 出现模糊不清:两种方案任选一种

代码设计:前端和后端开发

前端出现页面交互问题,强制要求必填,页面没有设计“*”

后端出现:没有限制重,创建一个账号A,继续可以创建A

3.环境也会影响软件,导致软件失效现象

1)有些WiFi连上了,使用不了

2)订单库存页面,显示100个库存,这是有人下单了,页面没有做任何操作,这是页面一直显示100个

3)QQ在win10上软件管理下载时出现版本过低

4.软件测试活动只是软件质量保证活动之一

测试人员只是团队中的一员,如果需要保证软件质量,需要团队一起去维护

1)产品经理如果需求不清晰,会导致测试,开发做出来系统会有问题

2)开发 编写代码的水平也会影响

3)测试个人技能,业务熟悉度

二、什么是测试

制造业:蓝领(工厂)比如客户需要生产一个白色的盒子,生产完后需要检验这个盒子是否符合客户的需求。(材质,形状,尺寸。。。)

软件业:白领(互联网)

1)验证软件的正确性

2)发现软件中的缺陷

发现软件中的缺陷有几种不同的缺陷

1、测试时证明程序有错(√)

作为测试人员就是要证明软件存在问题,也是这个岗位存在的价值

2、一个好的测试用例在于它能发现以前未发现的错误(对)

测试用例是根据需求文档,测试点,编写测试用例
编写测试用例需要学习测试设计用例的方法

测试编写的质量不是很好,发现的bug也就很少

3、一个成功的测试,能发现前所未有的错误的测试

成功的测试:只有负责的模块只有不出现大问题,就可以说明是一个成功的测试

测试人员能力越强,发现bug的能力越强

三、测试人员做功能测试主要测试哪些内容

功能测试主要是检验产品(系统或者软件)根据测试用例逐项检查是否达到用户需求;

1、页面的链接 对每个链接是否正常切换

2、删除、添加、编辑 会不会影响其他项==》数量

3、检查按钮功能是否正常打开

4、字符串长度限制

5、字符串的数据类型  整形 字符串  中文 英文

6、检查带出来的数据信息的完整性

7、信息重复性

8、编辑字段的长度 命名

9、选填 必填

10、上传文件、下载文件 文件格式

11、导出、导入功能 数据一致性

12、快捷键、enter 剪切 复制 粘贴 

四、软件生命周期有哪些阶段 从开始到上线

1、客户问题的引入与分析

客户提出需求,客户提出的需求相对比较粗糙,没有细化,需要对接产品经理,沟通清楚具体需要实现什么功能,客户提出的需求可能会存在问题

2、可行性分析:是否挣钱,是否违法,是否技术支持

3、项目招标:确定交付时间(假设6个月)和需要支付的金额(定金)

4、项目立项:谁报的价格低且交付时间合理,成立xxx项目组,招开发 测试 等,讨论前三个月需要完成什么,后三个月完成什么,因为客户会定期检查项目进度;

5、需求分析 ==》测试从这里开始介入项目

问题1:测试人员一般从什么时候接入项目 ==》从需求分析阶段介入项目

产品经理针对客户需求转化为项目需求,同时会组织开需求评审会议,测试 开发 运维参会等

问题2:拿到需求后怎么分析需求?

隐性需求:没有明确说明,需要测试自己分析  例如:注册账号 填写正确的信息点击注册成功, 注册成功

显性需求:明确说明,需要做登录成功

特殊需求:计算公式 例如:订单利润=售价-成本-运费-...等

关联需求:注册和登录

1)首先深入了解需求,挖掘需求当中隐性 显性 特殊 关联的需求

2)站在测试角度考虑需求逻辑是否有误,是否可以在环境测试进行,可测性

3)使用xmind思维导图提炼需求中的测试点

4)运用等价类和边界值去设计测试用例

5)在需求分析过程中遇到不确定的点需要和产品经理一一确认

6)不仅需要考虑功能测试,还需要考虑兼容性,界面,功能,易用性,安全,性能等维度

问题3:如果没有需求文档怎么测试?

1)根据以往的测试经验去测试

2)根据以往类似的项目去测试

3)如果在测试过程中遇到不确定的点需和产品经理一一确认

4)在测试过程中遇到问题及时反馈

 

6、开发测试阶段

开发:先了解需求,设计开发文档,编写代码 开发需要自测

测试:了解需求 提炼测试点  编写测试用例 评审用例 提测 发现bug提bug 回归bug

测试完后需求进行上线,测试需求跟进 

7、维护:一般会拿到交付的尾款 定金(30%) 尾款(60%) 还剩10%帮客户维护一年

在D盘新建两个文件夹

package        包  老师发的安装包 或者笔记 文档 文件

path   安装路径,后续每安装一个软件,在这里新建一个文件夹,用英文命名或者含有下划线 不要有中文 特殊符号  — 空格

下午:

五、svn:集中式版本控制器  v1.0   v1.1  v1.2   v1.3

git:分布式版本控制器

1、svn作用:对需求规格说明书、测试用例、产品说明书 代码 项目相关的文档进行管理和共享

2、svn工作原理

开发人员每天从svn服务器拉取代码到本地电脑进行一天的工作,等到开发编写完代码后提交到svn服务器上面,如果出现提交代码时冲突了一般是由最后一位开发人员进行解决冲突

3、安装过程:

4、实战

1)创建一个共享文件夹

2)创建一个用户

3)演练

给你一个链接 账号 密码

在公司中测试人员只会使用客户端,就是上级会给你一个链接 账号 密码  在同一局域网下

操作:

1、svn checkout ===》检出,用来链接svn服务器,然后服务器上的数据拉取到本地电脑

2、svn commit ===》把本地添加的或者修改,删除的数据提交到svn服务器

3、svn update  ==》把本地的数据和服务器的数据进行同步(提交之前一般需要update下)

解决文件夹左下角绿勾问题:

1)鼠标空白处右键 ==》点击settings

2)打开设置找到图标叠加icon overlays  ==》改成shell

3)点击确定

4)重启电脑

六、git版本控制器

git常见的指令

git status :查看git 的状态

git diff :查看git的修改记录

git add :把数据添加到暂存区

git commit :把暂存区的数据添加到本地仓库

git pull :把远程仓库的数据拉到本地仓库

git push :把本地仓库的数据推送到远程仓库

七、软件生命周期模型 ==》研发模式

1、瀑布模型

开发周期比较长,测试人员介入的时间比较晚,会导致项目风险大,bug比较多,会导致项目延期,错失商机  ==》丢弃

2、V模型  ==》项目的阶段
1)用户需求:客户提出的需求,对接产品经理,前期会花时间讨论 分析 先做啥,需求优先级
2)需求分析阶段:

根据用户需求,产品经理会提炼、分析、梳理出项目需求,由产品经理梳理完成后,会组织一个需求评审会议,【有产品经理主讲】,经过多次讨论,最终会形成一个基线化文档 ==》需求规格说明书

①参与分析需求

②参与需求评审

③了解需求

3)概要设计阶段:简称HLD ==》开发做

生活中的例子:搭建房子,首先搭建一个框架,准备三层,每一层三间房子,房间具体怎么不知还不清楚;

软件上的例子:好比是微信,搭建一个框架,Java语言 框架 spring boot

微信 【微信 通讯录 发现 我】 每一个大模块具体研发什么功能

4)详细设计阶段:LLD

根据每一个大模块需要实现具体什么功能,微信需要实现:聊天,红包,共享位置,转账,表情等 ==》给开发分配任务 开发1、开发2、开发3...

5)编码和实现阶段

开发人员根据各自任务进行编写代码coding

前端 页面

后端 接口

6)单元测试阶段:unit test

可以理解为白盒测试,通过白色的盒子可以看到内部结构、内部数据和内部逻辑;开发完成各自的模块进行自测;开发不会测试那么细,只会把主流程测通 ==》代码测试 ==》开发做

白盒测试有哪些方法

~语句覆盖

~判定覆盖

~条件覆盖

~判定/条件覆盖

~组合覆盖

~路径覆盖

白盒测试方法中哪个最强 最弱?路径覆盖最强,语句覆盖最弱

7)集成测试阶段:IT

集成测试就是把开发1,开发2,开发3,开发4 各自负责的模块串联起来 ==》灰盒测试 ==》测试做

问题:你们公司先测试功能还是先测试接口?

我们公司先测试功能,先保证功能没有问题,后续再测试接口(顺序倒了也没关系)

8)系统测试:ST

就是功能测试,把所有功能以及相关联的模块全部测试一遍

①相关联模块:测试用户管理模块涉及到角色管理模块

②第三方模块:比如百度  登录可以支持微信、微博、QQ登录等 这就是第三方

集成测试(IT)和系统测试(ST)合并成系统集成测试(SIT) ==》测试做

2024.11.28 上午

9)验收测试阶段:UAT

一般是由产品经理验收。

测试环境进行验收 ==》测试人员使用测试

验收环境进行验收 ==》接近真实环境 生产环境 线上环境

α(阿尔法):内部测试,测试人员执行测试结束,这是告知产品经理测试已经完成测试,请产品经理进行验收,产品经理在验收过程中发现了一些问题,测试人员需要进行更新同时发给开发进行快速修复,修复好了进行回归测试(复测bug),没有问题了告知产品经理再去看下,可以准备上线了;

β(贝塔):外部测试,这种情况是系统需要交付给客户,客户这边可能会请他们的测试人员进行验收或者客户自己验收,如果发现问题,请客户统一收集,以邮件方式发给项目组相关人员,测试人员马上进行跟进问题,开发立马修复问题,知道问题解决

问题:你上一家公司的项目有哪些阶段,每个阶段的输入、输出

阶段                                    输入                                       输出

需求分析阶段         项目组参与需求文档评审            需求规格说明书

概要设计阶段         需求规格说明书                           概要设计说明书

详细设计阶段          概要设计说明书                           详细设计说明书

编码阶段                  详细设计说明书 编写代码          整个代码包(.war  .jar  .zip)

单元测试阶段           对代码进行单元测试                   单元测试报告

系统集成测试阶段     测试人员执行用例                      测试总结报告

验收阶段                   公司内部或者外部参与验收        验收测试报告(邮件方式通过)

第三天 11.28

测试计划

1.、什么时候写

产品经理评审完需求之后,测试人员进行了解需求,等到项目周期进行到一定时间后,输出一个测试计划文档

2、谁写

一般是领导编写  测试经理  或者测试组长  测试骨干 你(自己)

3、为什么写

1)测试的范围:明确规定这个版本计划需要测试的内容(当前的需求和有关联的模块)

2)分配任务:现在测试人员3人+1领导

3)编写用例的要求:400-500

4)每个阶段的时间节点: 需求分析  编写用例 执行用例需要花多少时间

5)测试约束(什么时候开始测试  什么时候测完    ==》测试准入  测试准出)

* 4、测试计划包含哪些内容

测试的目的:编写这个计划需要是做什么事 为了给下一次计划提供依据
测试的范围:当前迭代的需求以及相关联的模块
测试的约束:测试准入和测试准出
测试任务进度 人员:
① 人员安排  参与了哪些人  测试 开发  运维 产品
② 任务安排  模块划分  需要耗时  人/天
③ 用例的编写
软件资源: 测试对象 什么环境 web  app  工具 svn  xmind  mysql等
硬件资源:服务器配置    手机:测试机
风险评估:当前迭代的需求可能存在哪些风险
输出的文档:测试计划  测试用例  测试点  测试小结 测试报告等

* 5、测试时间规划

例子:一个需求,两周一个迭代 各阶段时间安排    双休模式   ==》10天
需求分析阶段: 2天
环境维护:   0.5天
编写测试计划:0.5天
编写测试用例:2天
用例评审:    0.5天
执行测试用例:4天
编写测试报告:0.5天
问题:你们公司多久一个迭代,时间是安排的?

作业:假设一个月一个版本你怎么安排时间? 22天     版本  V1.0  V1.2  *
需求分析阶段: 4天
环境维护:   1天
编写测试计划:1天
编写测试用例:5天
用例评审:    1天
执行测试用例:9天
编写测试报告:1天

风险评估

在测试过程中会遇到哪些风险?(测试过程中会遇到哪些问题)

(1)需求变更(在测试过程中需求发生变化)

应对:

1)看下需求变更影响怎么样,如果此次变更对版本影响比较大,可以向产品经理建议下一个版本变更

2)如果一定要变更,让产品经理形成文档化,告知参与的相关人员

3)如果变更大,需要重新评估一个上线时间,如果变更比较小,可以尽力去完成

(2)测试过程中来了一个紧急需求,可能时间不够

应对:

1)首先向上级领导确定一个优先级,放下当前工作去了解紧急需求;

2)对紧急需求评估一个测试时间,如果时间不够,问下领导是否可以安排一个人过来帮忙一起完成。如果没有人员安排,时间也不够,尽量去加班完成,首先保证主流程没有问题,还有时间去测试其他功能;

3)如果还是完成不了,向上级报风险,告知领导还有哪些没有完成,会带来什么影响;

4)后续跟进,抽空继续测试

(3)新员工入职测试可能会有风险

应对:

1)指导新人快速了解公司中工作流程,业务逻辑,以及人员和环境,便于新人快速适应环境;

2)定期可以开展业务和技术培训;3)带领新人积极参与项目,工作沟通协作等

(4)上线版本管控

之前我未进入公司之前,版本管控不严,经常出现开发自行发布版本,会导致线上环境不稳定,容易出现问题

应对:

1)严格把控版本上线,以bug为版本进行提交;

2)禁止存在测试过程中及bug确认阶段提交代码到线上

11.28  下午

第三天下午 安装vm虚拟机

1、认识linux指令

1、linux 是操作系统

windows linux unix mac os Android 鸿蒙

2、为什么要学习linux

我们软件一般部署到linux虚拟机上,不会部署到windows,因为部署在Linux上面比较安全

3、linux主流版本

ubantu 高配版 

centos 6.5(练习用)  稳定 可靠 免费下载

4、Linux作用

免费使用:不收费

开源:开发原生代码,可以在上面进行修改,调试代码

支持多任务:可以同时进行多个任务

支持多线程:支持多个线程同时工作

多cpu:支持多个cpu

多用户(支持不同的用户同时操作,不同权限,互不影响)

部署很多个系统:操作系统

5、VM安装过程

package:存放安装包、文件、笔记

path:安装路径、每安装一个软件前在这个文件夹内新建一个以安装包命名(英文或拼音)的文件,不要出现中文,空格、—、特殊符号等

6、开启虚拟机

双击打开VM(虚拟机):可以部署很多个系统

找到绿色三角形点击【开启虚拟机】,

进入虚拟机:鼠标直接点进去,或者CTRL +G,退出虚拟机:CTRL+ALT

7、开启虚拟机之后,选择other,输入用户名、密码,点击确定,鼠标右键,选择open in terminal

8、虚拟机拍快照

拍快照路径:虚拟机-快照-拍摄快照,记得详细命名,确定

目的:为了删除了系统,可以回到当前状态(初始状态)

二、linux指令

$:普通用户的权限

#:表示超级用户的权限

su :switch user 切换用户      su root :切换到超级用户   root:表示超级用户  

注意:su 如果从普通用户切换到超级用户需要输入密码(密码不显示),如果从超级用户
切换到普通用户不需要密码

4、pwd   表示查看当前绝对路径

5、 /   表示跟目录    所有的文件和目录都属于根目录

6、ping 网址IP   表示查看网络是否通的  CTRL+C退出

例如查看百度网址
ping www.baidu

7、ifconfig 表示查看Linux的ip地址   在addr 后面的地址,假设如果没有IP地址,可以重启service networ restart 重启网卡

 

8、ll 表示查看当前目录所有的文件和目录、ls 表示查看当前目录所有文件和目录(不详细)

      ls -a 表示查看当前目录所有文件和目录(包含隐藏文件) -a 表示参数 all

第四天  设计用例方法和设计(2024.11.29)

1、测试基本术语

1)*动态测试:通过运行被测程序,检查运行的结果与预期结果是否一致

例:测试一个创建用户功能,填写正确的信息,运行的结果 是创建失败,预期结果是创建成功

例:测试一个登陆功能,输入正确的账号,正确的密码,点击登陆按钮,实际结果:登陆失败;预期结果:登陆成功

总结:测试数据交互

2)*静态测试:不运行程序的情况,检查软件或者代码进行测试,代码审查或者审查文档

例:需求评审,看UI图,测试某个文案

3)正式评审:测试用例交叉评审、组内评审、会议评审

4)度量:一个系统怎么衡量好坏,可以用bug 衡量

例子:性能 反应快 响应时间短 功能完整性 简单 几乎没有bug

5)评审员

需求评审:产品经理

用例评审:测试人员

6)记录员:所有参与会议的人都是

7)技术评审

需求:前期还没有定下来时,这时一般是领导级别会讨论这个需求能不能做

开发:开发的代码实现,同行之间进行技术交流

8)走查:过下需求文档  过下测试用例 ==》评审

9)复杂性:逻辑越多越复杂

10)圈复杂度:编写代码越复杂(场景多),圈复杂度越高

指的是程序中独立路径的数量

V=5 也就是说它的圈复杂度是5

1-2-3-7-6、1-2-3-2-5-6、1-2-5-6、1-4-5-6、1-4-6

V=区域数 =5    V=边数-节点数+2 =10-7+2=5

例:V=3

&& 表示与 且 两者都要满足

||  表示 或 只要满足一个条件都可以

a-d-g     ==>x=        y=         z= 

a-b-c     ==》x=       y=         z=

a-d-e-f   ==》x=       y=         z=

11)控制流图:伪代码,开发为了主语理解画一个流程图,对于我们测试来说,这种图一看就知道需要测试哪几种场景

12)数据流:数据从哪里来到哪里去

例子:微信注册  ==》填写信息 ==》提交注册 ==》填写的信息到腾讯微信后台数据库中登录微信,输入的账号信息与调用注册信息是否一致

2、黑盒测试(功能测试)设计用例的方法有哪些

1)*等价类

2)*边界值

3)判定表

4)状态迁移图

5)场景法

6)错误推测法

7)因果图(不用管)

8)正交表 (不用管)

【等价类】

1)等价类的定义:在一个输入域的集合中,在这个输入域中的每一个集合都是等效的

例:公司绩效打分功能,给每个人进行打分考核,要求考核分数在1~100分正整数

输入域:1~100

集合:[1,100]任意正整数

等效:对于这个打分功能来说 不管打1 100 80 90 都是满足的

有效等价类:对于这个程序合理,满足要求的

有哪些数据:1,100 80 90...

无效等价类:对于这个程序不合理的数据

有哪些数据:0 -1 101  小数  中文  英文  特殊符号  空

例子:微信聊天功能输入框:现有功能

有效等价类:文字、数字、字母、特殊符号、、中文、表情、图片、视频、语言、文件、链接、红包、转账、位置....

无效等价类:文字超长、图片超出、文件超出、红包最低超0.01 超最高200(特殊节日外)空 语音长60s

例子:年龄 设置正整数 范围1—150

有效等价类:1,2,...,150

无效等价类:0 负数 小数、英文、151、特殊符号 中文、空

等价类划分:

规定输入规则时,可以划分出多个有效等价类或多个无效等价类

需求:QQ密码 由6-10位 数字字符 下划线 英文组成的

有效等价类

123456    符合规则

12345      不符合规则    长度违反

等价类划分思路

1、找出有效等价类和无效等价类

2、编号

3、设计测试用例 用excel 表格编写

**测试用例包含哪些内容(信息或者要素)

用例编号:自定义命名 如:QQ_01

用例模块:如:QQ登录模块

用例标题:用简洁的语言描述,你要验证什么

前置条件:做下一步之前先做好了什么

用例步骤:详细描述操作步骤,包含测试数据

预期结果:针对上面输入的测试数据会得到什么结果

优先级:高中低

是否通过:pass、fail

并非所有的有效等价类都有无效 例如:性别:男  女

5、一个无效等价类就是一条用例,不要横跨多个无效等价类

有效等价类可以跨多个 123456 ==》长度和类型符合

无效等价类 

**编写用例主要注意事项

需求了解透彻, 用xmind 思维导图提炼测试点,运用等价类和边界值编写用例

1、一般编写用例以验证开头

2、用例标题需要和预期结果相呼应

3、用例标题需要和用例步骤相呼应

4、等价类用例设计方法描述一般用大于、小于 在什么之间 等于

5、一个无效等价类就是一条用例,不要横跨多个无效等价类

6、用例步骤需要包括测试数据

 数据合理性:需求:QQ密码 由6-10位 数字字符 下划线 英文组成的

有效等价类

123456 1234567890  12345678

abcdef  abcdefghij   abcdefg

______     __________   ________

abc123      123___     12ab__

无效等价类

特殊符号   !@#¥%&

中文          我是中国人

长度     12345(少) 12345678910(多) abcde  abcdefghijk ____   ____________

练习:

现有一个档案管理系统,容许用户通过输入年月对档案文件进行检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6位数字字符组成,前4位表示年,后2位表示月。编写12个测试用例

第5天 Linux指令(2)

9、 alias                查看哪些指令取了别名
      alias f=‘ifconfig’   给ifconfig 取个别名f   敲f 和敲ifconfig
      unalias f            取消f 这个别名

10、cd +目录
cd home     表示进入到home目录
cd ..       表示返回上一级
cd ../..    表示返回上两级
cd .        点表示当前目录,就是当前在哪里还哪里
cd /home/linux/Desktop/   表示从根目录开始进入目录 这是绝对路径的写法
cd ./linux/Desktop/       表示从当前路径开始进入目录,这是相对路径的写法

11、centos 虚拟机在公司中一般用作服务器,我们测试人员一般用客户端取连接虚拟机,
使用xshell 去连接,在虚拟机和在xshell 操作相互影响(是一样的)
模拟公司场景
一般会给你ip地址  账号 密码  直接连   用什么工具,根据公司来定

12、xshell 连接虚拟机客户端
1)打开xshell 
2)在虚拟机中输入ifconfig  获取ip地址
3)在xshell 中输入 ssh 192.168.xx.xx
4) 输入账号 root 密码 123456  点击确定


13、区分文件与目录

dr-xr-x---.  29 root root  4096 Nov 30 01:20 root    root 目录是root用户的家目录
drwxr-xr-x.   3 root root  4096 Aug  3 11:57 home    home 目录是普通用户的家目录
以d 开头的是目录

-rw-r--r--.   1 root root     0 Aug 22 04:39 tt     以- 开头 是文件


14、创建目录
mkdir dcs111  表示创建一个名为dcs111目录
mkdir aa bb   同时创建两个平级目录 名为aa  bb
mkdir -p aa/bb/cc   表示创建一个层级目录  aa目录下有bb目录,下有cc目录

15、创建文件
touch a   表示创建一个名为a 的文件
touch  tt  ww  表示同时创建两个文件tt  ww

16、删除指令
rm  提示性删除 rm a  按y 表示同意删除  按n 表示不同意删除,只能删除文件
rm -r 提示性删除 rm -r a  按y 表示同意删除  按n 表示不同意删除,可以删除文件和目录
rm -rf  目录/文件   表示强制性删除文件和目录
rm -rf *  表示删除当前所有的文件和目录  * 表示通配符(慎用)

17、vim 编辑文件内容  后面接文件名
1)vim + 文件  按enter键   ==》命令模式
2)输入小写字母i   ==》编辑模式
3)编辑内容
4)编辑完内容后 按ctrl +c  退出编辑模块 ==》末行模式
5)按大写  ZZ (或者shift+:wq! 按enter键)

第六天 软件生命周期(2)(24.12.2)

H模型

1、假设6个月(180天/24w)  一个版本,意思是在这个时间内完成这些任务

2、项目和版本的区别:微信项目 13年 期间更新了多个版本,一个项目包含多个版本

3、项目和产品的区别:先有项目后有产品 ==》客户问题引入 ==》可行性分析 ==》立项 ==》需求分析 ==》编码和测试 ==》产品上线

4、H模型:你们公司的测试流程(项目流程)给你一个任务怎么开展工作

5、时间:工作日:周一到周五(非法定节假日) ;   自然日:周一到周日

6、梳理大致流程 开发和测试并行

1)需求评审  开发 测试 产品 运维等 6w

2)概要设计(HLD) 测试了解需求

3)详细设计(LLD)测试深入了解需求,基于项目周期编写测试计划

4)开发编写代码 测试根据需求编写测试用例,评审测试用例

5)开发把编写代好的码打包,运维人员搭建测试环境,开发把代码包交给运维部署到测试环境中

6)测试人员进行冒烟测试,再进行sit系统集成测试,发现bug提交bug

7)测试人员进行回归测试,将所有的bug全部复测一遍,直至bug为0

8)测试完成后,输出一个测试总结报告,发给领导准备上线

针对以上8点细化

1)①需求分析:客户提出需求,产品经理和客户进行对接,开会讨论需求怎么实现,优先级,然后产品经理会根据客户需求梳理出项目需求,发给开发、测试、运维等,开发和测试阅读和分析需求把不确定的点记录下来,等到产品经理召开需求评审会议,通知大家参与会议,由产品经理主讲,我们听,看,然后把刚才的问题一一提出来,产品经理觉得提的建议还可以,就会修改需求,如果更改比较多,会再次评审,最终会输出一个基线化文档 ==》需求文档

通知方式:邮件  项目组群 领导通知

通知内容:会议内容 时间 地点

基线化:表示大家讨论后达成一致,此时非常稳定,随时可以进行下一个环节

2)②概要设计阶段:开发同事基于需求文档编写概要设计文档,就是架构师搭建框架,准备用什么语言,测试人员了解需求,需要挖掘需求测试点出来,便于后面编写测试用例

3)③详细设计阶段:开发基于概要设计文档,编写详细设计文档(主要开发分配任务,开发新功能)

前端:需要完成哪些页面

后端:编写多少接口 创建数据库表

测试人员:深入了解需求,用Xmind思维导图提炼测试点,基于项目周期,编写测试计划编写测试计划的目的:分配任务 时间节点 进度跟进 测试范围 风险评估等

测试计划谁写:测试经理 测试组长 测试骨干 自己(你)

4)④编写代码 测试编写用例

开发人员:基于设计文档编写代码,编写完后需要自测

测试人员:基于需求任务,编写测试用例,编写完后进行评审

评审完用例后需要进行增删改,然后进行保存(自己保存 发给领导 上传到项目管理工具-禅道)

公司中有哪些用例评审?

交叉评审:你编写的我来评审,我编写的你来评审 (一般不会)

组内评审:由测试人员进行主讲,谁写的谁讲(产品经理 开发 运维等)【一般这种】

会议评审:有可能客户也会参与

TE:test engineer 测试工程师  TC:test case 测试用例 TPM:test project manager 测试经理

5)⑤打包部署

运维搭建测试环境,开发人员编写好的代码打成代码包,发给运维,运维将代码部署到测试环境中,基于Linux服务器,运维人员通知测试可以介入测试环节,会给到测试人员 测试环境网址 账号 密码

代码包(.war .jar .zip)

公司有哪些环境:

测试环境:测试人员使用(内网)

开发环境:开发人员使用,在这里自测(内网)

线上环境:真实环境 生成环境(类似我们手机里面的软件)

6)⑥执行测试

测试人员开始测试

首先需要执行冒烟测试

什么是冒烟测试?

冒烟测试是一种基本的测试方法,用于检查软件系统的核心功能是否正常工作。其目的是快速确认构建版本是否足够稳定,能够进行更详细的测试。如果冒烟测试失败,则通常会阻止进一步的详细测试,以避免测试资源浪费。进行冒烟测试时,通常关注软件的关键功能和流程

(1)冒烟测试起源硬件行业,电路板插上电九冒烟。软件上定义测试主体功能。

例子:什么是主体功能?微信登录功能的主体功能:登录成功

抖音点赞功能主体,点赞成功;支付功能主体功能:能支付成功且金额正确;下单功能主体功能:下单成功且可以正常发货

问题:冒烟测试一般选取多少用例进行测试呢?

这个不一定,根据功能来定,有些功能用例比较多,选取冒烟用例就多;有些功能用例少,选取比较少,但是一般来说选取功能用例的10%-20%。

如果冒烟测试不通过,测试人员可以打回版本给开发进行修复,修复好了通知测试继续进行;如果冒烟测试通过,可以进行sit系统集成测试。

SIT1(第一轮)系统集成测试,全量测试,就是把测试用例全部过一遍,发现bug提交bug到bug管理工具禅道,测试完后输出测试小结(一般会记录本轮测试情况:发现多少bug,主要集中在哪里,bug的等级,用例执行情况)

这一轮测试有可能会出现测试用例漏写了,需要新增用例 ==》假设这一轮测试完500条成功了

7)⑦回归测试(假设还剩500条用例)

SIT2:回归测试,增量测试,用例数量的增加

问题:回归测试主要测试什么内容?

(1)冒烟测试

(2)复测上一轮发现的bug

(3)新增的用例需要测试

(4)发现bug相关联的模块也要测试

测试完后也需要输出测试小结(一般会记录本轮测试情况:发现多少bug,主要集中在哪里,bug的等级,用例执行情况)

这一轮测试有可能会出现测试用例漏写了,需要新增用例 ==》假设这一轮测试完300条成功了

SIT3:回归测试,增量测试,用例数量的增加

(1)冒烟测试

(2)复测上一轮发现的bug

(3)新增的用例需要测试

(4)发现bug相关联的模块也要测试

测试完后也需要输出测试小结(一般会记录本轮测试情况:发现多少bug,主要集中在哪里,bug的等级,用例执行情况)

经过多轮测试,测试用例会越来越少,发现bug数呈现骤减趋势

==》当最后一轮测试完成,将所有的bug全部修复,且完成复测,验证ok,且bug属于关闭状态,bug数为0,最终输出一个测试总结报告,发给领导准备上线

*冒烟测试和回归测试的区别?

问题1:测试的准入标准(什么时候开始测试)

1)所有相关文档都已输出(需求文档 测试计划 测试用例 单元测试报告)

2)开发已编写完代码,且自测通过,开发功能也符合需求规定功能

3)测试用例经过了评审且通过了

4)测试环境也部署好了

问题2:测试准出标准(什么时候测试结束)上线的硬性要求

1)所有测试用例必须100%执行且达标

2)所有提交的bug 致命 严重 一般 都必须全部解决且测试通过

3)在bug管理工具所有的bug,验证ok,处于关闭状态

4)相关文档已输出:冒烟测试,测试用例 bug清单

5)输出测试总结报告发给了领导确认

问题3:上线出了问题怎么办?

1)让客户统一收集下,发给研发团队相关人员

2)测试人员对这些问题,在线上环境进行复测一遍,看是否是客户误操作导致的

3)如果线上环境确实有问题,看下测试环境是否有这样的问题,如果测试环境没有问题,可能是漏传代码,立马让开发上传代码

4)如果测试环境存在问题,对这些问题进行划分等级(致命 严重 一般 建议),告知领导这些问题会带来什么影响

5)让开发立马进行修复,如果一时半会也修复不了,问下领导是否需要回滚代码,回滚代码时需要注意数据备份

6)同时需要跟进这些问题,直到解决

问题4:上线的时候你在做什么?

1)上线前,测试人员在测试环境中继续跑下功能主流程,确保上线没有问题

2)上线中,协助上线,同时准备测试数据,便于上线后测试一下

3)上线后,在线上执行下用例,看下功能是否正常

4)测试总结(遇到问题,怎么解决,后续解决经验) 

问题5:整个项目你编写了多少用例?

这个一般我也记不住,也没有去记,如果硬要我说的话,我只能说最近一个版本编写了多少,半个月一个版本大概400-500条

问题6: 你一个版本发现多少bug?

1)发现多少bug这个不一定,根据功能复杂程度和开发技能水平来定

2)比较简单的版本发现的比较少点,复杂的功能可能就要多点

3)一般根据以往的经验执行100条用例大概会发现10来个bug

 问题7:你公司的测试流程(项目流程/给你一个任务怎么开展工作)

我们公司的话是产品经理给我们下发需求文档,我们分析需求文档,在分析的过程中如果发现有问题,一一记录下来,等到产品经理开需求评审会议的时候提出问题并进行确认,需求评审会议通过后,测试经理开始编写测试计划,我们根据测试计划里面的任务安排开始测试用例的编写,用例编写完后,组织用例评审会议,用例评审通过后就等待开发写完代码并自测通过后,运维部署好环境,我们就开始提测,首先是冒烟测试,如果冒烟测试不通过,打回版本给开发进行修复,冒烟测试通过就开始系统集成测试,遇到bug就提交到bug管理工具,并对bug进行管理和跟踪,直到所有的bug都完成回归并且复测通过,处于关闭状态后,就可以输出测试报告,等待上线。

敏捷开发模型:研发周期比较短,一般可能一周一个迭代,小黄单车

增量开发模型:分成很多个子集,把这些子集组装起来

迭代开发模型:不断更新新功能

测试的基本原则

1.测试的标准是用户需求    ==》满足客户为基准

2.测试不仅仅是单纯的软件本身的测试  ==》软件是由代码和文档组合

3.软件外在没有失效不代表软件系统是可用的  ==》wifi连上了用不了

4.软件的完美度没有完全正确的,测试只能帮助软件更加完美,更加正确。

5.穷尽测试是不可能的(有些条件组合非常多,穷尽测试是不可能的)

6.测试应该尽早介入(早期引入的问题占到整问题数目的50%以上)

7.二八原则(80%的缺陷或错误会集中出现在20%的区域中)  ==》bug集中在单元测试阶段

8.杀虫剂效应(也就是说要不断更新用例,因为反复的执行相同的测试用例将会发现新缺陷的能
力几乎为零)

9.测试活动依赖测试对象(测试的关注点不一样有的更多关注安全和性能的测试)

10.尽量选择第三方测试(避免自己测试自己开发的程序)

第七天 Linux指令(3)(24.12.3) 

18、cp 复制  只能复制文件
cp +原文件  +新文件名称   (只能复制文件)
cp aa  aa1  表示把aa文件内容复制给aa1
cp aa ./bb/aa2   表示 把aa文件内容复制到当前目录下bb目录下名为aa2

cp -r 可以复制文件也可以复制目录(包括子目录)
cp -r bb  bb2   表示把bb目录复制给bb2目录上

19、mv 可以改名,也可以移动
  
改名
mv +原文件(原目录)+新文件 (新目录)

mv aa aa3   表示aa3文件不存在,把aa文件名改为aa3
mv bb  bb2  表示 bb2目录不存在,把bb改名为bb2

移动
mv +原文件(原目录)+目录(存在)
mv aa3  bb   表示把aa3文件移动到bb目录中


20查看文件内容   cat  more  less
cat +文件名
cat aa  表示查看aa文件内容,一次性查看

more  aa  表示查看文件内容,以百分比显示,按enter键查看

less  aa 表示查看文件内容,显示部分内容,按上下键查看,按ctrl+z 退出

21、通过关键字来搜索  grep
shift +(|\) 按下出现 | 管道符
cat aa |grep ‘test’   查看文件中的关键字是test字符


22、重定向
覆盖 :>
追加:>>

目标文件不存在的情况(类似复制的意思)
cat aa> aa1(新文件)    表示 aa1不存在的情况,即把aa文件的内容复制到aa1文件中
cat aa  >> aa2(新文件)  表示aa2不存在的情况,即把aa文件的内容复制到aa2文件中

目标文件存在的情况
cat aa> aa1(存在)    表示 把aa文件的内容覆盖到aa1文件中(内容替换)
cat aa  >> aa2(存在)  表示把aa文件的内容追加到aa2文件中末尾

23、head 查看文件前几行或者某行
head aa   表示默认查看前10行内容
head -n 5 aa  表示查看前5行内容
cat -n aa |head -n 5   表示查看前5行内容且显示行号


24、tail 查看文件后10行内容
tail aa  表示查看文件后10行内容
tail -n 5 aa  表示查看文件后5行内容
tail -f aa    表示实时查看文件内容(不退出) 这个命令重要  实时查看日志tail -f log(日志)
tail -f aa |grep  'test'   表示通过关键字动态查看  test就是关键字
cat -n aa |head -n 10|tail -n 5  表示查看文件前10行中的后5行且显示行号

25、sed  查看文件指定行数或者某一行
sed -n '5p' aa          表示查看文件第5行内容
sed -n  '5p;10p' aa     表示查看文件第5行和第10行内容
sed -n '5,10p'   aa     表示查看文件第5行到第10行内容
sed -i  '2d' rr         表示删除文件rr第2行内容
cat -n aa |sed '5p;10p'  表示查看文件第5行和第10行内容且显示行号
sed -n '/2024-08-17 15:48/,/2024-08-17 18:50/p' log(日志文件)   表示查看某个时间段的日志


27、find 查找文件或者目录
find -name  '名称'               表示查找当前目录下文件或者目录
find -name  'aa'                  表示查找当前目录下名为aa文件或者目录 (相对路径)
find / -name  'aa'                表示查找当前目录下名为aa文件或者目录 (绝对路径)
find /dcs111 -name  'aa'     表示查找根目录下dcs111目录下名为aa文件或者目录 
find -name  'a*'                  表示查找当前目录下a开头的文件或者目录
find -name  '*a*'                 表示查找当前目录下含有a的文件或者目录
find -name  '*a'                  表示查找当前目录下a结尾的文件或者目录
find -type  'f'                      表示查找当前目录类型为文件   -type 是类型
find -type  'd'                     表示查找当前目录类型为目录


29、打包解压
1)tar包   tar -cvf +包名 +原文件(原目录)
tar -cvf  aa.tar aa   表示把aa文件打包成aa.tar包   -c 打包  -v 速度  -f 文件

tar包   tar -cvf +包名 +原目录
tar -cvf  bb.tar bb   表示把bb目录打包成bb.tar包   -c 打包  -v 速度  -f 文件

2)解压  tar -xvf  +包名    -x 解包  ==》解压之前先删除原文件或者目录
tar -xvf  aa.tar      表示把aa.tar包进行解压(文件)
tar -xvf  bb.tar      表示把bb.tar包进行解压(目录)


3)打包 解包 tar.gz
1)打包  tar -zcvf  +包名 +原文件(原目录)
tar -zcvf aa.tar.gz aa   表示把aa文件打包成aa.tar.gz(文件)
tar -zcvf bb.tar.gz bb   表示把bb文件打包成bb.tar.gz (目录)

4)解包  tar -zxvf 包名
tar -zxvf aa.tar.gz      表示把aa.tar.gz 进行解压 (文件)
tar -zxvf bb.tar.gz      表示把bb.tar.gz 进行解压  (目录)

5)、zip包
打包
zip 包名 +原文件(原目录)
zip aa.zip aa      表示把aa文件打包成aa.zip(文件)                       
zip bb.zip bb       表示把bb文件打包成bb.zip (目录)

6)解包
unzip +包名
unzip bb.zip       表示把aa.zip 进行解压 (文件)
unzip aa.zip       表示把bb.zip 进行解压  (目录)


30、在线安装工具
1)yum install +安装工具
yum install lrzsz   (在linux 系统中安装了rz 和sz)
在linux 中输入rz 命令 会弹出一个本地电脑弹框,可以把本地电脑端的文件上传到linux中,
在linux 中输入 sz +文件(目录),会弹出一个本地电脑弹框,可以把linux中文件目录下载到
本地电脑
在linux中上传下载一般在0-500mb之内,超过了可以用xftp

2)在线安装rpm 包
rpm -ivh + xxx.rpm (包名)   ( i install 安装   v view 可视化  h 是进度)

3)wget + 链接     安装命令

传输文件:两天电脑(服务器)之间传输文件 用scp 在同一个局域网 且建立桥接

1)打开虚拟机,在右下角找到网络适配器图标(如下图),右击选择“设置”

2)选择设置后,出现一个页面,在右侧网络连接中选择“桥接模式

3)从本机上传文件到另一台服务器上(需要知道另一台服务器的IP地址,密码)

语法:scp 文件地址 root@另一台服务器ip地址:存放路径

例子,想要把本机根目录下dcs111目录下aa文件推送到另一个服务器根目录下dcs110目录下bb目录下

scp dcs111/tt root@192.168.***.***:/dcs110/bb

第八天 测试用例 (24.12.4)

1.等价类

2.状态迁移图

==》订单状态更改 如:已下单==》取消订单==》未支付==》已支付==》待配货==》已配货==》待发货==》已发货==》待收货==》拒收==》申请退款==》待审批==》审核通过==》已退货

3.场景法:(适用于流程方面的)==》登录功能

1)登录功能 

基本流程:主流程
备选流程:异常场景

正常场景:正确的账号  正确的密码  点击登录按钮  登录成功

异常场景:
正确的账号 错误的密码 登录失败
错误的账号 正确的密码 登录失败
错误的账号 错误的密码 登录失败
账号为空  密码正确    登录失败
账号正确,密码为空    登录失败
账号密码都为空        登录失败
同一账号在不同设备登录
锁定的账号登录
禁用的账号登录
修改的密码账号登录
连续登录次数超出,被锁定

2)取款机  ATM
正常流程
正确插入对应的银行卡 ==》输入正确的密码 ==》选择服务 ==》输入正确金额(或者选择面额)
==》点击取款按钮 ==》取款成功

异常流程
1)插入银行卡方向不对
2)插入消磁的银行卡
3)插入挂失的银行卡
4)插入损坏的银行卡
5)插入其他银行卡
6)插入非银行卡
7)输入密码错误
8)取款金额大于余额
9)选择服务后返回
10)输入金额为小数点或者低于100 非整100
11)输入金额大于大笔消费
12)输入金额大于当天消费
13)取款机余额不足
14)输入错误次数超出
 

4.错误推测法

基于经验和测试程序出现可能存在的各种错误  ==》手机终端通话
1)呼出时电量太低,关机
2)手机不插卡
3)已欠费
4)不在服务区,无信号
5)呼出时,电话进来了
6)网络没有问题,卡是无效的
7)通话设置出故障

5.判定表

登录成功:账号 密码 验证码

条件桩:列出问题的所有条件(通常条件次序无关紧要):账号  密码  验证码

条件项:列出针对它条件的取值(所有情况下的真假值):账号  密码  验证码 真假取值

动作桩:列出问题规定可采取的

动作(顺序无约束):登录成功     登录失败

动作项:列出条件各种情况的应采取的动作:账号  密码  验证码 真假取值  ==》会得到一个结果

怎么在判定表表当中把因果关系找出来去实现?
1表示为真,正确
0表示为假,错误
一真一假皆为假,or的关系
两两为真则为真,and的关系
两两为假都为假

练习:某程序规定,对于总成绩大于450分,且各科成功均高于85分
或者是优秀毕业生,应该优先录取,其余情况做其他处理
请用判定表设计测试用例

6.因果图

因果图的方法:
1、简约的解析:
    因果关系
    因为所以的意思
    找出需求文档描述对应功能的因果关系
    
    细化解析:
        因果图是提供了一个把规格转为判定表的系统的方法
        从该图可以产生测试数据,其中原因是表示输入的条件
        结果是对输入执行的一些列计算得到的输出数据
        所以因果图方法最终生成的就是判定表,他适合用于检查
        软件的输入的条件各种组合方法
        
    画因果图的步骤:
        1、把系统的规格分解成可以测试的片段
        2、分析分解后待测试的系统规格,找出哪里是原因,哪些
        是结果
        3、画因果图(实际上再公司当中没有人画)
        4、把因果图化为判定表
        5、用判定表表中的每一列生成相关的对应的测试用例

你对因果图是怎么理解的额?
我在公司当中很少用因果图,但是我会找出有因果的需求的
地方,然后把因果图的原因放到判定表的条件桩中
把因果图的结果放到判定表的动作桩当中,从而把因果图转为
判定表的方式防止漏测测试用例

7.边界值

边界点定义

上点:边界上的点

离点:离上点最近的点(即上点左右两边最邻近的点)

内点:在域范围内的点

需求:在公司绩效考核打分功能,要求在1-100正整数

闭区间 [1,100]

上点:1 100   正常场景

离点:0 101   异常场景

内点:80 90   正常场景(在1-100区间任意正整数都可以)

半闭半开 [1,100)

上点:1 100   1是正常场景,100是异常场景

离点:0 99     0是异常场景,99是正常场景

内点:80 90   正常场景

半开半闭 (1,100]

上点:1 100   1是异常场景,100是正常场景

离点:2 101    2是正常场景,101是异常场景

内点:80 90   正常场景

开区间 (1,100)

上点:1 100   异常场景

离点:2 99    正常场景

内点:80 90   正常场景

一个输入域用边界值设计测试用例的话对于长度可以取2个上点,2个离点,1个内点

边界值描述:

验证输入框输入纯11位的数字字符组成的手机号

验证输入框输入纯10位的数字字符组成的手机号

验证输入框输入纯12位的数字字符组成的手机号

等价类描述

验证输入框输入等于10位的数字字符组成的手机号

验证输入框输入大于10位的数字字符组成的手机号

验证输入框输入小于10位的数字字符组成的手机号

边界值分析

1)1-100打分       11位手机号

2)有序集合:周一到周五都打折  {周一,周二,周三,周四,周五}  周一  周五 

测试数据

1、每人每天大概编写多少条用例?
1)看情况,不忙的时候编写比较多点  200条左右
2)如果需求复杂,编写的少点,可能 50-60条
3)如果会议比较多也会影响编写用例的进度

2、每天用例执行数
1)如果执行顺畅的话,大概 200-300条左右
2)具体看情况,如果主体功能堵塞,执行比较少
3)测试环境也会影响
4)其他事情比较多,会议呀,也会影响进度

3、每天小时执行数
场景比较简单的话 大概50-60条左右,这个不一定,看具体情况,也有可能更少点

4、整个项目你编写了多少用例?*
这个一般我也记不住,也没有去记,如果硬要我说的话,我只能说最近一个版本编写了多少,
半个月一个版本大概 400-500条

5、你认为什么样的用例是一条优质的用例(怎么保证用例的覆盖率/你怎么保证软件质量)
1)首先对需求了解透彻,找出隐形 显性 特殊 关联的需求,用xmind 思维导图梳理测试点
2)运用设计测试用例的方法等价类和边界值等方法设计测试用例
3)用例标题简洁明了,与步骤和预期结果相呼应
4)用例进行多次评审,保证用例的质量和覆盖率
5)不光考虑功能测试,还需要考虑易用性 页面 兼容性 性能 安全等方面

6、你们公司是0bug上线吗?
不一定,有时候会遗留一个易用性bug,不会影响功能使用,可以遗留到下一个版本解决
1)明确遗留bug的时间 哪个版本发现的
2)明确遗留bug在那个版本解决以及解决时间
3)遗留bug需要告知领导,得到领导的确认
4)需要跟进这个遗留bug


7、你们团队有多少人?  项目组多少人
当时我在的时候是25人   开发 17   测试 4个   产品经理1  项目经理1  运维 1  UI 1 

8、测试报告包括哪些内容
测试目的:为了解决什么问题,为后续提供参考
测试范围:测试内容(需求)当前迭代需求
测试人员:哪些人参与了
测试时间:耗时多少   人/天
测试环境:pc  app 
测试策略:功能测试  易用性测试  兼容性测试  性能测试 接口测试 ui测试
测试资源:软件   用什么工具linux mysql postman 等
       硬件:  服务器配置 cpu  内存
测试用例:执行了多少用例  通过多少  通过率 失败率 
缺陷情况:发现多少bug,主要集中在哪里,bug等级 解决多少,遗留多少
风险评估:当前的需求功能上线后可能会带来什么影响
输出文档:测试计划 测试用例 测试点 bug清单等
测试结论:是否通过


9、测试策略包括内容
1)确定测试过程需要用到测试技术和测试工具
2)进行风险评估和应对方案
3)测试方法:功能测试  易用性测试  兼容性测试  性能测试 接口测试 ui测试
             安全测试  网络测试 稳定性测试 异常测试
4)制定启动 停止 完成标准


10、测试方案  测试计划  测试策略  测试用例区别

测试方案:
1)测试工具的选择和设计
2)测试用例的设计方法
3)测试代码设计方法
4)测试方案需要在测试计划下执行,测试计划是做什么,测试方案是如何做

测试计划:
1)对测试全过程的组织 资源 原则等进行规定和约束
2)指定测试全过程各个阶段任务分配和时间安排
3)提出各项任务的评估 风险分析和管理需求
4)围绕管理层的一次活动

测试策略:
1)需求分析
2)评估风险
3)定义测试范围 测试方法 
4)制定启动 停止 完成标准

测试用例:
根据测试计划和需求制定任务的具体测试步骤和测试依据
 

等价类和边界值你是怎么理解?
等价类是划分为有效等价类和无效等价类,一般都是用在搜索
框当中的输入域里面,比如招聘需求18-45岁的人员
18-45就是有效等价类,无效的就是小于18大于45

边界值一般是等价类的补充,也是用在等价类当中去结合
使用,一般取的是数值的边界点来作为测试点
 

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754765941a5199552.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信