测试工程师需要学习什么
发布网友
发布时间:2022-04-19 14:07
我来回答
共12个回答
懂视网
时间:2022-05-03 06:43
在网上有关Redis相关文章满天飞的时候,这个时候我决定重温一下NoSQL。它是什么,用于解决什么问题,有哪些相类似的技术,与传统的关系型数据库有哪些差别,什么时候使用?
也正如书中所说的,篇幅短小,内容却很丰富。新技术的诞生,我们应该以既稳健又前瞻的心态看待它。
1. 它是什么,用于解决什么问题?
其实NoSQL的定义并不准确,初意Not Only SQL,不是表达No,SQL!
它就泛指现在描述的非关系型数据库,帮助主张无模式(schemaless)的数据,可以运行在集群环境,能够牺牲传统数据库所具备的一致性,换取一些新特性。能构建出稳定性更高,扩展性更好的编程系统。
有两个主要解决问题:
应用程序的开发效率。更符合应用程序的数据模型,简化交互,减少代码量。
大规模数据。快速获取并处理数据。
NoSQL
2.它的“友邦”
聚合数据模型
分布式模型
催生NoSQL的主要原因是:需要一种能勾运行在大集群上的数据库。随着数据量越来越多,购买服务器的纵向扩展scale up会变得愈发困难和昂贵,所以催生横向扩展的面向聚合数据库。
3. 选择合适的数据库
宽泛的说,选用NoSQL数据库有两个原因:
提高程序员的工作效率;
改善数据访问性能;
两种因素可能互补也可能相互冲突,因为很难将数据存储模型的决策过程抽象出来,稍后再要修改,也颇为不易。
在决定适用某个NoSQL技术前,一定要测试其是否如预期般改进了程序员工作效率及数据访问性能。用服务封装数据库,能在需求变更或技术成熟后改换其他数据库技术。
重温《NoSQL精粹》
标签:网上 哪些 web less 数据存储 not 问题: 传统 scale
热心网友
时间:2022-05-03 03:51
第一步,测试基础:
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等。
第二步:学习脚本语言
如:python语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。都说C语言最难,但是用得确实也多。
第三步:学习软件测试工具
学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。
第四步:计算机硬件知识
做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
第五步:数据库测试
MySQL数据库
MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。
Redis数据库
Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。
第六步:项目实战
最好参与真实项目的测试工作,积累真实项目的测试经验。
成为优秀软件测试员之提升条件,如果你想成为一个更优秀的软件测试员的话,除了上面那些,你也最好能够具备开发语言即代码编写能力,虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程 师的一部分工作就是在写测试工具。虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你 现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是Java或者是VB什么的)所以在开发语言中测试需要更广的学习。
成为软件测试员之必备条件,就是你一定要有良好的心态。心要静、细心耐心、责任心。心静不下来无法对bug展开发向思维及拓展想像。任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理
热心网友
时间:2022-05-03 05:09
测试工程师需要学习和掌握的技能如下:
1、 基础:前文所说的基础技能必需掌握,推荐Java+Oracle+Uml组合。掌握程度一般不用太深,测试工具开发职位的除外。特别注明,Junit是一定要掌握的。市面上书籍很多,笔者推荐《Java编程思想》、 《Oracle 9i 参考手册》、《UML精粹》。
2、 专业:前文所说的测试方法、测试工具必需掌握。其中对于测试工具,如果开源则尽可能阅读源码。推荐书籍《计算机软件测试技术》、《软件测试艺术》、《软件测试》。
3、 实战:前文所说的测试模式必需掌握。 至少全程参与二十次项目,至少参与两次50人以上规模的项目,至少编写测试用例10000个,至少发现缺陷5000个,至少编写测试脚本20000行,至少担任过三次测试负责人,所有产品发布后遗漏缺陷总数小于50个并呈收敛趋势。推荐书籍《设计模式》、《人月神话》、《软件测试经验与教训》。
4、 沉淀:深入了解质量控制原理,对功能性(含安全)、效率、易用性、可移植性、可维护性、可靠性等质量特性均有实际测试经验。推荐书籍《质量无泪》、《质量免费》、《ISO9126》等所有软件质量相关国标。
热心网友
时间:2022-05-03 06:44
1、 基础:前文所说的基础技能必需掌握,推荐Java+Oracle+Uml组合。掌握程度一般不用太深,测试工具开发职位的除外。特别注明,Junit是一定要掌握的。市面上书籍很多,笔者推荐《Java编程思想》、 《Oracle 9i 参考手册》、《UML精粹》。
2、 专业:前文所说的测试方法、测试工具必需掌握。其中对于测试工具,如果开源则尽可能阅读源码。推荐书籍《计算机软件测试技术》、《软件测试艺术》、《软件测试》。
3、 实战:前文所说的测试模式必需掌握。 至少全程参与二十次项目,至少参与两次50人以上规模的项目,至少编写测试用例10000个,至少发现缺陷5000个,至少编写测试脚本20000行,至少担任过三次测试负责人,所有产品发布后遗漏缺陷总数小于50个并呈收敛趋势。推荐书籍《设计模式》、《人月神话》、《软件测试经验与教训》。
4、 沉淀:深入了解质量控制原理,对功能性(含安全)、效率、易用性、可移植性、可维护性、可靠性等质量特性均有实际测试经验。推荐书籍《质量无泪》、《质量免费》、《ISO9126》等所有软件质量相关国标。
5、 领域:选取一至两门测试技术作为长期研究的方向,中途可适当调整,这里说的长期指的是五年、十年及以上,在这个层次重点是要做到专精。推荐方向“云测试”、 “基于模型测试”。
6、 专家:理论计算机科学研究。笔者不是专家,因此不敢臆测到达此层次后应该做些什么以及怎么做,但“P/NP问题”是笔者一直有兴趣并持续关注的,也是很多科研工作者选取的研究课题,在此郑重推荐。
热心网友
时间:2022-05-03 08:35
软件和硬件是两个不同的方向哦,感觉目标不太明确。还有,要看你的工作环境。软件开发公司的和工厂内的就完全不是一回事哦。
热心网友
时间:2022-05-03 11:00
如果从事黑盒/功能测试方向,门槛其实不是很高,熟悉linux、sql就差不多可以成为一名合格的黑盒QA工程师。如果是从事自动化或者性能测试方向,需要学习Python、Java或者shell。另外测试工具也是需要掌握的,例如loadrunner和jmeter。
有个公众号里面有详细介绍,w。x搜“疯狂IT人”
热心网友
时间:2022-05-03 13:41
https://zq-mobile.zhaopin.com/mAnswer/7445780/
热心网友
时间:2022-05-03 16:39
什么城市校学习什么肯定要学跟你专业有关系的东西你都不知道的话,可以自行下,老师让我去问问他们该学些什么,给要认认真真的去学
热心网友
时间:2022-05-03 19:54
软件测试工程师学什么?那多了,今天就来说说测试用例的事儿:
测试用例一直以来都是个老大难的问题,好多朋友总说不会写不会写,其实,在经历过学习之后,你会发现些测试用例一点都不难。
测试用例模板
● zui小功能测试集:用于简单、高速地验证系统是否满足基本的功能需求(zui小功能集zui好能够做到全部自动化);
● 复杂功能测试集:用于进一步验证系统能否在复杂、或不常见的合法输入和操作下正常运行;
● 健壮性测试集:用于测试系统能否在各种异常输入、异常操作或者异常环境下正常响应,以及检测在出错之后系统能否正常运行,是否造成数据丢失、是否毁坏其它相关的软件和硬件等;
● UI测试集:编写跟UI设计相关的测试集。
说明:
zui小测试集、复杂测试集、以及健壮性测试集都是根据需求、使用测试用例设计方法编写的。UI是根据产品UI设计文档编写的。
在编写测试用例的时候,需要思考以下几个问题:
● 为什么功能性测试用例必须覆盖全部需求?
这问题不回答了,大家一定理解。
● 哪种测试用例便于他人审核是否有效?哪种测试用例便于增加、删除、修改?
具有树型结构、清晰层次关系的测试用例。审核人员一般会先审核树枝是否全面覆盖需求、是否有冗余,然后再审核树叶是否全面、是否有冗余。如果具有这样的层次关系,用户也能很好地维护测试用例。
● 哪种测试用例便于多项目共用?为什么要将功能与UI测试测试集分开?
在测试用例设计中,将功能与UI测试用例分开,这样对于功能相同的需求,功能性测试用例就可以在多个项目中通用。为了功能性测试用例能够在多项目中通 用,功能性测试用例需 要使用通用词语描述。UI用例应该只描述各产品UI的一些约束部分,参考后面电话模块测试用:当电话拨号盘没输入号码,键盘“灰显”等,这约束跟具体项目有关,属于UI用例。
需求模块划分
在设计测试用例前,充分理解需求是非常必要的。在此基础之上再对需求进行模块划分,形成一棵需求树(说明:划分模块的时候,需求可以重复。但重复不宜太多,否则需要思考划分的模块是否合理?)
热心网友
时间:2022-05-03 23:25
基础 专业 实战 沉淀 领域 专家
热心网友
时间:2022-05-04 03:13
一、业务分析能力
1.分析整体业务流程
不了解整个公司的业务,根本就没办法进行测试
2.分析被测业务数据
了解整个业务里面所需的数据有哪些?哪些是需要用户提供的?哪些是自己提供的?有哪些可以是假数据?有哪些必须是真数据?添加数据的时候可以用哪个库?
明白了整个软件的数据库架构,才能知道哪一个数据是从哪一个表里头带出来的,它的逻辑是什么,有没有连带关系。
3.分析被测系统架构
用什么语言开发的?用的是什么服务器?测试它的话需要用什么样的环境进行测试?整体的测试环境是什么样的?
如果缺少了,需要进行环境搭建,架构搭建。一般去一家新公司之后,架构是搭建好的,了解它即可,熟悉之前的这些老员工们使用什么样的架构去做的。
4.分析被测业务模块
整个软件有哪些模块,比如说首页面、注册页面、登录页面、会员页面、商品详情页面、优惠券页面等等
明白有多少个模块需要测试,每个模块之间的连带关系,进而怎样进行人员分工
5.分析测试所需资源
我需要几台计算机,需要几部手机,手机需要什么样的系统,什么样的型号。
比如测一个网站的性能的时候,电脑的配置达不到测试并发5000人的标准,要么升级电脑的硬件配置,要么多机联合,多机联合时需要几台电脑,都需要提前筹划。
6.分析测试完成目标
我的性能目标是什么样的?我的功能目标是什么样的?我要上线达到的上线标准是什么样的?
性能目标,比如我要达到并发5000人的时候,CPU占用率不能高于70%,内存占用率不能高于60%,响应时间不能超过5秒
功能目标,比如整体的业务流程都跑通,所有的分支流程都没有问题,所有的接口都能够互相调用,整体的UI界面没有问题,兼容性没有问题等
把这些问题都弄清楚,测试的思路会非常的清晰
二、缺陷洞察能力
1.一般缺陷的发现能力
至少你要满足一般缺陷的发现能力,这个是最基本的,如果要连最简单的一般的缺陷都发现不了的话,别说优秀测试工程师了,你说你是测试我都不信
2.隐性问题的发现能力
在软件的测试过程当中有一些缺陷藏的比较深,有的是性能方面的问题,有的是功能方面的问题,它需要有一些设定特定的条件的情况下才会出现这样的问题。
比如说买双鞋必须选择的是什么品牌,必须选择是红颜色,必须选择44号,而且必须选择用特定的支付方式才会出现这样的bug的时候,那么这种就属于特别隐性的bug,对于这样的问题的发现能力一定要比别人更强,要找到一些别人可能发现不了的bug
3.发现连带问题的能力
当发现了一个缺陷之后,能够想到通过这个缺陷可能会引发其他哪个地方出现问题,这就叫做连带的问题。而不是说发现这一个bug之后提了这一个就算完了,一定要有一个察觉,可能其他地方也存在这样的问题。
4.发现问题隐患的能力
有些软件里边可能有一些操作模块,或者是代码写的接口,表面上没有什么问题,但是它是有隐患的,比如说这个接口写的不稳定,当他传的数据有一些问题的时候,可能它最后返回的结果就是报错就是报404或者报乱码。
5.尽早发现问题的能力
如果你只能停留在界面级别的话,那你根本就没有办法达到尽早发现问题的这个能力
你必须要等到前端人员把每个界面都做好了之后才能进入测试,而我能比你早一个月进入测试了,然后我比你结束测试时间快一个月,而你又比我晚一个月,那么咱俩的薪资一下就拉开了
6.发现问题根源的能力
需要知道这个缺陷它到底是由什么原因产生的,是属于什么类型的缺陷,是ui前端人员做的问题,还是后台接口人员做的问题?
不仅要找到这个bug,还要知道这个bug产生的原因,这样的测试人员是非常棒的,而且很是受人尊敬,提bug的方式也就不一样了
三、团队协作能力
1.合理进行人员分工
2.协助组员解决问题
3.配合完成测试任务
4.配合开发重现缺陷
5.督促项目整体进度
6.出现问题勇于承担
四、专业技术能力
1.掌握测试基础知识
2.娴熟运用测试工具
熟悉工具和熟练使用工具完全是两个概念,熟悉工具基本上等同于不会,遇到过很多简历上写会使用什么什么工具,都没有实际能力。比如loadrunner只会一个简单的录制,增强一下脚本,觉得会用了,那知识会用了1/5,其他4/5 都不会。
3.了解工具操作原理
它是怎么样给服务器发送请求的,是用什么样的方式去发送请的,是用什么样的方式去监控的,它的操作原理是什么样的,咱们要把这件事情搞清楚,这样的话能有助于更好的去使用这些东西。包括一些请求的协议,每个协议代表什么意思,它是用来干什么的。
4.自主完成测试任务
一定要能够自己完成一个独立的内容,独立的工作,这件事情领导你交给我好了,放心我能给你搞定,要的是这样的人
5.找出问题出现原因
找出缺陷的时候,不仅要看它的表面,还要看它的本质
6.提供问题解决方案
发现问题不是能力,发现问题并提出解决方案才是真的能力
7.提供完整测试报告
测试报告能够说明你表达的清不清楚?领导能不能看懂?还有就是能不能够把你整个测试的过程给它梳理得非常详细,人家能够通过你的报告,能够了解到整个的项目的情况,而不是只了解一个片面的情况
8.了解相关技术领域
触类旁通
热心网友
时间:2022-05-04 07:18
从业资格
在企业中一般称为软件开发测试工程师(Software Development Engineer in Test,SDET)。一般为具有1-2年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期的领导工作。进一步拓展编程语言、操作系统、网络与数据库方面的技能
测试工程师职责
。 有良好经验的测试工程师可以成长为产品/项目组的测试组长(SDET Lead)或软件质量经理(SQA Manager),负责软件质量保证,进行测试管理和领导测试团队。