目前,在IT行业中测试的职位数量仅次于开发,可以说是第二大技术就业岗位。然而许多人对测试师工作的理解还停留在,只需要像用户一样使用产品,然后发现有问题提交报告就行了。其实这是极其不准确的,软件测试师在测试产品前后通常有很多工作要做。下面我们就一起来看看软件测试师的工作内容以及工作流程。
软件测试工作内容
软件测试岗位具体是做什么的?软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说就是找BUG。检查软件产品是否符合用户的需求,检查程序的业务逻辑和代码逻辑,提高产品的易用性。
检查软件产品是否符合用户的需求。如果用户提出的各种功能和需求,产品没有满足的话,也就根本提不上交付产品了,因为根本达不到交付程度,所以测试人员的工作非常必要。
检查程序的业务逻辑和代码逻辑。每个人对一件事的理解不同,同理不同人员对需求的理解可能会存在差异,所以适当的时候要检查下代码是否有业务逻辑错误和代码逻辑错误,当然达不到检测程序的,可以通过手工测试来做。
提高产品的易用性。若是一个软件产品不好用,用户的学习成本太高,那么产品的接受满意度就会下降,更别提产品的市场占有率了。
一些其他的错误。凡是导致软件产品不能正常使用的,功能被阻塞的,都是要提交bug的,让程序员再进行一下修改和完善。
软件测试怎么找bug?
那方法可真是不少,可以分多个维度。按照测试过程中程序执行状态可以分为静态测试和动态测试。静态测试只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。
直白点概括就是:程序不运行,看看面相哪里有毛病。动态测试则是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性等。
而根据具体实现算法细节和系统内部结构的相关情况则分为黑盒测试、白盒测试和灰盒测试。黑盒测试,就是将被测程序当成一个无法打开的黑盒子,测试人员在不考虑内部结构和特性的条件下,检查程序功能是否能够按照规范说明准确无误地运行。
简单来讲就是:这是一道填空题,只看结果,不看过程。白盒测试,与黑盒测试相对,主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路是否能够正常工作。
该怎么学习软件测试呢?分为这几个部分,学习测试基础(重中之重)、脚本语言(比如Python或其他语言)、软件测试工具、计算机硬件知识、数据库测试,然后就是正式踏入软件测试之前的最后进行项目实战。每一步都不能落下,想要系统学习都是需要花下时间和精力。
软件测试工作流程
1、需求分析阶段
当我们需要确定产品功能的时候,通常是产品经理和开发经理讨论制定需求细节,开发人员和测试人员参与评审。比如要做一个K12在线教育系统,需要具体实现哪些具体功能,和功能的细节需求。功能要一一列出来,比如:直播课程,录播课程,学生老师注册,学生考试等等。每个功能点要不断细化,直到可以给开发人员没有什么疑问,可以着手开发工作。比如学生考试功能,考试功能包括哪些子功能?创建试卷、学生答题、批改方式、结果呈现、数据分析等等。每个子功能还要继续细化。试卷要包含多少题?题目是系统自动选择还是人工挑选?系统自动选择题目的时候,注意根据哪些要素?考完是自动批改吗?
这个阶段测试人员需要做如下事情:评审需求文档,通过评审了解需求,甚至参与需求分析讨论,看看需求有没有错误、矛盾、遗漏的地方。整理测试需求,就是通过需求文档的评审分析(产品、开发人员往往会写的比较乱,不全面),从测试的角度进行需求和场景的分类。其实这是更加具体的、有条理的需求文档。相当于测试用例的提纲,为后续编写测试用例准备测试需求。
2、设计阶段
开发工程师不是一上来就编码的,需求阶段只是做了高层需求的设计,完成这个高层需求,还需要开发人员进行系统设计、子系统设计、接口设计等。比如,要开发Web网站,需要开发人员根据需求文档,设计系统的前端和后端的信息交互接口等。通常也要设计文档,这些是开发编码的依据。
这个阶段,测试人员根据开发人员的设计文档,和开发人员多交流,得知产品的细节功能。包括系统的细节功能、界面原型,这些是写测试用例的依据。有条件的,甚至应该了解系统内部设计,比如分为一个大的子系统,之间接口,如何通讯。这对写出更有针对性的测试用例非常有帮助。流程比较细致的企业,测试人员也会参与设计文档的评审,甚至代码评审。搞清楚产品设计细节(甚至一部分实现细节)后,测试团队就应该制定写测试计划,编写测试用例。
3、开发阶段
开发阶段当然就是开发工程师(码农们)加班加点、没日没夜的根据设计开发了。这时,测试工程师不要闲着,有些事情可以做。比如下面的工作流程:
(1)评审测试用例;
(2)准备测试工具、学习使用测试工具;
(3)准备测试环境;
(4)和开发人员保持沟通,因为开发过程中开发人员随时可能推翻原来的设计,修改功能,你要相应改变测试用例。
4、发布测试版本阶段
到了终于发布测试版本的阶段,软件测试师的主要工作,当然就是根据前面写的测试用例进行测试了。测试发现的问题(bug)提交的问题跟踪系统,比如:BugZilla、JIRA之类。当一轮测试结束后,会发现一批bug,当然开发人员需要修改这些bug。并不是所有的bug都会立刻修改,根据发现bug的严重程度和出现几率,开发人员确定优先级,修复一批bug。修改后会发布一个新的测试版本。测试人员需要根据这个新的测试版本进行测试,这次测试有两个目的,一是验证开发工程师修复的bug正确修复了,二是确保在修复的过程中没有引入其他bug。
5、自动化测试阶段
一个复杂的产品,要经过很多轮的回归测试,才能最终发布。每轮回归都有大量的测试用例需要重测,防止修复bug的过程中引入新的bug。这样的反复测试,非常耗费测试工程师的精力。一盒经典的解决方法,就是使用自动化测试系统,代替人工测试。有经验的测试经理会在合适的时机,组件自动化团队,开发自动化系统。并且合理的分批次挑选用例,进行自动化,从而有效的提高测试效率。
以上就是软件测试师的具体工作流程介绍,在产品需求分析、设计、开发、上线运营各个阶段,软件测试师都有相应的工作要做。而一个合格的软件测试师,首先要理解产品各个阶段的总体目标,然后明白自己各阶段应该做什么,这样才能做好本职工作。
随着信息产业的迅猛发展,IT行业已经赶超金融业成为中国平均薪水最高的行业,并且以每年20%的速度递增。
测试行业作为IT公司内部必不可少的重要组成部分,是推动软件质量提升的关键环节,甚至被誉为是软件质量把关的最后的一道生命防线,因此这一岗位也越来越受到企业的重视。
随着软件测试人才缺口的扩大,其岗位的薪资待遇和发展前景也处于上升空间。
根据第三方数据平台统计,北京软件测试工程师平均月薪14.3K,其中拿 10K-15K 工资的占比最多,达 35.2% 。
软件测试人员遍布于数字化转型中的各行各业:
△ 数据来源于网络,如侵删
并且,软件测试岗位的平均薪资,也是年年上涨
在北京,软件测试工程师的平均薪资高达16.4k,持续精进技术的话,更是可以达到50k!并且软件测试相关的薪资,即使是在疫情期间,也是年年上涨!
想要入行软件测试的小伙伴们,此时正是好时机~
软件测试学习路线图详细介绍
第一阶段 功能测试
学前导读:学习本阶段内容,可全流程功能测试解决方案、Web自动化测试解决方案、数据分离解决方案、自动化测试报告解决方案、日志收集解决方案。
1.2022全网首发、最适合新手的软件测入门到实战教程上线啦!
真正的从入门到精通,包含了基础+项目实战,所有案例实战操作均图文并茂,真正实现一套全通关!
软件测试2022最新视频教程,软件测试基础入门到项目实战(涵盖软件测试基础+黑马头条项目实战)
2.软件测试入门到精通
软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。本课程共5天,针对零基础小白录制。零基础入门的必学课。
软件测试从入门到精通_软件测试基础教程
3. Linux系统2天快速入门
本视频包含Linux操作系统介绍、Linux的常用命令、vi编辑器。学习掌握本阶段内容,可具备Linux项目搭建能力。
Linux系统操作教程2天快速入门linux项目搭建
4. 软件测试MySQL数据库知识精讲+项目实战
本视频包含数据安装,数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练。学习本课程内容,可具备数据库校验能力;还可以快速、规范的掌握数据库增删改查操作。
软件测试工程师必备MySQL数据库,mysql系统精讲+课后练习
第二阶段 Python编程
学前导读:学习本阶段内容,可掌握Python语法, 具备编程能力; 能建立编程思维以及面向对象程序设计思想; 能掌握UnitTest框架管理测试用例。
10天玩转Python软件测试
学习本阶段内容,可掌握Python语法, 具备编程能力; 能建立编程思维以及面向对象程序设计思想; 能掌握UnitTest框架管理测试用例。
Python自动测试教程,python从基础到UnitTest框架管理测试用例
第三阶段 UI自动化
学前导读:ui自动化大体分为web自动化和App自动化,在自动化测试领域中占比很大,经常使用。
1. 软件测试web自动化测试精讲与实战
本课程将教会大家搭建Web自动化和移动自动化测试环境;掌握Web自动化测试流程和脚本编写;掌握移动自动化测试中元素的定位方法、元素操作和手势操作;熟练掌握ADB工具的使用; 掌握PO模式的设计思想,并能够对页面进行封装;掌握数据驱动的实现方式; 能够在实际项目灵活运用自动化的相关技术。
软件测试web自动化测试,Web自动化流程精讲和移动自动化测试环境
2.零基础入门移动自动化——Appium框架
本课程会详细讲解Appium框架,Appium是一个开源的、跨平台的自动化测试框架,该框架适用于Native Application、Mobile Web Application或Hybrid Application的自动化测试。
零基础入门移动自动化测试——Appium框架
3. 轻松教你使用Appium进行IOS真机自动化测试
本套课程,将环境安装的步骤和注意事项呈现给学员,模拟器到真机实操,都进行演示讲解。内容丰富,生动形象,学完即可完成IOS端环境安装及实操。
轻松教你使用Appium进行IOS真机自动化测试
第四阶段 接口自动化
学前导读:接口测试是所有自动化测试应用频率最高部分。此阶段共分成14个部分进行详讲。
接口测试精讲+传智健康实战教程
本教程会涉及HTTP,Postman,Pymysql,requests库,集成UnitTes,Dubbo等诸多工具,最后用传智健康项目进行本阶段项目实战。
4天玩转接口测试,接口重点全解析+传智健康项目实战(包含requests库,集成UnitTes,Dubbo等诸多工具)
第五阶段 性能测试
学前导读:性能测试属于高级测试范畴,对于薪资的提升帮助很大,本阶段视频讲解性能测试环境搭建,JMeter工具的使用,性能测试监控、分析和调优方法。
4天快速入门性能测试
本视频通过性能测试基础理论及JMeter工具的学习;通过轻商城项目实战,带学员掌握性能测试需求分析、性能测试计划、测试用例设计、测试脚本开发、性能监控、性能分析和调优、性能测试报告总结。
性能测试全套教程,4天快速入门性能测试+项目商城实战(含JMeter工具等)
第六阶段 综合项目强化
学前导读:通过微信小程序、金融项目两个实战项目综合强化功能测试、接口测试、性能测试。
1. 微信小程序自动化测试实战
本视频涵盖:微信小程序基础介绍、Ego微商项目介绍、Ego微商项目部署、Ego微商小程序计划篇、Ego微商小程序设计篇、Ego微商小程序执行总结篇、Ego微商小程序接口测试篇、持续集成。
软件测试微信小程序自动化测试实战
2. 软件测试4天搞定金融项目
本视频讲解金融项目功能测试解决方案、真实项目测试体验解决方案、复杂业务接口测试解决方案 接口加解密测试解决方案、数据分离解决方案 持续集成解决方案、自动化测试报告解决方案、高并发测试解决方案。
软件测试4天快速搞定金融项目功能测试实战教程