跟着B站老师学习的软件测试基础记下的笔记,用于自学。
1、软件测试基础
2、测试设计
3、缺陷管理
4、Web常用标签
5、项目实战
以终为始,由交付实战目标为终,推出所学知识;从认识软件及软件测试,到如何设计测试、缺陷标准及缺陷管理,最终以项目实战贯穿所学知识,让知识与应用相结合。
1.def: 是控制计算机硬件工作的工具,分为应用软件(微信、QQ等)、系统软件(Window,IOS等)。
3.软件产生的基本过程:
需求产生->需求文档->设计效果图->产品开发->产品测试->部署上线
使用技术手段验证软件是否满足使用需求。
减少软件中的BUG,保证软件质量。
(1)功能测试:验证程序功能是否满足需求。
(2)自动化测试:使用代码或工具代替手工,对项目进行测试。
(3)接口测试:使用代码或工具对服务器端提供的接口进行测试。
接口:分为硬件接口、软件接口。
(4)性能测试:多人使用软件,寻找服务器的缺陷。(使用代码或工具测试)
(1)按测试阶段分为:
①单元测试:针对程序源代码进行测试。
②集成测试:又称接口测试,针对模块之间访问地址进行测试。
③系统测试:对整个系统进行测试包括功能、兼容、文档等测试
④验收测试:主要分为内测公测使用不同人群来发掘项目缺陷。
(2)按代码可见度分为:
①黑盒测试:源代码不可见,只能见到UI功能;(对应系统测试)
②灰盒测试:部分源代码可见,功能不可见,针对接口测试;(对应集成测试)
③白盒测试:全部代码可见,UI功能不可见;(对应单元测试)
UI:User Interface,用户接口,软件界面。
质量模型:衡量一个优秀软件的维度。
①功能性:若需求为10个功能,则测试需要做到:a.功能数量为10个,b.功能都能正确实现,c.对错误情况分析处理
②性能:若需求为每日在线人数20万,测试需要做到:a.服务器每秒处理请求数,b.考虑服务器硬件配置是否满足;
③兼容性:a.浏览器(谷歌,火狐,IE,欧朋,苹果五个浏览器有自己的内核,需要单独测试。)
b.操作系统(Win系统:Win7、Win8、Win10; Mac Linux系统)
c.手机(分辨率、品牌、系统、网络、其他);
④易用性:简洁、友好、流畅、美观;
⑤安全:信息传输,信息存储时加密情况;
⑥可维护性:
⑦可移植性:网站数据迁移;
需求评审:确保每个部门需求一致(参与角色:产品经理、开发人员、测试人员);
计划编写:测什么,谁来测,怎么测;
用例设计:验证项目是否符合需求的操作文档(针对穷举进行设计);
用例执行:项目模块开发完成开始执行用例文档实施测试;
缺陷管理:对缺陷进行管理;
测试报告:实施测试结果文档;
(1). 用户使用过的用例就叫做用例。
(2). 测试用例:未测试项目而设计的执行文档。
(3). 用例测试的目的:防止漏测,实施测试的标准。
(4). 用例测试编写格式及说明(用例测试模板的八大要素)
①用例编号:项目_模块_编号;
②用例标题:预期结果(测试点);
③项目/模块:所属项目或模块;
④优先级:表述用例的重要程度或影响力:P0~P4(P0最高),重要核心功能(也就是P0级)大多都是用户使用最多的功能;
⑤前置条件:要执行此条用例,有哪些前置操作;
⑥测试步骤:描述操作的步骤;
⑦测试数据:操作步骤的数据,没有的话可以为空;
⑧预期结果:期望达到的结果;
使用excel编写测试用例如下图:
注:编写用例时注意表头字体要比其他字体大两号,其次编写时注意冻结表头。
**(1)说明:**在所有的测试数据中,对具有某种共同特征(按需求考虑)的数据集合进行划分。
**(2)分类:**有效等价类(满足需求的数据集合),无效等价类(不满足需求的数据集合)。
注:有效等价类与单个无效等价类各取一个即可。
**(3) 步骤:**明确需求 ,明确有效和无效等价类, 提取数据编写测试用例。
(4)练习题1: 需求:验证QQ账号合法性,要求:6~10位自然数。
使用excel编写测试用例如下图:
(6)练习题2:
需求:验证某城市电话号码的正确性
要求:① 区号:空或者时三位的数字。
②前缀码:非"0"且非"1"开头的三位数字。
③后缀码:四位数字。
分析总结:有效等价类数据(2条):空+234+1234,123+234+1234;无效等价类数据有8条(不可合并,各论各的)。
注:正向用例一条可尽可能覆盖多条,逆向用例每一条数据都是单独用例,所以上图蓝色字体的数据可以省略。
测试用例:
(7)适用场景。
针对:需要有大量的数据设计测试输入,但是没办法用穷举测试的地方,如输入框,下拉列表,单选复选框等。典型:页面的输入框类测试。
(1)说明:只解决位数限制问题,不能解决类型问题,需结合等价类使用
注:【完整的用例应该是边界值分析法和等价类划分法一块使用而写出来的。】
(2)边界范围节点:选取正好等于、刚好大于、刚好小于边界的值作为测试数据。
①上点:边界上的点(正好等于)。
②离点:距离上点最近的点(刚好大于、刚好小于)。
③内点:范围内的点(区间范围内的点,一般取居中的数据)。
如上图,若边界范围是-99~99的话:可知测试用例最多7条,上点:-99、99;离点:-100、-98、98、100;内点:50。
(3)边界值分析法设计用例的步骤:
①明确需求;
②确定有效和无效等价类;
③确定边界值范围;
④提取数据编写测试用例;
(4)练习题
需求:通过边界值分析法验证标题长度的合法性
要求:标题长度大于0,小于等于30个字符。
测试用例如下图:
(5)边界值分析法的优化
通过更多实例分析,在考虑边界范围节点的开闭区间时,边界值分析法可将最多7条用例简化为5条用例。
上点:必选(不考虑区间开闭)
内点:必选(建议选择中间范围)
离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)
(6)使用场景:
在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界),常见的词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语。典型代表:有边界范围的输入框类测试。
(1)定义:一种以表格形式表达多条件逻辑判断的工具。
(2)组成部分:
条件桩:列出问题中所有的条件,列出条件的次序无关紧要
动作桩: 列出问题中可能采取的操作,操作的排列顺序没有约束
条件项:列出条件对应的取值,所有可能情况下的真假值
动作项:列出条件项的各种取值情况下应该采取的动作结果。
(3)举个例子:
验证“若用户欠费或者关机,则不允许主被叫”功能的测试
判定表如下:
上图中灰色区域为条件桩,绿色区域为动作桩,黄色区域为条件项,蓝色区域为动作项。
(4)判定表法设计用例步骤
①明确需求;
②画出判定表:
a.列出条件桩和动作桩,
b.填写条件项,对条件进行全组合,
c.根据条件项的组合确定动作项,
d.简化、合并相似规则(有相同的动作)
③根据规则编写测试用例;
(5)练习题
题目1
判定表:
用例文档如下:
(6)适用场景:
①.有多个输入条件,多个输出结果,输出条件之间有组合关系,输入条件和输入结果之间有依赖(制约)关系。
②.判定表一般适用 于条件组合数量较少的情况(比如4个条件以下),更多以来条件时使用正交法和因果图法,但条件依赖性过强说明程序不够健壮。
(1)说明:用来测试业务是否能跑通,也叫流程图法,使用流程图描述用户使用场景,然后通过覆盖流程图来设计测试用例。
(2)流程图:使用标准图形和箭头来表达程序或者业务的走向。
说明:开始、结束使用椭角矩形,判断语句使用菱形,执行语句代码使用矩形。
作用:能够通过看懂流程图,设计业务用例;当需求文档不全时,能够根据需求梳理出流程图。网页版工具:https://processon.com/
(3)流程图练习:
题目:
提示:覆盖业务测试。需要使用流程图法,测试想哭之前先测试业务在测试单功能、单模块、单页面,流程图如下:
(4)场景法的意义:
从用户使用角度来看:用户平时使用的不是单个功能,而是多个功能组合起来使用;
从测试人员角度:平时测试的都是单个功能点进行测试,荣翻译忽略多个功能的组合测试。
(5)适用场景:
根据实际的应用场景,来测试业务用例,可以使用场景法。
(6)练习题:
ATM取款流程
(1)def:通过经验(相同项目或者类似项目的经验)推测系统封可能出现的问题。
(2)思想:根据经验列出可能出现问题的清单,根据清单分析问题可能的原因,推测发现缺陷。
(3)适用场景:
a.时间紧任务量大的时候,根据之前项目类似经验找出易错的模块重点测试。
b.时间宽裕时通过该方法列出之前出现问题较多的模块再测试。
c.当所有的用例都覆盖完了,BUG修复完成了,离产品上线还有几个小时,用错误推荐法,根据自己的经验,推测系统可能出现的问题。
软件在使用的过程中存在的任何问题,都叫软件的缺陷,简称BUG。
少功能:软件为实现需求(规格)说明书中名明确的功能。
多功能:软件实现的功能超出了需求(规格)说明书中指明的范围。
功能错误:软件出现了需求(规格)说明书中指明不应该出现的错误。
隐形功能错误:软件为实现需求(规格)说明书中虽未指明但是应该实现的需求。
不易使用:软件难以理解,不易使用,运行缓慢,用户体验感不好。
注:故障解决之后还可能会有缺陷产生,需要复测(回归测试)。
回归测试:
①常规项目回归:项目本次发布新增2个模块,最基本遥测新增模块功能及新增模块关联的旧模块。
②非常规项目回归(银行、部队、航天):新增功能,必须全部复测。
回归BUG:
上一个版本发现的缺陷,开发修复完毕之后在下一个版本中进行重新验证。
(1)缺陷描述:发现缺陷以后如哈描述,让别人看的懂。
(2)缺陷提交:指派人、优先级、类型等。
(3)专业缺陷管理工具:
(4)核心内容:
①缺陷的标题:描述缺陷的核心问题。
②缺陷的预期结果:希望得到的结果。
③缺陷的预置条件:缺陷产生的前提。
④缺陷的实际结果:实际得到的结果。
⑤缺陷的复现步骤:复现缺陷的过程。
⑥缺陷的必要附件:图片、日志等信息(证据)。
功能错误、界面(UI)错误、兼容性、数据、易用性、改进建议、架构。
正向用例(Positive Test Case)主要保证程序的基本流程,反向用例(Negtive Test Case)更多的考虑程序的健壮性。
举例如下:一个输入只能接受输入数字0~9,那么,正向用例可以是0、1、2、3、4、5、6、7、8、9;反向用例可以是:其他值。
反向测试用例:通常指系统不支持的输入或者状态,这类用力可以检查系统的容错能力和可靠性。
再说正向用例与逆向用例的分类意义:
①有很多情况,大家会把正向测试用例优先级设置为较高,反向测试用例优先级较低;这对测试分类有一定的帮助;
②缺点也很明显:a.这个概念不是很通用的概念,很多时候容易引入混淆,很难判断一个测试用例是正向还是逆向用例。b.很多逆向用例也很重要。
(3)提交缺陷注意事项
①可重现:去欸西安可以复现。
②唯一性:一个缺陷上报一个问题。
③规范性:符合公司或项目的要求。
注:当发现缺陷后的首要操作是保证缺陷可复现,确定是BUG,之后再提交,提交时要检查是否重复。
(4)缺陷编写规范
①准确:描述的信息是正确的。
②具体:游戏界切实真实特定的。
③简洁易懂:描述简单容易理解。
④次序清晰:描述缺陷过程有条件有先后顺序。
(5)缺陷管理工具
禅道、JIRA、TFS等,其中禅道为产品管理工具。
①禅道的介绍
地址:http://demo.zentao.net/user-login.html
特点:三管融合(产品管理、项目管理、质量管理)
②禅道的优点:
三权分立:产品经理–构想者,研发部门–执行者,测试部门–保证者。
四角协同:产品经理,项目经理,研发团队,测试团队。
③禅的使用流程
④禅道使用流程:
登录:
⑤禅道管理测试用例:
首先:登录(测试甲)–测试–功能–建用例(批量建用例)–描述用例–保存;
相较而言:用excel写用例比较方便
在未来测试工作上,将近80%的测试都有关于web页面的,所以要了解一些按钮、标签,在测试时,以便描述某个标签的缺陷。
注释
def:不会被浏览器执行,解释代码的含义给程序员看。
测试点:前端页面发布上线之前,需要检查所有注释或者去除注释(避免描述不恰当的文字出现)。
①标题标签:h1~h6,h1最大,写法:h1+Tab键生成:
②段落标签:
p标签:特点:独占一行,自动换行,有语义化含义(浏览器或搜索引擎认识这是段落)。
p+Tab键 生成:
③超链接标签:
说明:通过标签进行定义的。
属性:href:跳转 target:新窗口打开。
④图片标签
说明:网页中插入图片就要使用图片标签,html图片是通过标签进行定义的
属性:src图片路径 title 光标悬停显示文字 alt图片未加载是显示文字 width图片宽度 height图片高度。
测试点:一定要有:src title(图片未加载且代码里没有alt时,title也有显示图片内容的功能)
路径:
⑤换行与空格
空格:
换行:
⑥布局标签
说明:页面布局使用,常用div和span.
示例:
div与span显示效果:
span的使用效果
⑦列表标签
说明:列表标签常用li元素(分为有序lo和无序ul)
示例:
js标签:script。 css标签:style. 外部加载css标签:link。
⑧表单标签(输入框)
说明:页面提交输入信息需使用表单标签.
属性:
action:指定将数据提交到哪个页面
method:提交参数的方法(get\post):
get: 查询使用,参数url中明文显示,提交速度快,提交参数有长度限制
post: 提交数据、登录、注册,非明文显示,提交速度慢,提交参数长度没有限制。
示例:
标签中嵌套的标签有一个type属性,属性值不同,显示的样式就不同,在这里插入代码片
作用也不同。如下图:
<body>
用户名:<input type="text" />
<br />
密码框:<input type="password"/>
<br>
性别:
<input type="radio" name="one" />男
<input type="radio" name="one" />女
<br>
你的爱好:
<input type="checkbox" />挣钱
<input type="checkbox" />吃饭
<input type="checkbox" />旅游
<input type="checkbox" />自定义
<br />
<input type="submit" />
<input type="reset" />
<input type="button" value="点我试试"/>
body>
运行如下:
由运行结果可知,当点击"提交"、“重置”、"点我试试"三个按钮时时没有反应的,必须要用表单标签才能使整个表单有反应。
<body>
<form action="form2.html" method="get">
用户名:<input type="text" />
<br />
密码框:<input type="password"/>
<br>
性别:
<input type="radio" name="one" />男
<input type="radio" name="one" />女
<br>
你的爱好:
<input type="checkbox" />挣钱
<input type="checkbox" />吃饭
<input type="checkbox" />旅游
<input type="checkbox" />自定义
<br />
<input type="submit" />
<input type="reset" />
<input type="button" value="点我试试"/>
form>
body>
接受页面代码:
<body>
<h1>数据已接受h1>
body>
点击提交之后的运行结果:
传参:后台可通过参数将数据提取出来。
不同浏览器的运行结果不同:
解决方法:给标签input里面添加一个value属性值,使所有的浏览器都显示“提交”
<input type="submit" value="提交"/>
普通按钮默认没有在执行效果,要想有反应需得结合js来实现.例如:
<input type="button" value="点我试试" onclick="alert('点我干嘛?')"/>
1.项目背景
传智作为一个IT教育机构,拥有自己开发且实际运营的产品;
将开发和运营的技术作为授课的内容,对于学员而言学到的都属一手的真实案例和实际经验。
2.产品地位
一款汇集科技资讯、技术文章和问答交流的用户移动终端产品。
用户通过该产品,可以获取最新的科技资讯,发表或学习技术文章,讨论交流技术问题。
3.项目目标
研发并上线运营头条产品
从实际的产品技术中孵化Python人工智能、Python数据分析、PythonWeb、测试、运维等课程案例。
构建公司自己的数据仓库和算法联盟
4.产品功能架构
产品主要分为三个前端子产品:
(1)用户端:APP,可以查看资讯、文章内容,进行问答讨论交流。
(2)自媒体运营平台:PC网站,自媒体用户可以管理文章、评论、查看粉丝数据。
(3)系统后台:PC网站,内部运营管理系统。
1.测试对象
完成黑马头条web登录功能测试。
完成黑马头条web发布文章功能测试。
2.登录功能测试
(1)需求分析
需求1:
1)输入正确的中国手机号(11位)
当文本框失去焦点的时候验证,红色为失败,绿色为成功;
2)点击发送验证码
如果手机号文本框状态,弹出"点击按钮进行验证";
如果手机号文本框位红色,提示手机号不正确;
3)点击按钮进行验证
拖拽图形到指定位置,按钮消失;
拖拽图形未到指定位置,晃动提醒,滑块回到初始位置;
超过五次,提示尝试过多,请点击重试;
需求2
1)输入验证码
正确的验证码,并勾选“我已经阅读并同意”,点击登录,进入系统。
错误的验证码,并勾选“我已阅读并同意”,点击登录,提示验证码错误。
正确的验证码,未勾选"我已阅读并同意",点击登录,提示请勾选。
2)点击登录
手机号框,验证码框,都为绿色,勾选"我已阅读并同意",登陆成功。
(2)明确需求后如何让开始测试
分析需求
提取测试点
设计用例
用例评审
执行用例
缺陷管理
测试报告
分析需求:
登录:正向用例1条,逆向用例9条; 滑块:正向用例1条,逆向用例4条。
共计1条正向用例,14条逆向用例。
非功能模块8条用例。
3)登录测试用例
3.发布文章功能测试
(1)需求及分析
1)文章标题不能小于5个字符;
2)文章内容能为空;
3)频道不能为空;
4)封面选择: ①单图 ②双图 ③无图 ④自动
5)点击选择照片
①素材库、上传图片切换
②素材库:
a.全部和收藏切换
b.图片可以选择
③上传图片:
a.点击选择图片-选择本地文件
b.点击开始上传-如果已经选择本地文件,点击上传,上传成功
c.点击开始上传-如果未选择本地文件,提示"请选择一张图片"
6)点击发表,提示新增文章成功,跳转到列表内容,文章状态显示待审核。
7)点击存入草稿,提示新增文章成功,跳转到内容列表,文章状态显示草稿。
(2)测试点提取