电脑故障问答网

 找回密码
 立即注册
查看: 115|回复: 1

软件测试主要学什么?

[复制链接]

2

主题

4

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-11-27 19:04:06 | 显示全部楼层 |阅读模式
软件测试主要学什么?
    软件测试近年来在国内IT行业得到了快速的推广和发展,越来越多的人开始关注他,并想成为一名优秀的软件测试工程师。其实测试一职在国外的IT行业中早已是常态化和不可获取的技术岗位,早在20世纪80年代,软件测试就被重视起来,并逐步提出了系统化的测试流程和专门的测试岗位;在国内最早被提起是在2000年后,后来软件测试专业从培训机构开始进入校园,被列为软件工程专业的一个技术方向,并在各个高校得到迅速推广,可见从一开始对于软件测试的发展前景大家都是看好的。
那么软件测试到底是什么呢?
    测试是伴随着软件而生的,最早是被人们定义为发现软件缺陷的活动,跟调试是混在一起的。早期的软件都是小规模的,功能简单、复杂程度低、开发流程也没有形成系统、随意性强;而测试的目的主要是纠正已知的功能故障,测试步骤滞后、重复性错误较多,且测试工作大多都是开发人员做的,存在强烈的主观意识,缺乏对错误的敏锐感知,最终导致产品的质量得不到保障,用户需求得不到满足。
    到20世纪80年代初,大型软件系统开始兴起,软件开发的复杂程度提升、用户要求越来越高,对于软件的质量也是高要求高标准。软件开发流程的开始从混乱无序逐步向系统化、结构化过渡,软件测试一词开始不断出现,测试也不在是简单的反推错误(bug)的过程,而是将他作为软件的质量保障(SQA),并有了行业标准(IEEE/ANSI)。
    1983年IEEE提出的软件工程术语中给软件测试下的定义是:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。定义规定了测试的目的是为了检验软件系统是否满足需求,他不在是一个简单的过程或者开发完成后的后期工作,而是伴随着整个开发流程的,与开发融为一体,成为一个独立的技术专业,需要专业的技术人才来完成的工作。
软件测试主要学什么
    测试与开发是密不可分的,从项目立项、项目设计、开发到最后上线,测试工程师全程参与项目的把控、管理、优化。


一名合格的全栈测试工程师需要掌握的四个阶段技能如下:
第一阶段:测试环境搭建 项目实战 、测试理论、Linux操作系统、项目管理
    主要掌握测试核心理论、功能测试常用方法及项目管理常用工具。能够独立负责测试项目管理及功能测试在项目管理及功能测试领域独当一面,成为合格的功能测试工程师。


第二阶段:web项目测试


第三阶段:自动化测试、性能测试、移动端测试


第四阶段:企业级项目实战


项目实战贯穿整个技术阶段,项目案例多方向覆盖


软件测试的工作内容
    软件测试的实际工作流程:首先是项目立项,用户需求分析——制定测试计划、测试数据和测试用例——搭建测试环境、执行测试用例——提交测试报告——跟踪bug修改情况、反复进行测试和修改——生成测试总结和报告——项目交付上线。
    经典的W测试开发模型能基本能好的概括测试和开发的关系,也能体现测试在整个项目开发中的流程和重要性。


    测试工具的演变:软件测试发展的前期主要是人工测试为主,测试的成本高、耗费的时间长,效率低。到大型软件开发阶段,传统的手动测试满足不了需求,人们开始研发测试小工具辅助测试,发展到现在的商业化测试工具:如捕获/回放工具、Web测试工具、性能测试工具、测试管理工具、代码测试工具等等。
    到达自动化测试阶段,测试工具的盛行为软件测试人员减轻了大量的重复和繁琐的工作,测试效率更高。随着敏捷开发的提出,以预防为主成为当下软件测试的主流思想之一,测试驱动开发、自动化的持续集成和测试等技术在逐步的广泛运用,人们更倾向于事先测试来保证代码的正确性。
软件测试的发展前景和市场需求
软件测试发展的五个阶段
1、 以调试为主的软件测试
在20世纪50年代,随着计算机的诞生,利用计算机完成复杂、快速计算的计算机编程也随之出现。这时的需求和程序本身也远远没有现在这么复杂多变,但是已经有人在完成编程之后开始考虑“怎么证明程序满足了需求?”的问题。这时的测试还没有明确的概念,主要是以调试为主,验证程序是否满足了需求。
2.以证明为主的软件测试
很快在1957年,Charles Baker在《软件测试发展》一书中就提出测试的概念,并且对调试和测试进行了区分:
1)调试(Debug),确保程序做了程序员想让它做的事情。
2)测试(Testing),确保程序解决了它该解决的问题。
这时的计算机软件数量、成本和复杂性都大幅度提升,测试的重要性也大大增强,测试的目不仅仅是验证,而且要确认软件是满足需求的,也就是我们常说的“做了正确的事情”。
3.以破坏为主的软件测试
1979年,C.J.Myers在《软件测试之艺术》一书中给出了软件测试的经典定义:
测试是为发现错误而执行程序的过程。
这个定义说明测试不仅要证明软件做了正确的事情,也要保证它没做不该做的事情。
所以好的测试用例是发现迄今为止尚未发现的错误的测试用例;成功的测试是发现了至今为止尚未发现的错误的测试。
这个阶段的测试的目的主要是找出软件中潜在的错误,所以说它是以破坏为主。这也使得软件测试和软件开发独立开来,测试需要更为专业的人员进行,毕竟开发人员在心理上总是不愿意给自己开发的软件找错。
4.以评估为主的软件测试
在1983年,出现了V&V(验证和确认)理论,测试被应用在整个软件生命周期中。同时IEEE提出的软件测试新的定义:“使用人工或自动手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。
软件测试以及测试工具在这个时期得到了快速的发展。
5.以预防为主的软件测试
以预防为主是当下软件测试的主流思想之一。
随着敏捷开发被提出以来,测试驱动开发、自动化的持续集成和测试等技术的应用,都体现出人们不再满足与编码后对程序的验证和确认,而是事先就通过测试来保证编写的代码的正确性。
本段引用——CSDN博主「软件测试高质量人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Maggie97/article/details/119890084
    软件测试在国内发展历程从萌芽阶段到现在的广泛运用,也不过20年左右,国内软件测试人才缺口依然很大。首先测试专业整体还是处于不断上升的阶段,目前国内测试与开发配比在5:1,国外基本是2:1或者1:1;其次结合招聘网数据统计,北上广深招聘岗位需求量达到了27.5k,行业平均薪资在10k—15k,软件测试是一个非常看重经验的岗位,做得越久越吃香。
    如此高薪又高需求的岗位成为很多人的职业首选,于是很多培训机构开设软件测试专业,比如课工场,培训课程体系和技术点都贴近企业实际需求,基本是能满足企业对于测试岗位的需求;近年来软件测试也正式加入了高校专业,形成更加系统化的教育输出。




    如果你想成为一名优秀的软件测试工程师,除了掌握岗位需要的技能和工具以外;还需要有沟通表达的能力和较高的情商,测试岗位会接触到很多人,开发人员、项目经理、客户经理等等,良好的为人处世能力能给你的工作带来更多便利。
    最后,虽然软件测试在不了解他的人眼里是个轻松没技术含量的工作,实际上他要求很高,不仅要对行业有所了解,对自身技能的要求,还要懂开发技术,知道bug为什么会出现,才能提问题、会提问题,不会让开发觉得你不懂技术,需要有较强的抗压能力。
回复

使用道具 举报

0

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2025-3-26 18:37:03 | 显示全部楼层
看起来好像不错的样子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云顶设计嘉兴有限公司模板设计.

免责声明:本站上数据均为演示站数据,如购买模板可以上DISCUZ应用中心购买,欢迎惠顾.

云顶官方站点:云顶设计 模板原创设计:云顶模板   Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表