我不可以人云亦云,应为我是思考者;我不可以沿着别人的足迹前进,应为我怀疑迷失方向;我所能做的就是思考再思考,实践再实践。我不停的问自己也建议同道中人问问自己:难道我们所能做的只是copy现有的东西,不可以创新什么东西吗? 在我看来,测试仍然没有任何定论,一切看自己。

什么是软件测试,新的想法哦

上一篇 / 下一篇  2013-08-28 11:51:30 / 精华(1) / 置顶(1) / 个人分类:原创,严禁转载

1234234209

                      什么是软件测试51Testing软件测试网7H9^CV Z.Bd

  什么是软件测试,业界并没有标准的定义,每个人可以有自己不同的理解。目前大概有下面几种说法,我列举一下:

Mdf T!T:{"C*KF0

测试目标的定义:

1~mavn/Ge_0

   软件测试是为了检查软件与需求偏离度而执行的一个过程。

UVx @Ee0

测试目的上定义:

aZ O},u;G0

软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

,U&]b.E#\0

测试内容上定义:

3n1io mBa8s0

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试

.lJ qk/Q0

测试方法上定义:

jTx'ZY_C^0

软件测试是为了保证软件的正确性,从而对软件进行验收测试和确认测试的过程。

OY{ @Jb fm0o7j0

 以上4个,基本是目前比较主流的定义,我们也不必纠结那个定义更准确一些,因为每个定义都从不同的角度进行的,但都不足以解释清楚什么是软件测试。

)Vb'NZ Pl6^8x0

不久前的一天,一个突然其来的想法闪过,我似乎知道如何来解释软件测试这个问题了,下面写出来,与大家一起分享。51Testing软件测试网M^3E$H7BHr

软件测试就是一场考试。这就是我的定义,如何理解呢?51Testing软件测试网.d$[b,R.` {XsW;T)m

我们都熟悉考试的过程,首先由出题人出题构成试卷的考题,然后有一个考场,监考老师负责分发收取试卷和监督考试过程,考生答卷。最后由阅卷老师评卷打分,最后公布成绩。

9pNV)u%gQ9}0

好吧,这个过程就是我们软件测试整个过程。51Testing软件测试网:SW"L Gj,d

出题。对应我们需求分析阶段,出题人就是产品人员。出题人(产品经理)需要准确把握考试大纲(市场需求),定位出题类型(市场定位)和恰当的考题难度(需求范围),然后才能制定出一套好的考卷(软件产品)。一个一个的功能就好比试卷上的一个一个的考题,最后把所有的功能集成在一起,就构成了我们的整个软件系统这个考卷。

+K|6bkgQ VB/y0

考场。构成了我们软件测试中的测试环境。测试必须在特定的测试环境中进行,并且保持测试环境的独立性。在我们软件测试的过程中,只有测试人员和项目管理者或质量人员能够使用这个环境,测试人员执行测试,项目管理者或质量人员跟踪测试的进度,而研发人员严禁使用测试环境,特别是在测试环境上进行调试代码或者更新代码。有谁见过在考场中,出卷人坐在考生旁边,边改考题边进行考试的?51Testing软件测试网H?XGFt&U

监考老师。对应我们软件过程的项目管理人员或者质量管理人员,起到跟踪、监督项目过程和梳理工作流程的关系。包括测试资源的调配,测试突发问题的处理,测试进度的控制,测试目标的维持等。

/G"B,e|9z9d"xJ5vE-_0

我们为什么需要监考老师,因为考生很难自觉地考试,考题不会了容易作弊,答题速度慢了他想延长答题时间,而监考老师能很好的杜绝这些问题。51Testing软件测试网X,hd'mb-`!}7N,f

分发收取考卷。对应软件测试过程的测试版本的发布和问题的反馈。出卷人不可能直接把考卷交到考生手里,必须通过监考老师来分发,分发前要确认考卷是正确的,是完整的,然后才能分发给考生答题。而我们现在的工作中,却是由监考老师(研发人员)和考卷直接分发给考生(测试人员),工作中不止一次的出现过研发人员发布的测试版本不对的问题。51Testing软件测试网'o*J3jS#L#Mc4A

考场纪律。对应我们软件过程中的开发标准。没有考场纪律,如何来规范考生行为呢?每个研发工程师的经验、工作能力和习惯都不同,如果任由发挥的话,肯定会答出一份千奇百怪的考卷来。51Testing软件测试网S ws/F(qz*_\

考生。对应我们软件项目中的研发工程师。研发工程师的工作就是拿到考卷(需求),把考卷(需求)上的一个个的考题(功能)逐一解答(功能实现),解答完成后需要回头再检查一遍答案是否正确,然后交卷就可以了。51Testing软件测试网1D|Q']{+MO F

阅卷老师。对应软件过程中的测试人员。监考老师把试卷收上来之后,确认试卷有效后,交给阅卷老师,阅卷老师可以批阅试卷了。

0R3_pF9@FoVnm0

这时候需要强调两点,第一,试卷(待测系统)一定是由监考老师(项目管理者或质量人员)交上来的,考生(研发人员)不可能直接把试卷(待测系统)交给阅卷老师(测试人员)。第二,附带考卷交上来的,一定会有标准答案(详细的需求说明书、质量目标和性能指标等),不然阅卷老师根据什么标准来阅卷呢?

Qx/nD]A/sn0

发布成绩。阅卷结束后,成绩发布,考生重新拿到考卷,把做错的考题改正,防止下次犯同样的错误。这就是我们工作中一个项目结束后,最好能有一次项目总结会,总结本次项目中有哪些创新值得发扬,有哪些不足需要借鉴。

La*o o+T-u @ V3M f K0

 51Testing软件测试网-RMx TbH0W

  整个考试过程我讲完了,是不是发现软件测试和考试有很多相似性呢?其实还不止这些,具体到测试方法上也适用,列举一些。

R.@|vB|E0

黑盒测试,就是不管解答过程,只看结果与标准答案对不对。51Testing软件测试网3Rv3y*nUt

白盒测试,关注解题过程,要保证每一步都正确。51Testing软件测试网;Ys'Es^

自动化测试,涂在答题卡上的选择题,能通过机器阅卷极大提高效率。

ytd8IG}F0

静态测试,判断题,通过阅读每行代码判断程序问题,不需要运行程序。51Testing软件测试网`6? WqpM

动态测试,分析题,结合上下文(编写驱动模块、测试桩),运行程序进行测试。

Bc|(Zu z0

……,还有很多,不一一列举了,是不是很有意思呢?51Testing软件测试网rWePj*No!f8b

通过分析考试过程,我们回归到我们的工作中,有哪些工作不符合考试流程呢?

-L#A/p(S+m(Vj M1w*F0

1.     我们没有出题人。没有专门的产品人员负责需求分析与制定的工作,需求一般由项目经理或者研发人员完成,并且很粗糙。51Testing软件测试网8G)Q'} Ew Y%Y w

2.     我们没有独立的考场,很多时候答题人、阅卷人都在同一个考场里完成工作。

+Q+p6lB5O L/A2Ksb _0

3.     没有监考老师。出题人直接把考卷给考生,考生直接把考卷给阅卷老师。51Testing软件测试网n^JWl8S

4.     角色划分不清。项目经理经常是出题人又是答题人还经常客串监考老师。51Testing软件测试网!w%h l4\W d

5.     没有标准答案。测试人员必须自己做一遍考题,才能阅卷,导致了测试进度缓慢也避免不了出错。如果阅卷老师对某道题本身不会,测试就进行不下去了。

"eh a*b(f|(V(Z$str0

6.     考生拿到的考卷往往是一张白纸或者只是一些简单的要求。导致无法顺利的理解考题,也会经常自己出题自己解答。51Testing软件测试网E+N,N$Fp)g_6R0h-`

7.     系统发布后,很少回头总结项目中存在的问题,导致今天不断在重复昨天的错误。

8U?A5Z8K xj4L0

其实,这就是一场班级级的小测验,不正规也缺少组织性。一场很奇怪的考试,题出的不好,答题也不规范,也就无从指望优秀的成绩了。

0c1|g h?|W FZ0

  51Testing软件测试网#JV2D [ A0Q5\[5iC `2s

 

0B"{ o"K+y2d0

 

1bl gS8R'k(}1H0

TAG:

引用 删除 zerolin   /   2013-08-28 13:32:23
这最多是你的比喻
 

评分:0

我来说两句

Open Toolbar