23年黑马网课
- 阶段一:软件测试基础
- 测试基础
- 用例设计
- 等价类
- 边界值
- 判定表
- 场景法
- 冒烟、错误推测法
- 缺陷管理
- HTML
- 阶段二:Linux和数据库
- Linux常用命令
阶段一:软件测试基础
测试基础
软件测试及相关知识
测试的主要技能:
功能测试->设计测试用例的能力,功能是测试思维,是基本功,光有代码没有卵用
自动化测试->代码或者工具代替手工对项目进行测试
接口测试->另一篇文章说的更清晰->传送,工具和代码都能实现
性能测试->模拟多人使用软件,查找服务器缺陷,也是工具或者代码都能实现
学习目标:
第一个问题:软件测试的定义
软件测试就是使用技术手段验证软件是否满足使用需求
第二个问题:测试分类
- 按照阶段划分:
单元测试:测试源代码
集成测试:测试接口
系统测试:功能测试和非功能测试
验收测试:分为内测和公测,使用不同人群来发掘项目缺陷,内测就是内部人员,公测就是邀请玩家来玩
- 按照代码可见度划分:
黑盒测试(系统测试):看不见源代码,针对程序的功能和非功能进行验证
灰盒测试(集成、接口测试):看见部分代码(接口),针对程序接口进行测试
白盒测试(单元测试):看见全部源代码,针对重新源代码进行测试
- 其他
性能测试属于专项测试
自动化测试属于功能测试
第三个问题:质量模型的重点5项
质量模型的目的是测试软件质量的维度
重点5项:功能、性能、兼容、易用、安全
5项以外还有:可靠性,移植性,维护性
举个例子,现在有一个需求:
功能性:(要求10个主功能)
- 功能数量10个
- 功能正确实现
- 错误处理情况
在错误的时候需要有正确的提示
性能:(每日20w用户玩家在线)
- 服务器每秒处理请求数
- 服务器硬件配置是否满足
兼容性:
- 浏览器:谷歌,IE,火狐,苹果,欧朋(欧洲的,可以不测)
- 操作系统:win系统(win7,win8,win10),其他
- 手机:分辨率,品牌,系统,网络,其他
易用性:
- 简洁,友好
安全性:
- 登录的传输加密这种
第四个问题:测试流程
需求评审:确保各部门需求理解一致
计划编写:测什么,谁来测,怎么测
用例设计:验证项目是否符合需求的操作文档
用例执行:项目模块开发完成开始执行用例文档实施测试
缺陷管理:对缺陷进行管理的过程
测试报告:实施测试结果文档
第五个问题:测试模板8要素
用例编号 -> 项目简称_模块_编号
用例标题 -> 预期结果(测试点)
项目/模块 -> 所属项目模块
优先级 -> P0~P4 -> P0最大
前置条件 -> 执行用例预制操作
测试步骤 -> 执行步骤
测试数据 -> 步骤中的数据
预期结果 -> 期望结果
用例设计
什么是测试用例?执行测试的文档
用例的作用?1、防止测漏2、执行标准
案例:花瓶设计测试用例
要求:设计十条以上,参考质量模型
功能:插花,装水,养鱼,种菜
性能:防摔,耐压高温、低温
易用:防滑、便携
属性(硬件):长宽高,样式,材质,重量
可移植性:不同温度下是否正常使用
可维护性:修补
等价类
解决穷举问题 -> 等价类划分 -> 根据相同特征数据集合进行划分,正向有效逆向无效 -> 明确需求,划分等价(长度,类型,规则),提取数据
适应场景:针对需要大量数据测试输入,但是没法穷举测试的地方,比如输入框,下拉列表,单选复选框
需求:验证qq账号合法性,要求6~10位自然数
有效:8位
无效:4位,12位,非自然数
以上只涉及长度和类型,更复杂的话还会有规则
用例编写:
需求:验证地区手机号
- 区号:空或者是三位数字
- 前缀码:非0且非1开头的三位数字
- 后缀码:四位数字
等价类划分先分析一下:
正向有2条,一次尽可能将多个正确数据组合
1、空+2开头的三位数字+4位数字
2、3位数字+2开头的三位数字+4位数字
逆向有8条,一次只能覆盖一个
在无效的那一列,一个个测
用例编写:
边界值
针对限定边界规则设计测试点
本来边界应该是7个点,但是可以优化为5个,所以离点只去大于边界和小于边界的那两个点
判定表
解决多条件依赖关系
一种以表格形式表达多条件逻辑判断的工具
假设需求:某促销活动优惠,在指定时间段内消费并且消费金额满1000元,享受9折优惠
列出判定表:
列出之后等价类划分,得到单条测试用例
场景法
与业务息息相关,一般会使用流程图
使用标准流程图,标准流程图就是,开始和结束是椭圆框,语句是长方形,判断是菱形
根据流程图,设计业务用例
当需求文档信息不全时,能够根据需求,梳理流程图
举个例子,现在需求文档是:
第一个的流程图,就类似这样
从测试人员的角度来说,平时是单功能测试,忽略了多个功能的组合测试,所以场景法很重要
场景1:
转换成流程图:
用例编写
冒烟、错误推测法
冒烟测试:批量开始测试之前,执行业务正向用例,验证软件是否具备可测性。
错误推测法:通过经验退出系统可能出现的问题
缺陷管理
测试不通过如何处理
学习目标:
- 能够说出软件缺陷判定标准
- 能够说出项目中缺陷的管理流程
缺陷的目标:将缺陷提交给开发,开发根据描述可复现缺陷
工具:禅道,jira…
缺陷是什么?缺陷是软件中所有异常问题,而不是错误
缺陷判断标准:多功能,少功能,功能错误,隐形功能缺失,体验不好
缺陷编写:
编号可以用用例编号,标题很重要
缺陷跟踪流程:
提交缺陷注意事项:缺陷可重复,一个缺陷上报一个问题
管理缺陷工具有禅道和jira:
介绍禅道:
地址:传送
就是个软件,看两眼得了,不多说
HTML
学html的原因是要做web测试,前提也要懂点前端,。之前学过,所以这里的课程没看,找到了一个比较详细的博客,需要就当字典翻一翻:html入门
阶段二:Linux和数据库
Linux常用命令
ls [-lah][文件或目录]
选项说明:
-l:以列表的形式显示出文件或目录的内容
-a:显示所有的文件或目录,包含隐藏文件
-h:显示出文件的目录或者大小
参数:
通配符可以匹配符合条件的文件或目录
touch 1.txt a.txt ab.txt #创建文件
ls *.txt #查询以.txt结尾的文件
ls ?.txt #查询1.txt,a.txt
ls ??.txt #查询ab.txt
ls [1abcd].txt #任意匹配一个
ls [a-z][a-z].txt #匹配2个字符
练习题:
cd
cd或者cd~:返回到家目录
cd…:返回到上一层目录
cd-:返回到上一次的目录
pwd:显示当前路径
touch:创建文件
mkdir:创建目录
删除文件或者目录:rm [-irf] 目录名或者文件
选项说明:
-i:表示交互式执行删除操作,删除前会有提示(默认选项)
-f:表示强制删除,忽略不存在的文件
-r:表示删除目录及目录下所有内容
rm -r mike/ 删除文件夹
rm -ri a/ 提示删除a下所有文件
rm -rf a.txt 删除a.txt,忽略不存在的
rm -i *.txt 删除所有txt结尾的文件,并且会提示每个文件是否真的要删除
注意:使用rm删除时无法恢复,建议使用rm时跟上 -i参数
创建目录:mkdir
mkdir -p a/b/c 实现多个层级的目录创建
练习题:
删除/opt目录下所有的test开头的目录
cd..
rm -rf test*
提高权限前面加sudo
cp 源文件 目标文件
常用选项说明:
-f:强制覆盖已存在的目标文件而不提示
-i:交互式复制,覆盖时会提示用户确认
-r:若源文件为目录,则复制该目录下的所有内容
-v:显示复制进度
# 这条命令将会复制 source.txt 到 destination.txt
# 如果目标文件已存在,它会被强制覆盖而不会有任何提示。
cp -f source.txt destination.txt
# 复制 source.txt 到 destination.txt 时
# 如果目标文件已存在,会提示用户是否覆盖。
cp -i source.txt destination.txt
# 复制 source_directory 及其内部的所有文件和子目录到 destination_directory
cp -r source_directory destination_directory
# 复制 source.txt 到 destination.txt 时,会显示详细的操作信息,让用户知道哪些文件被复制了。
cp -v source.txt destination.txt
# 复制整个目录并在覆盖文件前提示确认,同时显示详细的复制进度
cp -irv source_directory destination_directory
mv命令的基本语法如下:
mv [options] source destination
- source 表示要移动或重命名的文件或目录的路径。
- destination 可以是新位置的路径或新的文件名。
移动文件
如果你想将文件从一个位置移动到另一个位置,可以这样使用 mv 命令:
mv old_directory/filename.txt new_directory/filename.txt
这条命令将文件 filename.txt 从 old_directory 移动到 new_directory。
重命名文件
mv 命令也可以用来重命名文件。如果只是想改变文件的名称而不改变其位置,可以这样做:
mv oldname.txt newname.txt
这会将当前目录中的 oldname.txt 重命名为 newname.txt。
移动和重命名目录
与文件类似,目录也可以使用 mv 命令移动或重命名。例如,将目录从一个位置移动到另一个位置,并同时改名:
mv old_directory new_location/new_directory_name
这条命令将 old_directory 移动到 new_location 并重命名为 new_directory_name。
常用选项
-i (interactive):在覆盖文件前询问用户。如果目标位置已有同名文件,系统会提示用户确认是否覆盖。
-n (no-clobber):不覆盖任何已存在的目标文件。
-v (verbose):显示详细的操作过程,列出正在被移动的文件。
使用示例
mv -i oldname.txt newname.txt
这会在重命名文件之前,如果 newname.txt 已经存在,提示用户是否覆盖。
练习题:
ps,Linux操作系统和数据库会单开文章