{eval=Array;=+count(Array);}
多数公司会将测试人员按照职级划分,如初级测试,高级测试,资深测试。随着职位级别的不断提高,所要求的能力和技术也会越来越高,整体来说,如果你要应聘的是高级测试的话,岗位要求基本会是在某一个或多个领域内非常擅长。那么这里说的某一个领域其实就是测试行业内对岗位的更进一步细分。那么在测试行业内到底有那些细分的测试岗位呢 ?
就目前测试行业来说,主要细分领域包括功能测试,自动化测试,白盒测试,性能测试等 。很多公司也会设置专岗来招聘对应细分领域的工程师,如自动化测试或性能测试等 。下图主要针对不同岗位的工程师所进行的工作内容进行的描述。也是因为工作内容有所不同,所以每个岗位上的工程师使用到的工具也会有所不同。
下图就是根据不同岗位上所从事的主要工作内容,分类的列举出了一些业界比较流行或具有代表性的工具。而且每家公司的情况不同,个人喜好也不同,所以不见得都会在列表中能看到,下图中的工具仅供参考。
工具虽多,也并非都要关注,根据我们目前的情况,可以选一些自己所关注的工具,进行全面系统的学习,毕竟这些工具中多数非常经典,在某个方面可以提高我们的工作效率。当然,想要学习也是非常方便的,这些工具在网络上有很多的学习资源,个人推荐头条和B站,基本在上面都能找到你想要的学习资料。
初级阶段常用的软件:
1、svn(版本管理工具):直接安装就可以使用,是团队里管理共同使用的代码,保持代码的更新,避免混乱。
2、禅道(项目管理工具):集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体的软件,比较常用的就是缺陷管理
3、Excel(用例管理)、Word(测试计划、测试报告)
4、postman、SoapUI-接口测试
中级阶段常用的软件:
1、QTP-自动化工具
2、loadrunner-性能测试工具
3、jmeter-接口工具、性能工具
4、fiddler-抓包工具
5、Mysql-数据库
6、monkey-APP自动化工具
高级阶段常用的软件:
1、linux-系统,主要用于搭建测试环境
2、myeclipse+python-编写脚本进行自动化测试
我觉得学习软件测试不在于学习多少的软件,因为有很多的软件都是大同小异的,坐会那么几种,自己用习惯了,用熟了,等自己的能力提升上去后就可以直接用编写代码去代替部分的软件了。
提bug工具:禅道,bugfree
部署环境的工具:tomcat,docker,jenkins
抓接口的工具:fiddler
接口和性能测试工具:jmeter
接口自动化和ui自动化工具:robotframework
查看数据库的工具:navicate
还有查看centos服务器的工具
差不多我们一般就用这些软件吧
一、测试分类
(1) 按测试方式分类:静态测试、动态测试
(2) 按测试方法分类:白盒测试、黑盒测试
(3) 按测试自动化程度分类:人工测试、自动化测试
(4) 按测试阶段分类:单元测试、集成测试、确认测试、系统测试、验收测试
(5) 按测试类型分类:功能测试、界面测试、性能测试(负载测试、强度测试)、容量测试、压力测试、安全测试、兼容性测试、安装测试、文档测试、易用性测试、边界测试、健壮性测试、本地化测试、无障碍测试、回归测试、冒烟测试、Monkey测试、A/B测试
(6) 按测试模式分类:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试
二、静态测试
静态测试包括互审、走查、会议
三、动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
四、白盒测试
白盒测试是基于代码的测试,通过程序代码或者通过开发工具找出软件的缺陷。白盒测试总体上分为静态测试和动态测试两大类。
白盒测试方法:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖、程序变异
五、黑盒测试
黑盒测试方法:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验分析法、功能图法、场景法、状态迁移图法、流程分析法
六、人工测试
人工测试包括:众包测试、探索式测试
七、自动化测试
自动化测试:使用多带带的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
一般对单元测试、接口测试、性能测试执行自动化测试。
八、单元测试
单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程。
九、集成测试
又称组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明说和详细设计说明书的要求进行组装。
集成测试的入口:单元测试已经完成,并提交《单元测试报告》;代码走查完成,已进入受控库并完成产品集成
集成测试主要包括以下过程:1. 构建的确认过程。 2. 补丁的确认过程。 3、系统集成测试测试组提交过程。 4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。 7. 每周/每两周的构建过程。 8. 点对点的测试过程。 9. 组内培训过程。
集成测试主要实施方案:Big Bang、自顶向下、自底向上、核心系统集成、高频集成
十、确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
十一、系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题。
针对手机应用软件的系统测试,通常从如下几个角度开展:功能模块测试,交叉事件测试,压力测试,容量测试,兼容性测试,易用性/用户体验测试等.
系统测试的16个测试策略:功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。
设计系统测试计划需要参考的项目文挡:软件测试计划、软件需求规范、迭代计划
十二、 验收测试
软件验收测试分为三类:正式验收测试;非正式验收测试其中包括α测试(由用户、测试人员、开发人员共同参与的内部测试)和β测试(内测后的公测,即完全交给最终用户测试)。
软件验收测试的合格通过准则是:软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求;所有测试项没有残余一级、二级和三级错误;
立项审批表、需求分析文档、设计文档和编码实现一致;验收测试工件齐全。
不同的测试类型有着不同的方案,同时在过程中也需要使用到不同的工具。
软件测试按照工作岗位可以分为功能测试、性能测试、测试开发,不同的工作岗位会用到不同的软件测试工具:
1. 禅道
很多人最早接触的测试管理工具就是禅道,禅道是第一款国产的开源项目管理软件,功能包括测试管理、计划管理、发布管理、文档管理、事务管理等等。能够把软件研发中的需求、任务、bug用例、计划等要素有序地跟踪管理起来,完整地覆盖了项目管理的核心流程。开源易上手,现在依然也有很多中小企业在使用禅道。
2.SVN
特点:跨平台,支持大多数常见的操作系统,开源、安全、高效、资料共享
SVN是一个开源的集中式版本控制系统,是常用的代码和项目管理工具。简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。可以把SVN理解为一个库,里面存放各种文件,SVN给每个文件打上标签,记录文件的每次变动,方便你查找、获取最新的文件。
3. git
特点:免费开源,多分支管理比SVN好用
git和SVN的功能很像,但不同的是,SVN是集中式的,必须联网才能正常工作。而git是分布式的,所以git支持离线工作,分支管理比SVN好用。但是git的命令繁多且复杂,没有SVN简单易用。
4.Jmeter
Jmeter是一款基于Java的压力测试工具,旨在加载测试功能行为并测量性能。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。可用于测试静态和动态资源(Web动态应用程序)的性能,比如Java小程序服务、CGI脚本、Java对象、数据库、FTP服务等等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
5.loadrunner
LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
6.Fiddler
Fiddler是一个常用的抓包工具。它是用C#写出来的,可以支持众多的http调试任务,并且能够使用.net语言进行扩展。Fiddler支持断点试技术,还可以显示所有的Http通讯,你可以很轻松地看到你请求的某个页面,总共被请求了多少次,以及多少字节被转换了。同类型的工具还有 httpwatch,wireshark等等。
软件测试工具分为自动化软件测试工具和测试管理工具。自动化软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。测试管理工具是为了复用测试用例,提高软件测试的价值。一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。
软件测试工具有哪些?
国内免费软件测试工具有:AutoRunner和TestCenter。
10款常见的软件测试工具推荐
1、Bugfree
BugFree是借鉴微软的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理 系统。简单实用、免费并且开放源代码(遵循GNU GPL)。 命名BugFree 有两层意思:一是希望软件中的缺陷越来越少直到没有,Free嘛;二是表示它是免费且开放源代码的,大家可以自由使用传播。
2、bugzilla
Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。
3、Testlink
TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,可以将测试过程从测试需求、测试设计、到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析,使我们能够简单的开始测试工作和分析测试结果。
4、manTIs
TMantis是一个基于PHP技术的轻量级的缺陷跟踪系统,其功能与前面提及的JIRA系统类似,都是以Web操作的形式提供项目管理及缺陷跟踪服务。在功能上可能没有JIRA那么专业,界面也没有JIRA漂亮,但在实用性上足以满足中小型项目的管理及跟踪。
5、QTP
QTP是一个B/S系统的自动化功能测试的利器,软件程序测试工具。Mercury的自动化功能测试软件QuickTest Professional ,可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。Mercury QuickTest Pro 是一款先进的自动化测试解决方案,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为。 Mercury QuickTest Pro为每一个重要软件应用和环境提供功能和回归测试自动化的行业最佳解决方案。
6、selenium
selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。
7、weblnject
WebInject 是一个自动化测试工具,主要适合Web应用和Web服务。可以通过它来测试基于HTTP接口的系统组件,还可以用它来进行服务器监控。
8、maxq
MaxQ是一个Web功能测试工具。它包括一个记录测试脚本的HTTP代理,一个用于重放测试的命令行实用程序。代理记录器自动存储提交到表单的变量,那么你无需用手书写它们。
9、jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。
10、undefined
OpenSTA 是专用于B/S结构的、免费的性能测试工具。它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行,按指定的语法进行编辑。在录制完测试脚本后,可以对测试脚本进行编辑,以便进行特定的性能指标分析。其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。
快转正啦,要写转正评审ppt,顺带就总结了下个人学习路线,仅供参考。初学者不要看晕了,学完基础就可以找实习啦,其他的慢慢来~
先附上xmind,简洁明了
1、长期学习软件测试理论
其中包括测试方法熟练运用、测试思维的养成
测试方法可以找一本基础理论的书籍
以下是我入门的两本测试理论书籍,可在公众号回复(电子书)获取电子版
熟练运用和测试思维的养成我认为是需要功能测试经验的积累,多看看别人的用例,别人提交的bug
2、测试中bug定位分析
测试中bug定位可以学习fiddle抓包,数据库分析数据,查看日志,之前发过的F12定位web测试前后端bug也是其中一种
Fiddle教程我发现现在多数教程都是如何使用,而聊到如何分析的几乎没有,我没有找到哦,后面开一篇聊聊,共勉!
数据库分析数据,这就需要学习数据库相关知识了
SQL基本语句的学习(增删改查),查询是重点
3、接口测试
学习相关概念
学习Json基本语法
学习常见接口测试工具的使用
如Postman
Postman单口测试
Postman多口业务逻辑测试
Postman断言
4、python基础学习
看书、代码敲起来、练习做起来
菜鸟书籍《笨办法学Python》回复(电子书)获取
注意!这边的电子书是基于python2的
后续我会出python3写的《笨办法学Python2》系列习题答案,可持续关注,也可以直接看《笨办法学Python3》
5、自动化测试
(1)python+selenium基于web的UI自动化学习
(2)python+appium基于APP的UI自动化学习
6、掌握1个或者多个自动测试框架,学习robotframework, python的unittest
7、掌握性能测试技术,学习jmeter
题外话:
现在常见的现象是功能测试工程师想去做自动化测试,他觉得写自动化测试是价值,他能从中学到新的内容。
但是我觉得,你想清楚自己是在哪个阶段上,你想往另一个方面去发展的话,那么你一定需要在另一个方面去做额外的努力。那么这个做努力的过程中,从知识积累的角度来讲,它一定是从深度再到广度。
所有的测试离不开基础理论的支撑,即使是自动化。
我对自己的要求是在工作当中,如果接触到了一个技术,一个项目,一个功能,不轻易放过。不是得过且过,我测了就测了,一定要刨根问底。相信这样,每个接触过的技术都会变得比较深入。随着项目接触的越来越多,做到的事情越来越多之后,你很快就会发现,你有了深度的同时你就有了广度。
个人对自动化学习的要求:
考虑把身边天天碰到的这些重复性劳动,用一个简单的脚本,或者做一个简单的工具去做优化。一方面这是来源于对整个知识体系的理解,想法、思维方式,以及行动。在这个过程中,就体现作为一个测试人员的价值。我相信随着工具越来越多,知识面越来越广后,能做的事情就会更多。
1、梳理模块测试思维导图用xmid
2、文件编辑用noted++
文件管理svn
3、文件传输用winscp
4、远程用xshell,mscs
5、编程用Python3.8,pychar
代码管理git
0
回答5
回答3
回答7
回答0
回答10
回答0
回答0
回答4
回答10
回答