测试技术常见问题-2

上一篇 / 下一篇  2011-12-20 14:58:02

9、没有产品说明书和需求文档地情况下能够进行黑盒测试吗?

X)@Gys:Ts a t;l0

这个问题是国内测试工程师经常遇到的问题,根源就是国内软件开发文档管理不规范,对变更的管理方法就更不合理了。实际上没有任何文档的时候,测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试,具体做法就是测试工程师根据自己的专业技能、领域知识等不断的深入了解测试对象、理解软件功能,进而发现缺陷。

U#O^m"Di\$C,L0

在这种做法基本上把软件当成了产品说明书,测试过程中要和开发人员不断的进行交流。尤其在作项目的时候,进度压力比较大,可以作为加急测试方案。最大的风险是不知道有些特性是否被遗漏。51Testing软件测试网w%rTX+P.r#K

10、             测试中的“杀虫剂怪事”是指什么?

'NrA9c.{;J:o0

“杀虫剂怪事”一词由Boris Beizer在其编著的《软件测试技术》第二版中提出。用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。51Testing软件测试网R ^{S DM p'a ]x

为了克服这种现象,测试人员需要不断编写新的测试程序或者测试用例,对程序的不同部分进行测试,以发现更多的缺陷。也可以引用新人来测试软件,刚刚进来的新手往往能发现一些意想不到的问题。

%s Or;b[!q$Q7p7kk+cX0

11、             在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?51Testing软件测试网&|]fT/fq6[5Gb

在进行配置测试时,测试工程师仍然会发现一些普通的缺陷,也就是与配置环境无关的缺陷。因此判断新发现的问题,需要在不同的配置中重新执行发现软件缺陷的步骤,如果软件缺陷不出现了,就可能是配置缺陷;如果在所有的配置中都出现,就可能是普通缺陷。51Testing软件测试网,a+{R5?'e

需要注意的是,配置问题可以在一大类配置中出现。例如,拨号程序可能在所有的外置Modem中都存在问题,而内置的Modem不会有任何问题。51Testing软件测试网 G+q wL pg+o-[

14.5其它常见问题

1、为什么尽量不要让时间有富裕的员工去做一些测试?

)R)B6\'a&_0

表面上看这体现了管理的效率和灵活性,但实际上也体现了管理者对测试的轻视。测试和测试的人有很大关系。测试工作人员应该是勤奋并富有耐心,善于学习、思考和发现问题,细心有条理,总结问题,如果具备这样的优点,做其它工作同样也会很出色,因此这里还有一个要求,就是要喜欢测试这项工作。如果他是专职的,那么肯定更有经验和信心。国内的小伙子好象都喜欢做程序员,两者工作性质不同,待遇不同,地位不同,对自我实现的价值的认识也不同,这是行业的一个需要改善的问题。如果只是为了完成任务而完成任务,或者发现了几个问题就觉得满意了,这在任何其它工作中都是不行的。51Testing软件测试网?0[5n/?I4K

2、完全测试程序是可能的吗?51Testing软件测试网:gfN2{A4N zc

软件测试初学者可能认为拿到软件后需要进行完全测试,找到全部的软件缺陷,使软件“零缺陷”发布。实际上完全测试是不可能的。主要有以下一个原因:

6o YH WK;w1J0

l        完全测试比较耗时,时间上不允许;51Testing软件测试网Nt4Ll mo

l        完全测试通常意味着较多资源投入,这在现实中往往是行不通的;

Lf/?wkM\0

l        输入量太大,不能一一进行测试;51Testing软件测试网P#O1q ?;OX0[%[.|XF

l        输出结果太多,只能分类进行验证;

wqA$w Me|I:i0

l        软件实现途径太多;51Testing软件测试网JE3[*zbY?%f-R%J

l        软件产品说明书没有客观标准,从不同的角度看,软件缺陷的标准不同;

-v@ C"t:y7S` \0

因此测试的程度要根据实际情况确定。51Testing软件测试网'Bz Q.rk#i

3、软件测试的风险主要体现在哪里?51Testing软件测试网0WHS0R;lz

我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。

W'xFv(i0

因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。51Testing软件测试网`3Wdq\k f0J3x

4、发现的缺陷越多,说明软件缺陷越多吗?51Testing软件测试网3e(BPL S&\TJ

这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。其中的原因主要如下:51Testing软件测试网 ][ O8J q,~e$U

l        代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷。

+q``7S#rPNk0

l        程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象,因此体力不只时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰时测试工程师大显身手的地方。51Testing软件测试网6A?D0iJ ?

“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。51Testing软件测试网3h$Z B0? c

5、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?51Testing软件测试网*N7zS8|L[r(KU3I'f

从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:

)KwA@#s0

l        没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。

["p"N!G+z j7L$n,t4{0

l        有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。

D(]y]9o0{@0y0

l        不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。51Testing软件测试网N${#G0n&JX

最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。51Testing软件测试网8a.s)e{TY3H"OV

6、软件测试人员就是QA吗?51Testing软件测试网T/b1}0`S d ys|

软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。51Testing软件测试网r'{#T)fO2I${,L.i l@o

软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

B:S {;~%yJ4n4~0~V0

7、如何减少测试人员跳槽带来的损失?51Testing软件测试网1R\ }rZ

IT行业里跳槽已经是一种司空见惯的现象,而且跳槽无论给公司还是给个人都会带来一定的损失。测试队伍也无疑会面临跳槽的威胁,作为测试经理管理者,只有从日常工作中开始做起,最能最大限度的减少损失。建议我们从以下两个方面做起:51Testing软件测试网Y:B*I2Y\ s

l        加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。51Testing软件测试网[x/vwd}F[ B

l        通常情况下,企业能为员工提供足够大的发展空间时,如果不是待遇特别低,员工都不会主动离开企业。因此我们要想留住员工,管理者就应该把员工的个人成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。不过这项要求做起来比较,要有比较好的企业文化为依托。51Testing软件测试网.@?/mFIR isyH

8、测试产品与测试项目的区别是什么?

3MYW[!D1R.dN0

习惯上把开发完成后进行商业化、几乎不进行代码修改就可以售给用户使用的软件成为软件产品,也就是可以买“卖拷贝”的软件,例如Windows 2000。而通常把针对一个或者几个特定的用户而开发的软件成为软件项目,软件项目是一种个性化的产品,可以是按照用户要求全部重新开发,也可以修改已有的软件产品来满足特定的用户需求。项目和产品的不同特点,决定我们测试产品和测试项目仍然会有很多不同的地方:

:f)Ndx.jk~f3a0

l        质量要求不同。通常产品的质量要高一些,修复发布后产品的缺陷成本较高,甚至会带来很多负面的影响。而做项目通常面向某一用户,虽然质量越高越好,但是一般只要满足用户要求就可以了。51Testing软件测试网`o*D:@YCxP8L

l        测试资源投入多少不同。做软件产品通常是研发中心来开发,进度压力要小些。同时由于质量要求高,因此会投入较多的人力、物力资源。

G3v5aGX/gD0

l        项目最后要和用户共同验收测试,这是产品测试不具有的特点。51Testing软件测试网l hH7[4LkJA

此外,测试产品与测试项目在缺陷管理方面、测试策略制定都会有很大不同,测试管理者应该结合具体的环境,恰如其分的完成工作。51Testing软件测试网#Pd1Ta5YL!\uk'e+v f X

9、和用户共同测试(UAT测试)的注意点有哪些?51Testing软件测试网r0v!kW([ IM

软件产品在投产前,通常都会进行用户验收测试。如果用户验收测试没有通过,直接结果就是那不到“Money”,间接影响是损害了公司的形象,而后者的影响往往更严重。根据作者的经验,用户验收测试一定要让用户满意。51Testing软件测试网.s&e;cE)D-}%@"[

实际上用户现场测试更趋于是一种演示。在不欺骗用户的前提下,我们向用户展示我们软件的优点,最后让“上帝”满意并欣然掏出“银子”才是我们的目标。因此用户测试要注意下面的事项:

IP4puO,U0

1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。51Testing软件测试网 s*?8Hrb8H

2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向51Testing软件测试网6?-s7vJ?f+g-Px

用户做成合理的解释。争得时间后,及时修改缺陷来弥补。51Testing软件测试网l!~i.f w,q

3)永远不能欺骗用户,蒙混过关。道理很简单,因为软件是要给用户用的,问题早晚会暴露出来,除非你可以马上修改。

` fE wf E0

和用户进行测试还要注意各种交流技巧,争取不但短期利益得到了满足,还要为后面得合作打好基础。

6Q:o ^9` D0

10、             如何编写提交给用户的测试报告?51Testing软件测试网.N0EYn"d4J'q3^

随着测试工作越来越受重视,开发团队向客户提供测试文档是不可避免的事情。很多人会问:“我们可以把工作中的测试报告提供给客户吗?”答案是否定的。因为提供内部测试报告,可能会让客户失去信心,甚至否定项目。

[6^3`B.e1Q,Ygn(X0

测试报告一般分为内部测试报告和外部测试报告。内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,这里不过多讨论,读者可以参考第9章的相关内容。这里主要讨论一下外部测试报告的写法,一般外部测试报告要满足下面几个要求:

w*I9F"H3@f6po"oQ@L0

l        根据内部测试报告进行编写,一般可以摘录;51Testing软件测试网vvm(^B2]Pj

l        不可以向客户报告严重缺陷,即使是已经修改的缺陷,开发中的缺陷也没有必要让客户知道;51Testing软件测试网kb6e}M,~$|!cC I!I

l        报告上可以列出一些缺陷,但必须是中级的缺陷,而且这些缺陷必须是修复的;

']aE/z%Dn+l0

l        报告上面的内容尽量要真实可靠;

P0A` C'v)A2@zf0

l        整个测试报告要仔细审阅,力争不给项目带来负面作用,尤其是性能测试报告。

)G1_y/xC/ED0

总之,外部测试报告要小心谨慎的编写。

M8q2}C7j5IF+\&^0

11、             开发人员老是犯一些低级错误怎么解决?51Testing软件测试网[eH7E6C2}(o"j6G @

这种现象在开发流程不规范的团队里特别常见,尤其是一些“作坊式”的团队里。解决这种问题一般从两个方面入手:51Testing软件测试网|-vCA(O[I

一方面从开发管理入手,也就是从根源来解决问题。可以制定规范的开发流程,甚至可以制定惩罚制度,还有就是软件开发前做好规划设计。

0gP8lR^0

另一方面就是加强测试,具体做法就是加强开发人员的自己测试,把这些问题“消灭”在开发阶段,这是比较好的做法,读者可以参考第13章试案例分析的“13.1.2缺陷反复出现,谁的责任”小节,13.1.2专门讨论了这类问题的方法。

&Ric'yz9U$w7m%F0

此外,还可以通过规范的缺陷管理来对开发人员进行控制,比如测试部门整理出常见的缺陷,让开发人员自己对照进行检查,以减少这类低级错误的发生。

I'W-}7u3gi{ d(}0

开发人员犯错误是正常的现象,作为测试人员一定不能抱怨,要认认真真的解决问题才是上策。51Testing软件测试网.xg;^|(`z$N _

12、             测试工具在测试工作中是什么地位?

kAf8| M;[kV0

国内的很多测试工程师对测试工具相当迷恋,尤其是一些新手,甚至期望测试工具可以取代手工测试。测试工具在测试工作中起的是辅助作用,一般用来提高测试效率。自动化测试弥补了手工测试的不足,减轻一定的工作量。实际上测试工具是无法替代大多数手工测试的,而一些诸如性能测试等自动化测试也是手工所不能完成的。51Testing软件测试网E*@g G2X C;e

对于自动测试技术,应当依据软件的不同情况来分别对待,一般自动技术会应用在引起大量重复性工作的地方、系统的压力点、以及任何适合使用程序解决大批量输入数据的地方。然后再寻找合适的自动测试工具,或者自己开发测试程序。一定不要为了使用测试工具而使用。

~zb1ln0

测试工具的具体内容请读者学习第11章的相关内容。51Testing软件测试网7^5G8Q+Y?:aGd1}[


TAG:

 

评分:0

我来说两句

Open Toolbar