实际工作中,从事软件测试需要必备的知识

2021-04-01 15:19发布

2条回答
小包子吖
2楼 · 2021-04-02 17:46

第一步,测试基础:

测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写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展开发向思维及拓展想像。任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理


722
3楼 · 2021-05-11 10:15

第一阶段:专业基础课程

阶段目标:

1. 熟练掌握IT核心技术:编程,数据库,操作系统,版本控制。

2. 能够熟练运用所学技术搭建各类服务器环境。

3. 深入理解软件研发过程各种疑难杂症及处理手段。

4. 掌握Python编程技术并熟练运用Python进行程序设计。

知识点:

1、Web页面元素,布局,CSS样式,盒模型,JavaScript程序设计,函数,基础算法,正则表达式。

2、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为软件测试和测试开发打下基础。

3、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Shell编程Linux作为一个主流的服务器操作系统,是每一个测试开发工程师必须掌握的重点技术,并且能够熟练运用。

4、Python编程基础,语法规则,函数,数据类型,PDBC,培养扎实的Python编程基本功,同时对Python核心对象编程有熟练的运用。

5、Python面向对象,异常处理,文件IO,多线程,网络编程,PyQT界面开发,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。

第二阶段:专业核心课程

阶段目标:

1. 熟练应用所学知识完成一个标准的软件测试项目。

2. 熟练运用Python完成GUI测试,接口测试和性能测试开发。

3. 对测试开发技术体系和实现原理有深入的理解。

4. 灵活运用测试开发技术解决项目中的各种问题。

知识点:

1、软件工程,软件质量,系统测试流程,方法,专业术语,测试用例设计,禅道管理工具,测试报告,缺陷管理理解软件工程的各类实际问题,理解系统测试的理论、方法与过程,熟练运用测试用例设计方法高效设计测试用例。

2、测试需求分析,测试方案设计,测试用例设计,测试项目实施,缺陷报告与测试报告,深入理解系统测试各个过程和关键环节,熟练完成系统测试项目。

3、SikuliX框架,UIAutomation框架,Selenium WebDriver框架,基础框架,Android应用,Monkey测试,Appium移动端测试框架,UIAutomator2移动端测试框架综合运用各类应用操作平台,完成各种自动化测试框架的学习和应用,深入理解GUI自动化测试技术及相应框架的测试开发。

4、Python单元测试框架,网络通信协议,HTTP与HTTPS协议,WebService与WebSocket协议,Python的接口测试库,PostMan与SoapUI接口测试工具通过对代码级接口测试和协议级接口测试的测试开发实战,灵活运用Python开发接口测试脚本,熟练运用各类接口测试工具。

5、性能测试原理,指标体系,场景设计,实施过程,JMeter工具应用,BeanShell脚本开发,Python+Locust性能测试框架深入理解性能测试技术体系和方法论,熟练运用JMeter性能测试工具和Locust性能测试框架实施对任意系统的性能测试。

第三阶段:综合实战项目

阶段目标:

1. 将软件测试和测试开发技术灵活运用于项目中。

2. 具备较强的测试开发能力,独立完成测试开发项目。

3. 综合运用软件测试技术,满足企业中高级人才需求。

4. 对所学技术有深入的理解并具备独立解决问题的能力。

知识点:

1、测试需求分析,同行评审,测试计划,测试方案,测试用例,配置管理,持续集成。通过对大型企业级应用系统的测试项目实战,强化理解系统测试项目的实施过程与技术细节。

2、接口测试设计与实施,回归测试,冒烟测试,安全性测试,RobotFramework框架应用,UI自动化实战将各类自动化测试技术结合项目实战演练,强化对自动化测试技术的运用,同时掌握更多的测试框架。

3、性能测试项目实战,LoadRunner性能测试工具,总结通过综合项目实战,将全套测试技术融入到项目中,强化学习效果和项目经验。

4、Python原生测试框架开发,包括Monkey,UI,图像识别,云测试平台,HTML测试报告,持续集成,KDT关键字驱动框架开发等原生技术实现通过大量的Python原生代码开发,深入理解自动化测试开发技术的底层实现原理,完全抛弃对工具的依赖,做到真正的测试开发技术。

5、基于测试框架的设计思路和实现手段,自主实现一套测试框架能够独立完成一套自动化测试框架,并能够直接用于实际项目中。

6、持续集成与Jenkins,安全性测试原理与工具,Python爬虫开发与Scrapy框架,提升软件测试其它类技术,增强知识面,提升竞争力,助力职业发展。

后期补充知识

1、算法进阶,图像处理,视频处理,加密解密,压缩算法。

2、UML统一建模语言、五种图、类图、类图详解、用例图、时序图。

3、Dubbo分布式开发框架,Oracle关系型数据库管理系统,MongoDB非关系型数据库管理系统。

4、大数据开发框架Hadoop/MapReduce/Spark。

5、Android与iOS的原生应用开发与WebApp开发。

6、OpenCV图像处理框架、TensorFlow深度学习框架,Lucene全文搜索引擎与中文分词框架Ik-Analyzer,视频处理算法与框架等。

对应每个阶段和知识点的免费学习视频正在收集整理中,敬请期待后续分享更新……

另外,咱们就来单独聊聊想要做好软件测试,除了掌握上面罗列的过硬的专业知识外,还需要具备哪些方面的知识技能呢?

PS:为了确保答案更加完善和对题主有所帮助,以下部分回答内容整理摘选自网络,因时间太久并经多人传播,未查询到根本出处,侵删。

1)软件开发技术

很多人认为做测试的没必要学习开发知识,我要是学开发知识就直接去做开发了。其实你绝对不能这样想,你会在测试的工作过程中慢慢发现软件开发和测试是有着千丝万缕的联系的,可以说没有软件开发就没有软件测试,而也因为有了软件测试,开发做出的产品才能被用户所接受,这之间是完全依赖的关系,当我们具备了开发的知识的时候就能更好的理解我们的产品,也能知道在哪个环节开发人员容易出错,知道在哪个逻辑结构、哪个接口或函数,甚至是从内存的管理机制上都可以找出问题。

并且如果我们要成为一名高级测试工程师,没有一点代码基础是完全不可能的,高级测试工程师一定是自动化或性能等的测试工程师,没有听过高级功能测试工程师,所以学习开发知识也是为我们以后的发展做铺垫,打好基础。

2)网络技术

软件史的发展是一个很漫长的过程,比如从一开始的字符界面发展到图形界面,单机版到网络互连等等,英特网的出现是计算机发展史上浓墨重彩的一笔,改变了人们的沟通方式,实现了全球互通,了解网络基础对于我们测试工作也是很重要的,我们的很多测试场景都极其依赖网络,而在网络部分也很容易出现Bug,所以我们要很重视这一点。

3)数据库技术

数据库技术绝对是测试人员必学的技术之一,对数据库的基本操作是软件测试人员必备的技能,并且还要懂得一点SQL注入的知识。

4)测试与质量保证技术

精通软件测试理论以及软件测试的流程,掌握软件测试每个阶段的文档编写技巧,掌握软件测试的策略与各种软件测试方法,掌握测试用例的设计方法。掌握单元测试、集成测试、确认测试、系统测试、验收测试等每个阶段的测试技术。软件质量保证知识、测试项目管理、测试团队建设知识也是必须要具备的。

如果你还想在软件测试这条路上走的更远,那么除此之外你还需要掌握自动化测试工具,了解自动化测试框架,代码能力也需要继续提升。

5)行业知识

目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都需要大量的测试,所以相关行业知识的储备也是必须的。

6)职场规范

职场礼仪是必须的,你是否适合某个企业,能否融入这个企业,基本的职场规范是要学习的。必要、有效的沟通也是软件测试人员所必须掌握的技巧。

你现在是大三,一切来得及。平时多看书和视频,在百度传课、腾讯课堂、网易云课堂、能力天空等学习平台搜索些免费学习资源(基础的课程都是不收费的,多的是这类资源),学习的同时注意实操,切记,切记,切记,不要纸上谈兵。另外,加一些技术交流群跟人家多请教,嘴甜一点,相信毕业之际找个实习工作应该不成问题。加油!


相关问题推荐

  • 回答 157

    虽然从事开发行业的女生越来越多,但女生的比例还是远比不上男生。软件测试的男女生比例则基本相当,软件测试要求细心、耐心,大部分女生也是比较适合学的。而且软件测试课程分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试。自动化测试...

  • 回答 121

    需要。很多人当初抱着测试不需要懂代码,才选择了这个行业,这个就要看对自己的职业定位了,是止步于月薪过万就可以了,还是往20k、30k去突破,如果这样的话,是肯定要会接口、会自动化,就必然要涉及到代码。如果真的看不懂代码,实际的测试后期的工作会出现...

  • 回答 91

    在我看来游戏开发挺难的,尤其像手游一类的还有网游,里面有很多的程序代码而且伤神又费力,不过也有女生在这方面做的很好的,如果你感兴趣,非常想学,可以试试

  • 回答 80

    软件测试专业现在很火热,很缺少人才,25岁学软件测试能学会,就业薪资也高,工作也相对轻松

  • 回答 11
    已采纳

    测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用...

  • 回答 15
    已采纳

    这个其实和接口测试的场景密不可分的,比如说:外部接口测试:    必须先接口测试通过了,才能执行功能测试子系统或者各个模块之间的联调测试:    必须各子系统后台代码完成,并提供接口才可以完成测试,一般来说都要求各子系统功能测试通过后再进行...

  • 回答 6
    已采纳

    这个是会因为公司的架构不同而不同的,并不是固定的,但是一般是会有专门的测试部门,或者叫质量保证部,也有可能是叫别的名字。

  • 回答 43
    已采纳

    移动端测试,包括App兼容性测dao试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等,课程主要学习的内容有:1、功能测试主要包括计算机基础、软件测试核心理论、Linux、数据库,学习目标是掌握软件测试核心理论,结合Linux、数据库等可实现移动端、w...

  • 回答 1

    标题  1. 首先要做一个标题党(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找  3. 缺陷的标题一定要描述在什么情况下发生了什么问...

  • 回答 1

    1、 缺陷报告可以记录缺陷2、可以对缺陷进行跟踪管理3、可以对缺陷报告进行分类 总结 统计

  • 回答 1

    1、缺陷编号(Defect ID),提交BUG的顺序。2、缺陷标题(summary),简明扼要的说明一下这个BUG。3、缺陷的发现者(DetectedBy) ,一般是自己。4、发现缺陷的日期(Detected on date),一般是当天。5、缺陷所属的模块(subject), 在测试哪个模块的时候发现的BUG...

  • 回答 1

    缺陷标题好的缺陷标题需要让相关人员一目了然,一般建议的格式是条件+失败。缺陷类型缺陷类型也是根据具体的项目而定的。但一般情况下分为功能、界面、建议。重现步骤重现步骤的编写规则可以参考测试用例中的操作步骤 ,一定要足够详细、说明清楚问题的操作顺...

  • 回答 1

    工具:NoSQLUnitJsTestDriverQTRunnerVenusFluintBuster.JSSQLUnitECUTQTestlibUnitilsgreatestDbUnitAbbotGoogleTest框架:JUnitMoqJSCaptureMockCUnitPyUnitCppUTestCppUnitzCUTcipra

  • 回答 1

    JunitTestNGGoogleTestpytestunittestJmockitJaCoCogcov、lcov、gcovrCoverage.pyEvoSuiteDiffblue Cover

  • 回答 1

      React Hooks测试库( Testing Library)是一个简单而完整的React Hooks测试工具。  React Hooks测试库让用户可以为React钩子创建简单的测试工具,自定义钩子的输入和检索输出,以处理在功能组件体内运行的情况。  使用React Hooks,用户不必为了测试而去担...

  • 回答 1

    1、单元测试注重代码逻辑,接口测试注重业务逻辑;2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;3、单元测试是白盒测试,接口测试是黑盒测试;4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实...

没有解决我的问题,去提问