正在考虑要不要学习软件测试的伙伴们,你们纠结的问题我来给答案啦
软件测试的定义:
1.软件测试的定义: 官方释义: a.用来促进鉴定软件的正确性、完整性、安全性和质量的过程...
2.软件质量的定义 软件质量:软件满足规定或潜在用户需求的能力。具体地说,软件质量是软件符合...
3.软件测试与软件质量的区别 质量保证(QA):主要工作是通过预防,检查与改进来保证软件质量...
4.软件测试的内容 根据测试定义,测试贯穿于整个软件生命周期中。在开发的不同阶段,需要测试不...
5.软件测试的目的 以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误...
测试是一个很重要的职位..对产品质量.至关重要..
在软件测试界有很多的相关书籍,其中就有一本经典著作《软件测试的艺术》。在这本书中,提到的关于软件测试的定义是:“程序测试是为了发现错误而执行的过程”。
整个定义在全业界都受到了广泛的认可。
软件测试的目的:
找错误,查缺陷:以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,避免软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
促改进,防错误:利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误。
测试是不可穷尽的,测试人员不可能发现系统中所有的缺陷,每个版本发布前也不可能保证所有已知的缺陷都会得到修复,所以反复测试是为了发现更多的缺陷,预防风险。
测试人员跟踪需求、验证质量、提交缺陷的同时也促进了开发人员技术的提升,在这个过程中牵扯到项目流程管理的问题,一个优秀的测试在这个过程中会建立一套完成的体系来提高整个团队的工作效率从而来降低开发成本进而把控产品质量,但需明确的是,软件的质量不只是测试人员来把关,最终质量好坏是整个团队的结果。
软件测试整体是验证功能的实现、可用性,检查程序的错误,最终目的是为了提高用户体验;在测试过程中,有一些缺陷级别低,解决与否都不影响用户使用,且缺陷存在本身用户也不会有感知,这时就需要从用户体验的角度去考量是否要定义该类问题为缺陷。
软件测试贯穿产品的生命周期:
有些不了解测试的,以为测试只是在软件准出验收即可,其实不然,软件测试贯穿整个产品的周期,只是在每个阶段,参与的角色不一样。我在前面的文章“软件测试架构师工作职责是什么呢?如何成为一个合格的架构师呢?”中提到的软件测试架构师,其实就是贯穿产品生命周期全部的角色。有兴趣的可以去看看。没错,测试是贯彻产品生命周期的所有环节的,从需求提出开始到测试计划、测试设计以及测试用例设计与评审及执行,最后进行回归测试。产品发布上线后跟踪用户使用的反馈,周而循环直到产品不在维护。
软件BUG无穷无尽,测试该怎么做?
软件测试是不可以无穷无尽地进行的,我们要知道我们不可能会发现软件中全部的问题。每一次新版本上线前也是不可能保证所有我们已经找到的缺陷全部会得到改正,所以反复测试来发现更多的问题,降低风险出现的概率。
哪些人适合做软件测试呢?对号入座!
工作积极主动
其实无论是什么行业,什么工作,态度决定成败。测试行业也是如此,工作态度,是评价一个测试人员最主要的方面,一个高水平的测试人员(指纯技术能力)如果没有一个好的工作态度,在测试团队中有时候不但不能对测试工作起到推动作用,有时候还起到阻碍作用,而一个愿意工作的测试人员,哪怕他的技术水平不高,人也不聪明,但对自己的工作认真负责,你告诉他的事情,他都可以认真去做,这个测试人员也会对测试工作起到很大的促进作用。
其实如上面所说,测试入门门槛并不高。因此态度很重要,这个也是各用人单位选人,用人的基础。这就是为什么软件测试喜欢要应届毕业生的原因。
所以说有效地利用工作时间,主动学习对一个人发展是很重要的。
认真,细心,不怕麻烦
测试工作是一个烦琐的工作,如果你不是认真、细心,不怕麻烦的人,建议你最好不要进入这个行业,否则,最后难受的肯定是你自己。
比如在交换机软件的接口测试中,会涉及很多在机房的动作操做,拔插网线,拔插业务板卡等,以及观测点的细致,端口的点灯正确性,接口的up/down。都需要细心观察不怕麻烦
测试人员的在做测试需求的时候,开发人员人员的写的系统需求报告中的每一个需求点都会在测试需求中成为几个测试需求点(你要验证正常情况,异常情况),有时候给人的感觉就像在玩排列组合的游戏,但这个游戏排列组合的情况实在太多了,如果你不够耐心,不够细心是很容易遗漏测试需求点的,而这些遗漏的地方往往是问题点(开发人员也容易忘记考虑这些地方,从而产生问题)。
另外测试工作输入的数据是一个很烦琐的事情。
举一个例子来说,一个日期合法性测试,很容易总结三、四百个测试数据,你想全部测试工作会是一个什么数量。
而更可怕的是,测试不是一次性的工作,经常需要做回归测试,所有烦琐的工作必须不断的重复,而在重复的时候测试人员往往会因为怕麻烦,减少测试用例数,造成测试的不全面。所以说认真、细心、不怕麻烦是一个好的测试必备的素质要求。
学习能力强,善于总结
不断的学习新技术,不断总结在实际工作遇到的问题,解决的方法,并把他们整理归纳,是一个测试人员提高自己的技术水平的最好的方法。
还有两点需要说明的是:
1、随着测试工作日益专业化,原来的低水平测试人员越来越不能满足测试的需要,测试工具的使用,测试理论的更新,新技术的应用都要求测试人员要不断提高自己的水平;
2、好的测试人员不但要理解测试技术,对被测试系统以及开发环境和工具以及系统架构都要很了解才能制定合理的测试方案,也就是说测试负责人不仅要了解测试技术,还要了解主流的开发技术、架构和工具(虽然不用成为专家),这一切都要测试人员不断的学习和总结。
掌握测试理论
开发工具在变,测试工具在变,被测试的系统在变,一切的东西都在变,那么作为一个测试人员最重要的是学习什么,个人认为是测试理论的学习。
概要设计文档,详细设计文档,需求文档是我们制定测试需求的标准,也是我们判断系统是否存在问题的标准,而概要设计文档,详细设计文档是我们制作测试用例的依据。
我们的划分等价类,边界值测试等基本测试的方法都需要这些文档的支持,当然每一种不同类型的测试,都有其特殊的地方,比如手机的测试就需要你对通讯理论有一定的了解(也就是系统环境),
所以说好的测试人员必须数量掌握测试理论。如果你认为你的测试理论已经不错了,那就回答一下性能测试,负载测试,压力测试有什么区别这个问题吧。
不清谈,而是冲锋在前
如何实施才是真正体现一个人水平,中国文人当初因为怕杀头,产生了一个极为可怕的现象就是什么光清议,而从不肯去实践。
这个不好的习惯我们现在叫做眼高手低。只有在解决实际问题的时候我们才能发现我们的解决方法有那些不足,会产生什么新的问题,从而不断改进我们的工作
所以个人认为好的测试人员总是那些冲锋在前的测试人员,在实际工作中才是提高功能能力的最好方法。
最后:福利
技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
金三银四面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
愿你我相遇,皆有所获! 如果对软件测试、接口测试、自动化测试、面试经验交流。添加群:644956177 免费领取软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!