发表于: 2020-01-08 23:35:42

2 718


一、今天完成的事情:

开始进行知识点扫盲


腾讯课堂:【松勤】软件测试从基础到高级全栈课程

第二节:软件测试学习路线梳理与工具剖析

第三节:软件测试快速入门

第四节:测试用例设计技术(本节课干货很多)

软件测试技术框架图--视频中展示的不全,后续有机会再完善

软件测试规范文档

第五节:软件缺陷要求详解(个人理解发现bug是测试的核心

1.主题:心+法+器=发现高质量bug

1)正确理解Bug(思维)

2)Bug管理流程(方法)

3)Bug核心触发与管理(工具)


2.思维:软件缺陷(Bug)的定义

1)软件未实现产品规格说明书要求的功能

2)软件出现了产品规格说明书指明不应该出现的错误

3)软件实现了产品规格说明书未提到的功能(画蛇添足)

4)软件未实现产品规格说明书虽未明确提及但应该实现的目标(指隐性需求,如密码密文显示)

5)软件难以理解、不易使用、运行速度慢,或者软件测试员认为最终用户会认为不好

注意:尚未发现或未观察到的软件缺陷只能说是潜在缺陷。


3.下图:横坐标表示开发的不同阶段,纵坐标表示修复bug需要的费用。

1)软件开发通常包含需求、设计、开发、测试、发布维护阶段,都有可能引入软件缺陷。

2)随着时间推移,修复bug的成本越来越高,甚至bug大到无法修复,产品无法承受导致报废。


4.方法:如何发现软件缺陷

除了根据软件需求说明书来发现软件缺陷外,可以尝试如下方法:

1)查找时间依赖和竞争条件的问题(时间依赖有:千年虫问题、同时访问、24小时运行、改操作系统时间、改数据库时间、时间单位、跨年跨月跨日、会员到期等。竞争条件有:秒杀等。要明白时间空间对测试的影响,这个时间的问题在其他时间可能不会出现,在这个客户在可以在那个客户不行空间变了。再比如淘宝,在这个时代就不可能做到现在这个样子。看事情看行为而不是看时间、空间。看到别人成功,要看成功背后是什么,是具备了哪些条件。)

2)查找边界条件软件缺陷、内存泄露和数据溢出缺陷(边界值法、内存泄漏是长时间运行软件申请的资源但是不释放资源(打个比方:一个瓶子中间有个孔,漏了几滴水。所以内存泄漏一点点问题不大,关键的是持续泄漏系统无法承载)、内存溢出(同样一瓶水:已经满了,再往里倒水。回到系统:打开这个软件会到导致别的软件宕机))

3)查找状态转换时出现的缺陷(从一个页面切换到另外一个页面)

4)查找资源依赖性:内存、网络、硬件等方面的缺陷(内存不够、网络慢)

5) 查找和硬件相关方面的缺陷,比如硬件兼容性方面的缺陷


5.方法:缺陷处理流程(就是bug的生命周期,图片有点乱整理如下:)

1)New(测试人员发现bug,还没有提交)

2)Open(测试人员提交bug,由测试人员将状态改为open)

3)a.Rejected(开发人员拒绝修复)

     b.Deferred(开发人员延期解决)

     c.Duplicate(bug被重复提交)

4)a.Updated(开发人员修复bug,但是还没有提交给测试人员,由开发改为updated)

     b.Fixed(开发人员修复并通过自测后,提交给测试人员,由开发改为fixed)

5)close(由测试验证确实修改正确后,将状态改为Close)

6)Reopen(由测试验证仍然没有修复,则将状态改为Reopen,重新提交给开发,让其修复)

6.bug管理工具


第六节:软件测试职业规划与面试真题讲解(等后面准备面试的时候再看一遍)

1.软件测试人员职业规划

业务路线:产品经理/业务经理

技术路线:测试专家(全栈测试人才),大公司的测试岗位成长路线为:测试员工(Level 1)-->TD(测试组长,Level2)-->Test Manager-->Super Manager(部门经理)-->CTO(技术总监)

Level1:基层测试工程师,对业务和技术要求高。

Level2:团队管理经验

Level3:部门管理经验

管理路线:各级别主管


2.面试题--软件测试框架(主要讲了自我介绍)

1)自我介绍?

参考:A:表达能力 B:抓到点 C:为后面会被问的问题打下基础

例子:转行的如何自我介绍?(从开发转测试,毕业后的几年做了什么)--淡化背景

2)所做项目的情况,主要做什么类型的测试?

参考:业务、项目环境

比如:松勤网是一个以在线直播、视频录播为主要业务的综合性网站,分为管理员、教师、学生三个模块。支持web和app端。

是搭建在Linux服务器上,使用mysql数据库,采用PHP后端语言。

3)软件测试的流程?

需求分析--制定测试计划--编写测试用例--搭建测试环境--执行测试--提交测试缺陷--测试总结报告

4)软件测试用例设计/测试用例的内容/管理工具?

参考:以场景为驱动的测试设计,并且针对测试数据的选择,通常结合等价划分、边界值、因果图、错误推测等

包含:标题、测试环境、测试输入数据、测试步骤、测试结果、测试时间、测试人员等

工具:Testlink、禅道

5)软件缺陷的内容/管理流程/管理工具?

6)缺陷等级的划分?

7)是否编写过软件测试计划/包含哪些内容?

8)是否编写过软件测试报告/包含哪些内容?


第七节:Jmeter工具环境搭建与实战

1.为什么使用Jmeter?

项目需要:接口测试、接口性能测试、负载测试、压力或稳定性测试

求职需要:Jmeter和fiddler都是加分的

圈内需要:测试圈内的同行交流


2.Jmeter工具是什么?

1)多线程框架、支持多并发操作

2)用于服务器模拟负载

3)支持web、数据库、FTP服务器系统的性能测试

4)开源、纯JAVA,可二次定制化开发


3.Jmeter如何使用?

第一步:下载安装JDK

第二步:下载Jmeter(建议选择4.0版本,新版本可能存在一些小问题)

第三步:运行Jmeter。一台windows系统电脑时点击bin目录下Jmeter.bat,一台Linux系统电脑时点击bin目录下Jmeter.sh。测试很多用户用到分布式Jmeter测试时,点击bin目录下Jmeter-server.bat。


4.Jmeter常用元件

1)测试计划:名称、注释、独立运行每个线程组(在一个线程组运行结束后启动下一个)

2)线程组:名称、注释、线程数(用户数量)、Ramp-up Period(in seconds)(做并发时输入0或1)、循环次数(是对整个线程的循环,如果要对部分线程循环使用循环控制器)、永远(线程一直循环执行)、调度器(使用时如果循环次数有值,会以循环次数为主,此时需要勾上永远)、启动间隔(多久启动一次)


第八节:Jmeter接口测试实战

1.接口是什么?

1)概念:

一种是内部接口,方法之间交互和模块之间交互

一种是调用对外包装的接口

2)分类:

web接口

应用程序接口

数据库接口


2.为什么做接口测试?

1)项目需求

2)市场需求


3.怎么做接口测试?

1)需要有接口文档,如果没有自己抓包然后编写,包括接口地址,返回格式,请求方式,请求参数,请求头,返回数据示例

2)Jmeter操作


第九节:Jmeter接口性能测试实战

主要是讲得获取token、正则提取器、同步定时器等插件的使用


第十节:一节课入门接口测试自动化

需要根据接口文档,对被测系统输入信息,检查输出是否正确

需要python第三方库requests

import requests

res = requests.get('https://www.baidu.com')
print(res.status_code)
if res.status_code == 200:
    print("检查点通过")
else:
    print("检查点不通过")


第十一节:软件测试问题定位分析--案例实战讲解

1.软件问题分析的两个方向

业务方向:用户需求(显性+隐性):使用用户场景

技术方向:软件架构(系统设计+环境部署):运用IT技术

2.问题:通过windows上的浏览器,访问部署在Linux系统上的web服务,发现网站无法访问?

分析:从多个角度分析可能造成问题的原因

1)能不能Ping通服务器--cmd下输入Ping ip地址

2)防火墙(服务器)(Linux下输入service iptables start可以开启防火墙,输入service iptables stop可以关闭防火墙。注意关闭防火墙会有安全隐患,所以不能关闭防火墙。正确的做法是输入iptables -I INPUT -p tcp --dport 80 -j ACCEPT来允许服务器接收80端口的数据)

3)是否设置代理(浏览器)

4)错误代码

5)端口号检查(linux下输入命令tcpdump -v port 80进行抓包,分析看大于小于号就行。>表示请求,<表示响应,只有大于号没有小于号说明丢包)

6)查看DNS解析是否正确

7)网络

8)数据库

9)服务器日志信息

10)web文件是否存在

11)服务器本机能不能打开

12)网址是否正确,有没有url重定向、换其他浏览器


二、明天计划的事情:

1.将腾讯松勤目前所学内容整理成思维导图

2.学习拉勾上的测试课程


三、遇到的问题:

第二节: 

1.测试覆盖率是什么?

测试覆盖率:测试到的功能点/总共需要测试的功能点X100%,测试覆盖率越高越好。比如有10个功能点要测,测了1个覆盖率是10%。


2.因为项目关系,来不及测试所有的功能点怎么办?

根据优先级测试。


3.如何分测试用例优先级?

站在用户角度,根据用户对功能的需求判断。如用户最关注的是什么?用户最不关注的是什么?比如安装和卸载比,安装高于卸载


4.自动化测试如何学?

首先缩小问题,明白自己学自动化是为了什么?比如,是为了简化web的操作,可以学selenium webdriver。然后就发现需要学习编程语言,页面元素定位等。学习目标一定要落地,如学习如何爬虫或者如何将本地文件传到远程等细化的任务。以小点来撬动目标,而不是定大目标导致无法完成目标。


5.JMeter学习技巧是什么?

JJmeter是模拟协议发包的工具,如Http、soap、restful、tcp协议等。Jmeter的难点一是对用到的协议的分析,二是Jmeter是插件类型的,要如何通过插件实现循环、监听、断言、断点等功能。技巧是以事件为驱动,Jmeter的插件很多,挑有用的研究。


6.一个项目分模块,所有模块工程师完成各个模块的测试,发布前还有什么事情要做?

1)大公司的做法时选取几个大的用例(5-10个),把其他用例关联起来,把整个流程跑通 

2)验收(用户或者公司内部)


7.app兼容测试怎么做?

推荐云测,如testin,把app扔进去可以选择几十款手机。分两种:一是机器人在真机上测试,二是高级服务,会有资深工程师去测试。测完会出详细报告给客户。


第三节:

1.软件测试是什么?

对象:软件(程序/文档/数据)、系统、产品、项目;

分类:APP/WEB/服务器测试/窗口测试

目的:尽快、尽早地发现软件的缺陷,提高产品质量,提升用户满意度


2.如何选择公司?

分为做产品和做项目的公司。

1)产品如QQ、微信等,由产品经理主导,要选择有前景的产品。

2)项目周期短,由项目经理主导,要频繁的切换项目缺乏沉淀。


3.软件测试如何开展?

需求分析-->测试计划(什么时候测试?测哪些点?哪些人测试?测试时间?)-->编写测试用例-->搭建测试环境-->发现bug-->开发修复bug-->测试验证bug-->总结报告


4.小功能如何测试?

如松勤的留言功能测试,为了减少测试用例,只写三条测试用例(正常的一个、异常的一个、特殊情况的一个)即可。


5.测试报告写什么?

功能测试主要包含

1)被测对象缺陷的数量

2)缺陷状态

3)缺陷分布

4)是否通过

很多团队把手工功能测试、自动化测试、性能测试的测试报告分开总结。


6.什么情况下才算测试完成?--https://blog.csdn.net/meet1992/article/details/49469867

1)全部测试用例回归测试都执行完成

2)未修改的bug都被确认或置为应有状态。暂缓修改的问题都有详尽解释。

3)测试报告编写完成

4)测试收尾工作结束

5)测试总结完成

6)项目处于试运行或上线阶段。继续关注产品试运行出现的问题,并及时录入bug管理系统。


第四节:

1.测试用例是什么?

测试用例就是设计一种情况,软件在这种情况下能够正常运行并达到期望的执行结果。如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那可能就是一个软件缺陷。


2.测试用例从哪里来?

需求。


3.测试用例的作用是什么?--http://www.jnshu.com/daily/107444?total=42&page=42&uid=39427&sort=0&orderBy=3

1)检验软件是否满足用户的需求

2)体现一个测试人员的工作量

3)展现测试用例设计时的思路


4.测试用例包含哪些内容?

模块编号、所属模块、模块描述、用例编号、用例名称、测试点描述、测试背景、前置条件、优先级、重要级、测试环境、测试类型、测试阶段、测试数据、测试步骤、预期结果、实际结果、编写人、执行人、开发者、备注


5.如何设计测试用例?

测试用例设计三部曲:

要测试什么?--业务(支付、游戏、视频、即时通讯等)

怎么样测试?--测试环境搭建

如何判断正确与否?--需求


6.自动化测试的如何划分层次?

1)用自动化工具代替手工测试

2)自己编写代码驱动工具

3)自己编写整个自动化架构,达到自动部署,执行,匹配结果,生成报告


7.自动化框架的原理如何理解?

以功能测试作为核心,编写软件实现用户将测试点、数据、步骤、期望结果放进去点击软件,软件自动执行、匹配结果、生成报告,执行结束发送邮件给用户,用户查看邮件报告可以知道测试点执行情况(成功还是失败,失败原因是什么,失败率多少等)

1)需求(提取出需求点)

2)数据(为这些需求点选择合适的数据)

3)步骤(编写步骤将数据融汇进去)

4)发消息(将消息发送到系统中去)

5)匹配期望结果

6)生成报告


8.测试环境如何搭建?

分为三种

1)搭建测试软件所需要的环境,如安装测试app、web等的环境,可能需要JMeter等

2)测试管理环境搭建,如测试用例、bug、文档等放到哪里管理,可以使用禅道、TestLink、SVN、GIT等管理工具

3)项目本身,可能需要Tomcat,Apache


第五节:

1.学习bug的误区是什么?

很多人学习bug的时候注意力放在如何找到bug,而不是先理解透彻bug是什么


2.为什么要提交高质量的bug?

提交高质量的bug体现测试工程师的存在价值(在用户使用之前发现bug)和能力(发现别人不能发现的bug)。


3.千年虫问题是什么?--https://baike.baidu.com/item/%E5%8D%83%E5%B9%B4%E8%99%AB/2954

计算机2000年问题,又叫做“千年虫”。缩写为“Y2K”。是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运算时(如多个日期之间的计算或比较等),就会出现错误的结果,进而引发各种各样的系统功能紊乱甚至崩溃。因此千年虫是一种程序处理日期上的bug(计算机程序故障),而非病毒。


第六节:

1.Level1(基层员工)如何快速发展自己?

关键点是技术和业务能力。刚刚入行时,

1)安装公司的产品和项目来使用而不是先看文档。

2)看别人写的测试用例。

3)看别人的bug。

4)前三步可以快速成为公司的熟练工,之后要有欲得其位,必先谋其政的理念,走出舒适区,想得到更高的地位去做这个岗位的事。


第八节:

1.做接口测试没有文档是怎么办?

自己抓包去编写文档


2.常见的端口号?

http:80

https:443

Mysql:3306

fiddler:8888

postman:5555

Tomcat:8080


四、收获:

1.了解软件测试的学习路线,从计算机技术、软件测试技术、软件测试工具、项目经验、交流沟通这五方面学习。其中新知识需要着重学习。

2.了解软件测试是什么,如何开展软件测试。

3.了解测试用例是什么,作用和包含内容是什么,三部曲。

4.松勤公众号回复面试,硅谷等去看公开课视频

5.松勤测试交流群:797041070

6.了解自动化框架原理

7.提交高质量bug是测试的核心内容

8.了解缺陷的定义、如何发现缺陷、缺陷的流程、缺陷管理工具

9.找公司要找重视测试的公司

10.功能测试是测试软件的从0-1,性能测试是测试软件的从1-N。性能测试的问题都可以追溯到功能测试。功能测试很重要一定要深刻理解。

11.面试相关的内容

12.思维导图是辅助学习的利器

13.做web测试之前,注意清除浏览器缓存


返回列表 返回列表
评论

    分享到