小白成长建议(4) -从头开始-云层

测试入门

从这里开始我们正式来谈谈关于具体的测试技术,我先列一下目录,以便大家知道后面几章的内容:

1.测试基础及测试方法

2.缺陷管理

3.用例管理

4.配置管理

5.需求管理

6.单元测试

7.集成测试

8.系统测试

9.自动化测试

10.性能测试

这些是我觉得比较基本所需要知道的测试技术,而相关的一些开发、数据库、环境搭建等都应该在这之前基本具备的,我也不专门写点啥来解释了。

首先我们先来谈一下所谓的测试基础和方法。

测试基础

其实一说到测试基础能谈的东西特别多,但是理论性又很强,让我消化了以后再给大家去理解也未必能精简成什么样子。那么我先来谈谈一些基本的基础吧:

  1. 到底测试是什么

在我看来测试是一个根据某种规则进行校验的工作,这个工作需要:

a懂业务来设计校验规则

b懂技术能有效的执行校验规则

而这个工作的目标只是为了证明软件能够达到一定的质量。

在这里我想再强调一下,不要总觉得测试应该怎么做,测试的工作就是证明你测试过的内容是正确的,如果你能够做足够好的测试(所谓的覆盖率很高),那么客户能够运行到的非测试点就会少,那么遇到的问题也会少。

2. 测试的价值是什么

最大的价值就是预防吧,大家可以这样理解,如果当软件运行的时候出现了错误,它所带来的后果可能会被放的很大。但是这个放大的影响和所对应的业务有关,这也是为啥某些行业的测试工作不太被重视,而某些会被非常重视。

大家可能会对吃婴儿奶粉,早教有很强的认同感,这其实也是质量预防。但是对于某些东西来说又非常的不重视,这就是现状。

或者从另一方面来说,测试对于企业的价值,体现在省钱与赚钱上。省钱不言而喻,不论从上线后修复Bug的成本或大型项目回归的人力成本来说,测试技术的引入能够帮公司一定程度上降低这些成本。赚钱上来说么,我觉得现在测试外包的崛起现象,就能很好的诠释这个问题了。

3. 测试周期

测试的周期其实又涉及到模型,基本上现在的主流就是敏捷和VV,瀑布也有,简单来说就是瀑布验证太后面,一切都要靠前面做的好后面才有意义,就和造房子一样,你最后检验也没啥事情可以做了,房子都修好了。而VV模型呢是瀑布的改良吧,就是全程监控,设计图纸出来要评审测试,水泥和钢筋需要评审测试,这样做更好点。敏捷的做法就有点自己装修了,真的是做一点看看再做一点。

总的来说周期包含:

需求来源->需求分析整理->需求规格说明->研发需求->概要设计详细设计->开发->单元测试->集成测试->系统测试->验收及维护

大概这样一些阶段,而对于测试来说应该都争取参与并且把关。

一般测试人员会参与项目启动会议,从那一刻起,测试活动也已经启动了。在前期介入需求的提取工作,比后期根据需求文档熟悉需求要好,同时测试人员可以根据自身对业务及系统的了解程度,对需求及设计提出自身的看法。测试的价值在项目前期也就得到了体现。

4. 测试要素

对于测试来说是受人,流程和工具三个要素影响的。人是最关键的要素,一个优秀的人可以设置合理的流程来安排工作,而工具的存在可以提高人的工作效率。

所以首先不要唯工具论,你掌握一个工具并不代表你怎么厉害,而是要进一步明白工具帮你解决了什么问题。

通常我们会先通过熟悉工具来接触测试,但对我们真正有用的是,工具带给我们的思想。就像QC 传递的就是测试管理的思想。所以建议大家在熟悉工具的同时,可以想想为什么这么做及有没有更优的做法。

5. 缺陷与bug

在这个基本概念中,首先需要明确缺陷的定义。可以从比较广的角度来说一切违反定义的内容都可以称之为缺陷或者bug,但是定义这个东西就是很模糊的东西,因为三维空间并不能完全锁定定义,而在四维空间中有了时间才能锁定定义。也就是说在设计的这个时间点上的对于正确与否的定义,就是判断是否正确的定义。

在缺陷中首先要分等级,有些缺陷是要立即改的,有些却不用,因为它们所带来的影响是不同的,还有一些缺陷可能是建议。

对于缺陷的引入有很多种情况,可能是初期的设计也有可能是开发中的疏忽,所以对于一个优秀的测试来说,如果能自己做个软件开发和设计,那么对于理解和把握缺陷的引入及预防会有很大的帮助。

测试方法

  1. 黑盒、白盒、灰盒

可以这样的简单总结,黑盒就是不了解被测对象内部情况直接使用的测试方法。白盒是不关心怎么使用,主要针对代码本身的执行、分析的测试方法;而灰盒是介于前两者之间的,从某些角度来说灰盒测试相对来说更好点。

黑盒测试强调对需求级别的验证,效果好,但是执行代价大,发现问题晚,定位表面。

通常我们会在系统测试中使用黑盒测试的方法。从系统需求覆盖率去判断系统测试执行的效果。

白盒强调对代码级别的验证,执行快,发现问题早,定位细节,但是对于大方向的需求验证无法实现。

通常我们会在单元测试中使用白盒测试的方法。从代码逻辑覆盖率去判断单元测试的效果。

灰盒测试介于之间,可以达到接近黑盒的执行效果,而定位上又会有一些工具的配合,所以定位就会准很多。

通常我们会在集成测试中使用灰盒测试,一般集成测试会分为接口联调及业务联调,大多接口测试覆盖率会评判灰盒测试的执行效果。

2. 静态测试和动态测试

动态测试主要指通过运行软件来测试的手段,比如执行代码、编译代码等。而静态测试主要就是不运行代码的方式,比如走读,代码扫描类的。

在这些方面有很多工具可以对代码的格式,文档的格式及内容进行静态测试。也有很多工具可以在动态执行的时候分析代码的情况,帮助发现定位问题。

3. 手工测试和自动化测试

使用人工执行的测试我们称之为手工测试,而使用某些工具帮助我们执行测试的就是自动化测试。自动化测试在重复的问题上面可以极大的提高执行效率,而手工测试是自动化的前提。

手工测试可以更好的发现问题,而自动化测试是在手工测试的基础上提高了执行的效率,进一步通过遍历等方式可以扩展发现一些以前不太好发现的问题。

自动化测试不能完全替代手工测试,在很多情况下手工测试可能更富有创造性。加上自动化测试的成本问题,很多公司起初对自动化都会有个美好的远景,但实施后大多也就不了了之了。

上面提到了很多测试的概念,初期的时候可能会迷失在概念中,但是过几年回头来看这不就是经验的总结么,做测试要多想多思考,才能明白为什么我们需要这些方法和概念来指导我们以后的工作。理论永远是实践的基础,就像楼要一层一层盖上去,要造的稳,地基一定要打得扎实。希望大家不要因为理论枯燥而怠慢,它其实很重要。

时间: 2024-10-31 09:00:22

小白成长建议(4) -从头开始-云层的相关文章

小白成长建议(5) 缺陷与管理-云层

缺陷管理 缺陷管理是最开始也是最基础的测试必备技能.在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理. 在我眼中的缺陷管理包含以下几层概念: 1.缺陷的描述 2.缺陷的定义 3.缺陷的跟踪 4.缺陷的度量分析 也许你觉得作为测试提一个缺陷很简单,但是要提一个好的缺陷其实是非常难的.在这里其实还有个隐藏的属性,叫做缺陷的概念,也就是说什么是缺陷? 一般来说缺陷有两种情况,一个是违反了所谓的规则,还有一种是我们无法接受这样的情况.比如对于美来说,每一个人心目中都有一种对美的定义,你

小白成长建议(1)-深思熟虑-云层

前言 在群里有很多人问我这个问题,我是个小白怎么能够进入软件测试这个行业,今年本来我也准备写点关于入门的内容,于是这篇连载就诞生了,估计章节应该会超过20章,每章大概2000字左右,希望大家能够喜欢. 测试工作 在第一章我觉得首先应该谈的就是当你准备进入测试工作的时候,你应该先问自己几个问题: 1.我了解测试工作么 2.我适合测试工作么 3.我能做好测试工作么 因为选择第一份工作是很重要的,当然如果它是你转行之作也是非常重要的,因为只有在一个相关行业有一定的沉淀和积累,那么才能让这个工作变得有成

小白成长建议(8)-知己知彼-云层

需求管理 需求管理我放在了理论的最后一部分来说,也是我觉得最难的地方.需求管理的难在于它对测试很重要但是又离测试工作很远.在前面我们说过用例,特别是系统测试用例非常依赖于需求文档,因为用例的期望值也就是最终结果,是通过需求来确定的.所以用例是否正确其实很多时候依赖于需求是否正确. 记得有这样一句英文非常的经典: Are we build the right product? Are we build the product right? 这里可以很好的说明到底用例重要还是需求重要.优秀的测试人员

小白成长建议(7)-蛛丝马迹-云层

配置管理 从某个角度来说,我一直觉得配置管理才是软件开发的最基本内容,注意这里我说的是软件开发的基本,不是测试!那么和测试有啥关系呢? 在解释这个问题前,我还是想先聊点别的,最后大家自然就知道答案了.配置管理到底是啥,简单来说就是版本控制和回溯,虽然这个概念说出来其实不太对,但是对于大多数情况来说确实就是这么回事. 在配置管理这个话题上可以说的很大,但是也可以说的很小,我觉得这么抽象的一个理论还是用个简单的例子来说明吧. 图书馆大家都应该知道,如何保证图书馆内的书被有效的借阅.订正.标记?这个和

小白成长建议 (3)-看书和选书-云层

测试入门 在有了对这个行业的一个了解及需要具备哪些基础后,我们就来谈谈测试入门.那么测试到底是啥,简单说来就是通过一定有效的方式来模拟用户运行软件,证明软件能够达到一定质量水平的手段吧.这里我用的话语很通俗并不规范,其实大家也不用太在意测试的某些概念具体怎么说,总的来说就是better more better,说到这里我想先提一下关于大家总关心的测试入门看什么书的问题. 怎么看书和怎么选书 在谈具体推荐什么书前,我不得不再好好的把怎么看书和怎么选书说一遍.其实在我看来书本无好坏,一本书不可能烂到

小白成长建议(2)-扎实基础-云层

测试基础 不知道在看完上一章之后你是否还有勇气继续选择测试这个工作,或者对这个工作有了一定的了解.那么在进入正题前,抱歉我还是要再做个铺底.就是我们的第二章测试基础. 测试需要基础么? 需要,很需要,甚至我觉得都需要一点点天赋!就像不想做厨师的会计不是好司机一样,测试是一个非常需要跨行业跨领域跨传统思想的工作.想要做好测试,那么你必须啥都会一点,而且为了说服别人,你还得啥都比别人厉害点,这样别人才会服你. 比如你告诉别人乱穿马路是不对的,这是没用的,因为别人不一定明白道理.如果你让他作为司机感受

小白成长建议(6)-测试的灵魂-云层

用例设计与管理 如果前面说的缺陷管理是作为测试最基本的要求的话,那么用例的设计与管理就是真正成为测试工程师的核心技能. 为何说用例设计与管理是测试工程师的核心技能的,而不是大家所关注的什么技术方向.首先技术方向是手段,但是任何的技术手段都是为了测试目的而服务的,如果这个目的出了偏差,那么所有的手段都无法达到预期的目的,或者就算达到了目的也并没反馈你所希望的效果. 例如我们需要测试登月车在月球上能否正常工作,那么你拿什么技术去测试呢?本质上还要换个角度从测试的思路上改变,在地球上模拟一个类似月球的

小白成长建议--小白如何提问

人类最高级的智慧就是向自己或向别人提问——苏格拉底. 我曾经思索过一番有关提问与回答的不同.在我看来,回答是面向过去的,是被动的,是过去式:而提问则是面向未来的,是主动的,是现在式,它往往意味着对现状的不满,意味着有新的发现.千百年来人们都对苹果落到地上习以为常,但牛顿却对此提出了疑问,也就在那一刹那间,一个崭新的世界已经展现在了他的面前.所以说,好的提问往往比答案更有力量,更能给人以启发! 长期在各个QQ群和网站社区上回答问题,久而久之就开始不太淡定,按照某些人的说法就是“你对我这样一个新人怎

小白成长建议(9)-苞丁解牛

单元测试 估计对于小白来说,一提到单元测试就是开发.开发.开发,好深奥.好难.但是我想说,单元测试可能是所有测试中最简单的了,想反系统测试可能是最难的,只是所谓的开发门槛让测试人员有些抵触而已. 为何说单元测试是最简单的内容呢,我们先来看一个例子: 有一个人去医院看病,然后医生问了一下病况后直接让你先去抽血,根据抽血的结果告诉你你是感冒了,给你开了一些感冒药.在这个情况下你觉得医生有多少的技术在里面? 另外一种情况,还是去医院看病,病人刚进来还没说话,医生就已经准确的说出了病人的病情和对应的诊疗