软件测试从零开始专辑(一)
软件测试之天龙八步(一)
第 1 步:具备软件测试常识
软件测试行业就像一个围城,很多围城外的人想要进来,一没有高人
指点,领你进去;二没有人借梯子给你让你走进去。所以说,如果你
是跨专业或者是换职业来做软件测试工程师,是难度非常大的!
所以呢?作为特别白的小白,如何入行呢?!那么这个就是
我们今天要做的第一步:具备软件测试常识。
1.1)什么是软件测试
1.2)软件测试的分类
1.3)软件测试常用的一些用例设计方法
1.4)如何做需求分析
1.5)如何写软件测试用例
1.6)什么是 bug&bug 的管理工具
1.7)软件测试计划&软件测试报告
如果以上 7 点你完全具备了,那么恭喜你,软件测试面试的基础笔试
和面试,应该是 OK 的了。当然你也知道每个公司的要求不可能这么
简单的!我们还需要加特效加技能!duang 起来!请看第二步。 第 2 步:mysql 特效,Duang!
如果你完成了第一步,那么恭喜你,还是一个可造之材,接下来我们
要加特效了!这样能够让你在同等水平中,突出突出特别突出,再也
不怕面试官问问题,自己变成傻白甜啦!
2.1)数据库的定义(理解概念)
2.2)数据库的增删改操作
2.3)数据库的查询&关联查询(这个在笔试的时候经常会做题!没
有这个常识,你看数据库题目就像是看天书!)
第 3 步:linux 特效,Duang
特效一加完了,这个时候再给自己加点散发光芒的特效。
3.1)安装 VM 虚拟机
3.2)linux 的一些常用操作命令
linux 部分不会笔试,但是一般面试官会问:你知道 linux 命令么?
能够说出一两个么?当然,你以为学完这两个就算完了么?远远不
够。人总是向前看的啦,那你需要继续丰满自己的羽毛,让自己飞的
给高,起步更高!
第 4 步:逼格提升法
并不会说很多,但是你只需做到下面 2 点即可:
4.1)学会搭建 tomcat+jdk+mysql 环境
4.2)在 linux 下自己尝试搭建 bugfree
如果你完成了,你可以在自己简历上,妥妥的写上:能够独立搭建测
试环境这一项了!你可以试试,面试机率直线提升
第 5 步:安卓 IOS 大法好!
那么上面说的都是 WEB 层面的,你会常识会搭建环境,那么其实说
起来,现在 APP 测试工程师是需求量非常大的!所以这个时候,你就
需要提升自己 APP 方面的测试常识了!
5.1)什么是 APP 测试
5.2)APP 测试的重点和方式
5.3)弄懂 APP 测试的兼容性
哇咔咔,这下,你可是有身份的人了,你有 APP 测试常识,那么一
问你,你而已不会懵逼了。 第 6 步:这是一只神奇的猴子
学完安卓和 IOS 大法了。这下,如果能够给这个大法加点自动化,
那就更加美妙了。我们可以学习点下面的知识:
6.1)monkey 命令,让自己的大法不仅仅是功能大法,还能
够动起来~~动感十足!
6.2)uiautomator 自动化,这样我们也是写过代码的人了。
谁还敢给你脸色看,说你测试功底不咋样,我们就炒他鱿鱼!
第 7 步:软件测试从入门到放弃
都说软件测试门槛低,其实说低也低,说高也高。如果你学着学着觉
得很难很难,没有力气坚持下去,那么,其实,人嘛,活着开心最重
要,那我们就干脆放弃了。突然发现,不跟计算机打交道的日子里,
天空是那么的蓝~花儿是那么的艳~我们一起去大吃一顿,放弃入门
吧!
第 8 步:找到捷径,重拾软件测试
入门有捷径,当然啦!!!最快的捷径,绝对劲爆!不需要你自己去
找资料,不需要你自己去满大街的下载软件,老师手把手教你。当当
当~~~这个捷径就是:报名聚创吧!
什么是软件测试?(二)
1 什么是软件测试?
举过一个很形象的例子,就像一些工厂的质检员。他们负责产品是否
合格或者找出产品的缺陷;那我们就是软件产品的质检员,负责检查
产品是否符合客户要求和功能缺陷。
2 软件测试工程师的职责是什么?
我们的终极使命就是:找出 bug(缺陷),如果一些 bug 没有被找到,
导致产品上线推向市场的时候,引发一系列问题,你的饭碗也就保不
住了。简单来说软件测试工程师的职责也就是软件测试的目的,分为
以下几点:
1)检查软件产品是否符合用户的需求。
如果用户提出的各种功能和需求,你们产品没有满足的话,也就根本
提不上交付产品了,因为根本达不到交付程度,所以我们的职能非常
必要。
2)检查程序的业务逻辑和代码逻辑。
即使在同一个项目组,开过同样的需求会议,每个人对需求的理解也
许是存在一点点偏差的。所以我们适当的时候也要去检查程序猿哥哥
写的代码是否有业务逻辑错误和代码逻辑错误,当然小白目前是没法
达到检查程序的,我们是通过手工测试去检查。
3)提高产品的易用性。
这点也很重要,如果一个软件产品不好用,用户的学习成本太高,那
么产品的接受满意度就会下降,更别说产品的市场占有率了,所以你
是代表广大用户来测试这个产品,易用性也非常重要。
4)一些其他的错误。
凡是导致你的软件产品不能正常使用的,功能被阻塞的,我们都要提
交 bug,让程序员哥哥去进行一下修改和完善,不能视而不见哟!
软件测试的分类(三)
1 软件测试的分类
世界上任何事物都是分类的,要是分三六九等的,在软件测试行业,
也是一样,会有很多不同的软件测试分类。大概罗列如下:
按测试阶段划分:
1)单元测试
2)集成测试
3)系统测试
4)验收测试
5)回归测试
6)Alpha 测试
7)Beta 测试
按测试方法划分:
1)白盒测试
2)黑盒测试
3)灰盒测试
4)性能测试
5)自动化测试
6)兼容性测试
7)易用性测试
8)安全测试
9)探索性测试
10)随机测试
具体每个测试分类具体说的是什么,你有两个选择
1)要么直接后台留言索要视频,我们会发下载链接出来哟~只给有需
要的你。
2)要么直接看下文链接,总结的非常好!
http://www.cnblogs.com/fnng/archive/2012/10/24/2737972.html
推荐这个有什么用?不需要去记忆,但是下次如果面试笔试被问道,
我们也知道起码有这么多测试类型!
2 小白学习测试的发展路径
见过很多同学,上来就问:性能容易么?LR 好学么?白盒好做么?
自动化学习应该学习哪个语言?
其实问这些问题的人,要么就是小白,但是图进步快,想
要多多学习点;要么不是小白,但是在软件测试行业呆的年限还不够
长,所以才会问这些问题。在软件测试 行业工作久了,就会明确的
知道自己所做的工作缺乏什么就会去补什么,而不是上来就要学性能
或者是自动化,当你花了大价钱去培训的时候,发现自己找的工作用
不着,就权当浪费了钱!所以这里特意给大家推荐了一篇虫师的精品
文章,欢迎大家赏阅!
http://www.cnblogs.com/fnng/p/3653793.html
鼓励大家,不要选最复杂的,而是选择最符合你当前工作状态和业务
逻辑的!
软件测试需求分析(四)
1 什么是软件需求?
简单的说:客户或者 boss 心目中想要做出来的产品的样子,就是需
求。
举个例子:看了《神雕侠侣》,你心目中的小龙女就是导演要去
完成的需求。
当然,如果你面试的话,就不能这么说,怕被人揍,^_^需
求就是:产品给你的需求文档,里面有明确描述,这个产品应该具备
什么功能,包括这个功能的输入和 输出都有明确地规定,甚至会小
到页面的颜色和模块规划,都会在这个需求说明书里面。所以你要了
解软件的需求,你需要去认真阅读需求说明说,就像你看小说一 样
认真。人物的设定(类比功能的设定)、场景的布置(类比页面的展
示)都是需要你仔细看需求说明书这个“小说”然后发挥自己的想象,
之后就确定为这个软件 产品的需求了。
2 如何做软件测试需求分析?
当你小说看完了,就要去做更加细致的分析了,只有当你做了更加细
致的分析,你才能去校验这个导演的选角和拍摄是否符合你心目中的
想象,就好比,你们不能接受除了李若彤古天乐版本以外的《神雕侠
侣》一样,用户也不能接受需求以外的产品版本了。所以测试是让用
户和 boss 满意产品的非常重要的一关,如何做需求分析,从我们平
常使用频率比较高的微信红包说起:
前段时间 520,微信临时提高了普通红包的额度。那么对于用
户来说,这个就是一个功能,我们要如何去分析这个需求来确保功能
正常使用呢?毕竟涉及到金钱,不能乱来,分析清楚了,才能测试完
整!
功能:520 当天可以发送 520 元红包
需求分析:
1)5 月 20 号个人对个人红包可以发送 520 元
2)5 月 20 号以外的时间不能发送大额度红包
3)5 月 20 号个人对个人红包发送不能大于 520 元
4)5 月 20 号其他额度的红包还是能够正常发送
当然还有很多其他的分析点!这里就不一一说了,当你分析透彻
了,那么测试才会完整,少点缺陷。 如何编写软件测试用例(五)
1 什么是软件测试用例?
上一篇文章已经讲过软件测试需求分析,讲完了这个接着就是我们测
试用例编写,如果不明白如何做软件测试需求分析,可以点击链接回
去看~ 它是指导你测试的一个评判线索;你可以根据测试用例去判
断你的测试进度以及测试覆盖面;也可以作为你自动化测试脚本的一
个基础;它也是你入门的一个最基础的基本功。
2 如何编写软件测试用例?
我们接着昨天说的微信红包,来编写软件测试用例:
功能:520 当天可以发送 520 元红包
需求分析:
1)5 月 20 号个人对个人红包可以发送 520 元
2)5 月 20 号以外的时间不能发送大额度红包
3)5 月 20 号个人对个人红包发送不能大于 520 元
4)5 月 20 号其他额度的红包还是能够正常发送
测试用例的基本要素:编号,用例标题,操作步骤,期望
结果,实际结果。一般用例的编写就来源你的需求分析,分析够仔细
透彻,写用例也就如有神啦!话不多说,看例子:
如何提交 bug(六)
1 什么是 bug?
从零开始学习的专辑中,我们软件测试人员的职责就是:发现 bug. 今天就跟大家说说什么是 bug.
bug 总结起来可以分为下面几类:
1)不符合需求的。用户要你做一个甜筒给他,结果你给的是老冰
柜,虽然功能相似,但是不是用户想要的。
2)画蛇添足。遇到处女座开发哥哥,就会把各种功能做的尽善尽
美,用户要一个草莓冰激凌,结果你觉得加点香菜会更好~~然后用户
就不干了,要你重做!
3)明显错误。登录不成功,注册不了,用户充值的钱不见了,用
户提现不了,打不开网站。
4)小瑕疵。比如说提示语不太好,有错别字,图片错位,链接有
时候打不开,点击无反应?这些也算。
可以去看看你身边的一些网站,看看是否有这样的 bug?
2 如何提交 bug?
废话不多说,建议大家好好去体验下 bug 系统,有个比较简单的推荐
给大家,禅道。去禅道官网下载一个一键式安装包,然后去看看官网
使用帮助文档,了解下这个 bug 系统是如何使用的,给大家附图一张
禅道提交 bug,紫色框里说明提交的必填参数:
3 如何利用 charles 迅速定位 bug?
现在很多软件公司在开发一款 app 时,将后台与 app 前端的编码人员分离,
这意味着增加了效率,但这也意味着作为测试的我们,不再停留在找到 bug,并
提交给开发修改的层面上了。我们需要掌握更多的技能来判断 bug 出在了前端开
发还是后台开发上。
今天为大家简单的介绍一下如何利用 charles 抓包得到的信息来初步判断一
下 bug 的原因来自前端还是后台。
从上图我们可以很清晰的看到:
当测试人员从前端 UI 界面点击某按钮或作出某些操作时,会抓取
request 请求值:
1)请求值存在:说明前端开发传递了后台需要的参数,可以初步
忽略前端的问题。但是也存在特殊的情况,即当前端的参数传递错误
的时候,此时的问题也出在前端,因为为了进一步判断参数是否传递
正确,我们需要借助于接口需求文档,查看后台提供给前端的请求样
式以判断前端是否传参错误
2)请求值不存在:当我们在前端 UI 界面上做了某些操作后,但
是没有抓取到请求值,此时可以判断问题出在前端
3)当请求值正确:而返回值 response 值不存在时,可以判断 bug
的问题来自于后台,因为 response 代表服务器处理 request 后返回
的结果,此时 response 为空说明服务器未对请求作出相应响应。
4)当请求值正确:而返回值 response 不为空时,但页面上我们
发现有些和需求不同的结果时,我们需要进一步的查看 response 的
返回值的内容。此时也需要借助于开发的需求文档和接口文档,来查
看返回值是否为必填未填/返回值错误等相关错误。
上面就是简单地对 bug 出在前端还是后台的初步判断,有了这些
概念后,想必在你日后的工作中对于 bug 产生的原因查找有更大的意
义。
写在最后:这里推荐一款小软件 HiJson,这款软件可以将以 JSON
格式回传的 response 值格式化输出出来,可以更高效、更清晰的看
到返回值的组织架构是怎样的,大大提高数据对比的测试效率。 兼容性测试(七)
1 什么是兼容性?
兼容性三个字,如果要转换成我们熟悉的语言,可以说为:适应性。
1)浏览器兼容性:当你测试的网站,换了一个浏览器去打开时,
网站是否能够适应这个浏览器,并能正常使用?
2)APP 兼容性:当你测试的 APP,换了一个品牌的手机,换了一个
像素不同的手机,换了一个手机系统,APP 是否适应这个手机,并能
正常使用。
3)系统兼容性:当你的安装软件,换了一个操作系统,
(xp,win7,win8,win10,mac),软件是否适应不同的操作系统,并能
够正常使用。
2 如何测试兼容性?
刚刚上面说到了三个兼容性,其中第一和第二是我们平时测试接触最
多的,第三种大家可以自行去了解。
浏览器兼容性
常用主流浏览器:IE、Firefox、chrome、360+公司格外需求的其他
浏览器。
测试点:
1 不同的浏览器软件和版本
2 带有不同插件的浏览器
3 不同的浏览器选项下的表现
4 不同的图像分辨率下的测试
5 不同的系统色彩下的测试
6 不同的系统字体大小下的测试
7 不同的网速下的测试
8 文字、超链接、表格、图片。
9 各个功能模块的测试(最重要)
测试方法:对比测试。
APP 兼容性测试
市场主流手机:苹果机、安卓机以及特殊要求的其他品牌机。具体如
要详细到手机的品牌、像素以及手机系统,可以跟一些数据统计网站
进行参考。
测试点:
1:功能测试
2:业务测试
3:图片、页面跳转、表单、数据加载测试
4:web 端数据同步测试
5:不同手机系统下的测试
6:不同像素下的功能测试
7:版本兼容性测试(同时多个版本存在的时候)
测试方法:
对比测试
如何编写软件测试报告(八)
1 软件测试报告编写
基础知识已经分享的差不多了,之后就是我们的收尾工作,今天给大
家讲讲我们做测试过程中会用到的一个文档:《软件测试计划》
在我们软件测试工作阶段,一共分为五个阶段:计划、设计、执行、
评估、验收。
可以看到在做软件测试工作的时候,最开始,就是要做好计划工作,
也就是软件测试计划。
在软件测试计划里面应该包含哪些内容呢?
包括这些:
1)测试开始时间 &测试结束时间
2)测试的内容模块定位(包含哪些内容测试点)
3)测试的参与人员以及任务分工
4)输出文档的规定以及存放
5)采用的测试方法以及测试工具的申请。
其实就总结起来,就是大家看见过的 5W 原则:
When:什么时候开始做,什么时候结束测试,要在这段时间内做好一
个规划与进度。
What:我们要做什么?要明确的罗列出来,好明确我们的测试方向和
重点,并方便后期划分责任模块
Who:谁要参与这次项目的测试?具体负责哪个模块的功能测试?主
要负责任务是?都是在这个里面进行明确的责任划分
How:如何测试,确定我们的测试方法:是白盒测试还是黑盒测试?
我们要不要进行自动化测试要不要进行性能压力测试?要不要进行
安全性测试,都需要在这个里面计划好。
Where:这个是说把文档放在哪里,就明确的包括了我们的输出文档
有哪些:比如说测试用例?Bug 列表?测试报告等等文档要存放的位
置,作用就是规定输出文档以及输出文档的存放位置。
怎么样,这么一说,是不是觉得软件测试报告要很好理解了呢?
如何区分开发/测试/生产环境(九)
1 项目环境的分类
最近有同学问问题,说:什么是测试环境什么是开发环境。刚刚入门
的同学,可能光听名词都觉得好有逼格的样子,其实弄清楚是干嘛,
就不会有这个感慨了。你们需要的是理清思路。
打个比方:你在一个专门制作变形金刚“擎天柱”的工厂,你在
质检部门工作。(还记得我们说软件测试的定义,打的比方就是质检
人员吧?不记得点击这里:软件测试的定义)。
那么这个擎天柱的制作过程要经过三个工序:
A:开发部门:他们负责零件的生产,零件的焊接以及组装;各个细节
部分的测试;保证能够变形,能够起飞各种功能都 OK===这里一般都
是标注:生产重地,闲人勿入。质检部门只能知道大概的开发进度,
这个时候,质检部门的人不能去干涉开发,捣乱他们的进度的。
B:质检部门:擎天柱经过开发部门的各种折腾,终于好了。然后推
送到我们质检部门,我们要开始测试了,检查零件是否完好,是否可
以正常变形,回复原状后是否能够正常做汽车使用,并进行安全性测
试,保证使用我们变形金刚的用户安全。====一般这个质检部门是比
较严肃的,他们负责面向的对象可是广大市场客户,这里也会标注:
质检重地,开发勿入!也就是说我们进行质检的时候,不能让开发来
捣乱,不能用他们提供的方法或者是工具去进行测试,我们要按照变
形金刚的正常需求来进行测试。不能让他们悄悄的潜入我们的部门,
进行一些数据或者是零件的改动,好让我们发现不了问题。
C:广大用户:这个就是我们的最后一个环节,通过质检的变形金刚,
就可以直接销售给用户了。他们可以正式使用擎天柱
那么其实说这么多,类比过来:
开发部门所处的环境就是:开发环境。这个环境可能会有很多错误,
开发可以随意的进行调试,可以随意的进行修改。
质检部门所处的环境就是:测试环境。这个环境一般都是开发完成测
试过没有错误的产品(他们的代码)直接部署的环境,为了保证环境
的纯粹性,这个环境只能测试用,开发不能用。
广大用户所处的环境就是:正式环境。这个环境就是真实在线的环境,
他们做的任何操作都是真实有效的。
2 如何区分这些环境
刚刚第一点说了这么多,我们总算是理解这三个环境了。那么当你真
正工作的时候,又如何区分这三个环境呢?方法有如下两种:
1:简单粗暴:直接就问,我们有分测试环境和正式环境么?链接分
别是什么?服务器地址是什么?数据库地址是什么?全部问清楚,然
后自己好好的记录下来,一定要记住,你是在测试环境测试,其他环
境的就不要去手贱乱动了。
2:自己尝试:如果是正式环境的话,一般网站地址都是:www 开头
的;所以如果不是 www 开头他可能是开发环境可能是测试环境。确定
后,就再去尝试看下自己在 哪个环境进行的操作,会对你的测试数
据有改变?一般开发不会把他们的地址给你,所以基本上拿到地址看
到不是正式的那种网址,你就可以直接确定是测试环境的了。
软件测试自学专辑(二)
数据库的基本常识和安装(一)
第一步:了解一些常识。
1:什么是数据库:类比仓库,仓库是用来存储货物的;那么数据库
是用来存储数据的。这么理解就可以了~要想研究的更加深入,你入
行后慢慢去理解。
2:常用数据库有哪些:有 mysql、sqlserver、oracle;小型数据库
有:sqlite。
3:常用关键词解释:select(查询)、delete(删除)、update(修
改)、insert(新增)、*(代表所有)、database(数据 库)、table(表)、
ASC(升序排列)、DESC(降序排列)、orderby(按什么来进行排列).... 常用的就这些,先介绍下,之后我们在 sql 语句里面再来深入使用。
第二步:数据库的结构形式是怎样的?
1:数据库可以类比为一个 excel 文件,excel 里面可以存储很多数
据。
2:数据表可以类比为 excel 里面的一个个 sheet(表单),数据根据
表单的命名来进行分类进行整理。
第三步:如何来安装数据库呢?
对 于 这 个 只 能 提 供 安 装 教 程 了
https://jingyan.baidu.com/article/14bd256e2ee30cbb6c26125e.html
如何创建数据库(二)
第一步:如何登陆数据库服务器
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自
带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输
入以下格式的命名:
mysql -h 主机名 -u 用户名 -p
-h : 该命令用于指定客户端所要登录的 MySQL 主机名, 登录当前机
器该参数可以省略;
-u : 所要登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 我们初次登陆的时候,
密码都是空
登录刚刚安装在本机的 MySQL 数据库为例, 在命令行下输
入 mysql -u root -p 按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
Enter password:
但是这里密码都是为空的,回车之后就会登陆上去。
登录成功后你将会看到 Welecome to the MySQL monitor... 的提示
语。
第二步:创建一个数据库
语法:create database 数据库名 [其他选项];
使用:create database students character set gbk;
原因:1.我们刚刚登陆的是数据库服务器,我们接下来要创建数据库,
所以用这个命令创建一个 students 数据库。
2.为了便于在命令提示符下显示中文, 在创建时
通过 character set gbk 将数据库字符编码指定为 gbk。
创建成功时会得到 Query OK, 1 row affected(0.02 sec) 的响应。
第三步:选择你刚刚创建的数据库
语法: use 数据库名;
使用: use students;(切换到 students 这个数据库)
原因:接下来我们要对数据库中的表和数据进行操作了,所以必须要
切换到对应的数据库才可以。
第四步:新建表
语法:create table 表名称(列声明);
使用:
create table class
(
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
age tinyint unsigned not null,
tel char(13) null default "-"
);
说明:1.一共有 id name sex age tel 这五列。需要自行去了解是字段类型符
号:char tinyint int。
2.如果不能理解这个语法,那就照抄下来创建一个数据库,以后再去深
入理解。新增数据和插入数据到数据库(三)
一、插入数据至数据表中
上个订阅号里面,我们已经创建好数据库和表 class,接下来我们要
学习如何进行增加数据和删除数据了。
语法: insert [into] 表名 [(列名 1, 列名 2, 列名 3, ...)]
values (值 1, 值 2, 值 3, ...);
使用:
插入一条数据:
insert into class (id,name,sex,age,tel) values(12,'lemon',' 女',20,‘15096090550')
插入多行数据:不同的数据之间用逗号隔开
insert into class(id,name,sex,age,tel) values(12,'lemon',' 女',20,‘15096090550'),(14,'lemon2','女 ',20,
‘15096090551'),...... 二:删除数据
语法:delete from 表名称 where 删除条件;
使用 1: delete from class where id=12;
解释: 上面这条语句就会删除 class 表里 id=12 的这条学生的
数据。
使用 2: delete from class where sex='女';
解释: 上面这条语句就会删除 class 表里性别为女的学生信息。
思考:为什么要有限定语句,如果没有 where 这个关键词来进行限定,
直接输入:delete from class;会有什么后果?
数据库查询操作(四)
一、查询数据库中的数据
上个订阅号里面,我们已经创建好数据库和表 class,并增加
数据和删除数据,今天我们来对数据进行查询。
语法: select 列名称 from 表名称 [查询条件];
使用:
1.查询 class 表中的所有数据。
select * from class;(这里*号代表所有字段.)查询结果如下:
2.查询 class 表中性别和姓名字段内容
select sex,name from class;(指定字段查询)
3.查询性别为女的学生姓名
select name from class where sex='女';
**********************************************************************************
微信咨询 :jcb-2017
微信+17031115530,拉测试微信群交流
网友评论