让新人不再对行业一无所知,轻松进入软件测试行业当中!

我从事软件测试已经 7 年了。我现在是慧乐课堂的一名技术老师。我教过成千上万的学生。我通常去软件测试论坛、贴吧、博客等了解软件测试。

我不止一次看到过:对软件测试行业不太了解的新人经常会问一些无关紧要的问题。作为软件测试行业的从业者,因为对测试行业有一定的了解,具备一定的知识和技术,所以对其中的一些早就有所了解。问题是无法解决或无用的。

本文的目的是帮助新测试人员更好地了解软件测试行业及其前景。让新人不再对行业一无所知,轻松进入软件测试行业。

一、软件测试工程师的职责

随着科技的发展,各种应用、各种App应运而生!早期,这些应用只供开发者、产品和部分用户使用,并给出相应的修改意见。在他们觉得OK后,他们就被发射了。它们可以直接在互联网上使用,也可以在一些应用下载平台上使用,尚未标准化。软件测试!这些软件或多或少都会有一些bug,而这些bug可能是功能、兼容性、性能等方面的问题!

为了改善软件质量低下的问题,软件测试行业才刚刚开始受到关注!软件测试的目的是提高软件质量,给用户更好的体验!

软件测试工程师了解产品的功能需求,对其进行测试,检查软件是否存在缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,并编写相应的测试规格。和专门的测试用例人员。

软件测试工程师职责:

1、根据需求文档和设计文档编写测试用例;

2、完成产品集成测试和系统测试;

3、根据测试计划,搭建测试环境;

4、 根据测试用例进行人工测试,反馈并跟踪产品Bug和用例缺陷;

5、测试工具/系统的研究与应用;

二、软件测试行业的特点

身边有很多同学转行做软件测试,我也经常问同学为什么是软件测试工程师?我在面试的时候也经常问这个问题,答案大致可以分为两类:

我很佩服喜欢测试工作的同事。我也加入了测试大家庭,因为我喜欢电脑,而且测试门槛低。后来,我喜欢享受考试带来的成就感和自己定位问题的快乐。

我简单整理了几个软件测试专业的特点,供大家参考。

三、软件测试开发

从广义上讲,测试人员的发展是有划分的,即不仅仅局限于测试自己的工作,大致有六大类方向。三个核心技能要素决定了不同的发展方向,即:

三个核心要素:业务开发、管理开发和测试开发。

业务发展

业务发展带来的是对质量和速度的追求,这是整个行业发展的主线。

业务发展的需要影响了产品的开发和测试。它像资本家一样贪婪,始终在追求突破瓶颈,追求更快更好的发展。

它决定了许多公司的生死和许多行业工程师的未来。研发、产品和质量保证都服务于业务。

技术发展

技术是生产力的重要组成部分,技术的发展正在加速。每一次质变都会带来一些重大的变化,而技术的成熟度决定了测试行业能取得多大的成就。作为一名测试工程师,您需要善于使用当前的技术堆栈来创建满足当前需求的解决方案。

管理发展

公司主体在追求简单高效的管理上从未停下脚步。技术和工具的每一步进步,都意味着组织沟通能力的增强。管理方向会逐渐扁平化,高级管理人员会越来越少,一线管理人员会越来越多。

作为检测行业的一个尴尬点,优质部门模式的消失,让检测行业的发展遇到了天花板。

如果不能把研发和产品拿下来,那么考验行业发展的人就无法得到很好的提拔。

根据对三大核心技能的掌握程度以及它们之间的交集,大致可以分为6类:

它只代表主要方向的具体方向。方向/岗位之间不存在上下级标识,不标明层级与层级关系。

四、软件测试的过程

不管是开发还是测试,都有需求端。通过与需求方沟通,整合信息,制定需求规范!需求说明书:指用户对软件功能、性能、兼容性、UI等方的需求文字!开发 根据需求规范开发和设计程序!但是,有些公司不会提供需求规范。大多数公司采用会议的形式和设计模型作为这部分的要求。这样做的目的是要求不明确,沟通成本太高!

下面是一个我觉得比较严谨或者规范的测试流程图:

五、软件测试分类

按方法分类:

按方向排序:

按阶段分类:

按对象分类:

按状态排序:

其他:

六、软件测试简介

1、软件测试的生命周期

测试需求分析–>测试设计–>测试计划–>测试执行–>质量评估

2、软件测试基础

测试基础是软件测试中最重要的部分。只要你在做测试,不管是什么测试,你都必须学习测试的基础知识和理论知识。

描述用于促进识别软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是实际输出和预期输出之间的审查或比较过程。

软件测试的经典定义是在特定条件下运行程序以发现程序错误、衡量软件质量并评估其是否满足设计要求的过程。

软件测试是使用手动或自动方式运行或测量软件系统的过程,目的是验证它是否满足指定的要求或澄清预期结果与实际结果之间的差异。

从是否关心软件的内部结构和具体实现的角度来看,测试方法主要包括白盒测试和黑盒测试。白盒测试方法主要包括代码检查法、静态结构分析法、静态质量测量法、逻辑覆盖法、基本路径测试法、领域测试、符号测试、路径覆盖和程序变异。黑盒测试方法主要包括等价类划分法、边值分析法、错误推测法、因果图法、决策表驱动法、正交实验设计法、功能图法、情景法等。

从是否执行程序来看,测试方法可以分为静态测试和动态测试。静态测试包括代码检查、静态结构分析、代码质量测量等。动态测试包括三个部分:构建测试实例、执行程序和分析程序输出。

软件项目的测试计划是描述软件测试的目的、范围、方法和重点的文档。编写测试计划文档是验证软件产品可接受性的有用方法。

一个好的测试计划可以做到以下几点:

将测试工作与整体开发工作相结合;资源和变化提前作为可管理的风险。

测试策略是测试计划的一部分。

测试计划是从测试的角度分析或分解需求,并在方向上指定如何测试。分析结果是测试点和测试方法。

测试计划包括:

引言(包括a,写作目的;b,目标读者;c,参考资料);测试范围;测试策略(根据不同的测试类型考虑不同的测试方法) 整体写作思路:

黑盒测试用例(首选)+白盒测试用例(补充)=完整测试用例

整体写作策略:

编写测试用例,常用的四种方法基本够用,等价类、边界值法、正交实验法、误差推断法,辅以场景测试法、需求/设计转换法、探索性测试法,可以应付测试大多数产品。个别产品也需要在某个点上进行细化和扩展,需要根据具体情况进行讨论。

产品规范规定了要做的事情,但软件没有实现。例如,产品规范要求计算器实现加减乘除功能。结果计算器不能进行除法运算如何用vb做计算器,这是一个BUG。产品说明书规定不能做,但软件已经实现的,例如:产品说明书要求计算器不能实现除加减乘加以外的其他功能,制成的计算器不能只做加减法,乘除运算,还可以进行幂运算或者三角函数运算,这也是一个BUG。该软件没有提及产品手册中的内容。例如,产品手册要求计算器实现加减乘除功能,生成的计算器还可以求幂,这也是个bug。产品手册中没有提到,但这是必须要做的事情,但软件没有实现。产品说明书要求计算器实现加减乘除功能,但没有提到即使在电量很低的情况下也能正常使用。并且当电池电量很低时计算器会计算错误,这也是一个错误。软件难懂,难上手,超级慢,测试人员从终端用户角度看到的问题普遍但不正确,产品说明书要求计算器实现加法,

致命bug:系统不能完全满足要求,系统停止运行,系统重要部分无法运行,系统崩溃或挂起等,导致系统无法正常运行。

严重bug:严重影响系统要求或基本功能的实现,没有办法纠正(重装或重启软件不是纠正措施)。使系统不稳定,或破坏数据,或产生错误结果,或某些功能无法执行,是日常操作中经常出现或非常规操作中无法避免的主要问题,系统不能满足主要业务需求、性能、功能或可用性严重降低。

一般bug:系统能满足业务需求,系统性能或响应速度慢,产生错误的中间结果但不影响最终结果。

低级bug:使操作者操作不便或麻烦,但不影响工作功能或重要功能的执行。界面拼写错误或用户使用不便等小问题或需要改进的问题

缺陷编号:缺陷的唯一标识符 缺陷状态:缺陷跟踪过程的进度 缺陷标题:缺陷概述,描述问题的性质 再现步骤:再现缺陷的步骤的分步描述缺陷严重性:缺陷对软件系统的影响程度 优先级:修复缺陷的重要性或紧迫性

提交bug – 分配bug – 处理bug – 验证bug – 关闭bug

新建、确认、解决、重新验证、关闭、重新打开

当前活动以线性方式接受先前活动的工作结果。工作结果需要验证,自上而下不可逆,效率低,发现错误必须翻车重做

计划 – → 需求分析 → 设计 → 编码 → 测试 → 运维

它的作用:瀑布模型是所有其他模型的基本框架,在软件工程中发挥着重要作用。

瀑布模型是一种线性顺序软件开发模型,因为瀑布模型的每个阶段只执行一次。

在瀑布模型中,测试阶段是在软件实现之后,这意味着在代码完成后有足够的时间留给测试活动,否则会导致测试不充分,直接把缺陷留给客户。

V 模型是著名的瀑布模型的改进。左边是开发组,右边是测试组。有这样的一一对应。

W 模型是从 V 模型演变而来的。实际上,开发是V,测试是并行V。与V模型相比,W模型增加了软件各个开发阶段应同时进行的验证和确认活动。平行关系的发展。

w模型是一起开发和测试的,测试也是用户要求的,所以不需要等开发完成再测试,所以在测试设计的时候,不能只参考外形设计开发,还要参考前面的需求分析等。

策划→风险分析→实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试)→客户评估

特征:

螺旋模型将瀑布模型与快速原型模型相结合如何用vb做计算器,强调了其他模型所忽略的风险分析。每个螺旋包含4个步骤:计划、风险分析、实施工程和客户评估(相当于一个渐进的螺旋包含这四个步骤)

PDCA循环的含义是将质量管理分为四个阶段,即Plan(计划)、Do(执行)、Check(检查)和Act(处理)。在质量管理活动中,要求制定计划,实施计划,检查实施效果。然后,成功的被纳入标准,不成功的留给下一个循环去解决。这种工作方法是质量管理的基本方法,也是企业管理各项工作的一般规律。

1、P(Plan)计划,包括政策和目标的确定,以及活动计划的制定。

2、D(Do)执行,根据已知信息,设计具体的方法、方案和计划布局;然后根据设计和布局,进行具体操作,实现计划的内容。

3、C(检查)检查,总结执行计划的结果,分清对错,明确效果,找出问题所在。

4、A(法)处理,对总结检查结果的处理,对成功经验的肯定和规范;总结失败的教训并引起注意。对于未解决的问题,应提交到下一个 PDCA 周期解决。

以上四个过程并不是一次操作就结束,而是一次又一次地循环往复。一个循环完成后,解决了一些问题,未解决的问题进入下一个循环,这样台阶就上去了。

5个W开头的英文单词和2个H开头的英文单词用来提问、寻找解决问题的线索、寻找创造性的想法、设计思路,从而想出新的发明项目,称为5W2H法。

(1)什么 – 它是什么?目的是什么?它有什么作用?

(2)WHY – 为什么要这样做?有可能不这样做吗?有其他选择吗?

(3)谁 – 谁?谁做的?

(4)WHEN——什么时候?什么时候做?什么时候是最好的时间?

(5)在哪里 – 在哪里?在哪里做?

(6)HOW – 怎么做?怎么提高效率?怎么实现?方法是什么?

(7)HOW MUCH – 多少?到什么程度?数量是多少?质量水平是多少?成本输出是多少?

3、工具学习

测试管理工具:TestDirector(大而全)、jira(简单易用)、质量中心(复杂、收费)、禅道(简单易用)、bugzilla(功能简单)、svn(代码和文档管理) tools)、vss 类似svn、git,和svn一样,但是多分支管理比svn好,Note(大而全,成本太贵)、CQ(ClearQuest-IBM产品-大而全);

接口测试工具:Jmeter(开源)、postman、SoapUI

性能测试工具:loadrunner,大而全,学习掌握还是有点难度,重量级工具

C/S自动化工具:qtp(录音回放和脚本编辑),使用vb语言,winrunner IBM产品与qtp类似,autoit在窗口定位方面非常好;

白盒测试工具:jtest java语言单元测试框架、JUnit验证java工具、cppunit跨平台c++单元测试框架、gtest跨平台c++单元测试框架、PhpUnit Php、BoundsChecker C++、Delphi API和OLE错误检查、Pointer和泄漏错误检查、内存错误检查、TrueTime C++、Java、Visual Basic 代码效率检查、组件性能分析

持续集成工具:jenkins、Hudson

应用自动化工具:appium 这个应该算是最流行的基于app的自动化测试框架,instruments ios平台下的自动化测试框架,java语言编写,uiautomator安卓自动化测试框架,基本支持安卓所有事件操作,Monkey安卓的自带测试工具Monkey Runner,Monkey的改进版,支持自己编写脚本测试,使用Python语言,国外Android自动化测试框架Robotium,使用比较简单;

Web安全测试工具:appscan,一个用的比较多的工具

如果是刚入门,需要学习工具和知识点,按顺序学习即可。

4、代码学习

关于编程语言的选择,我推荐Java或者python。还有一个数据库必须掌握!

学习一门编程语言,但不如开发那么深入。比如Java,你只需要学习JavaSE的部分就够了。python也是如此,只要完成基础。

以上就是软件测试初学者需要掌握的知识和技能工具。初级测试肯定没有问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论