测试常识
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">什么是“软件测试”?
软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。也就是说,如果用户面对着应用程序的 A 界面,在使用硬件 B 的时候做 C 操作,那么 D 结果应该出现。所谓受控制的条件应该包括正常条件和非正常条件。应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”。软件测试网B2O3zggI
在如何负责质量保障和软件测试的责任方面,各个机构有不同的做法。有时候,由一个小组或者个人来负责。常见的办法是项目组包括了测试人员和开发人员,他们在一起合作工作,由项目负责人来对质量保障进行总负责。这取决于该机构的大小和该机构的商务结构。
ii O(t [5K.q+O0(软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果)
u)[['S,GCO8C2r0在软件开发过程中5个常见的问题是什么?
M 需求说明差 (poor requirements) ── 需求不清楚、不完整、太概括、或者不可测试,都会造成问题。软件测试网_9GZ ~P$F8Bp$I.r8^
M 不切实际的时间表 (unrealistic schedule) ── 如果在很短的时间里要求做许多事,出现错误是不可避免的。
Tk5g(of!T0M 测试不充分 (inadequate testing)── 只能根据客户意见或者系统崩溃来判断系统质量的高低。软件测试网:ly$s duV8C0x Q
M 不断增加功能 (featuritis) ── 在开发正在进行过程中要求增加许多新的功能。这是常见的问题。软件测试网I5parZ ?;t!I
M 交流问题 (miscommunication) ── 如果开发人员对客户的要求不了解,或者客户由不恰当的期望,必然会导致错误。
Ue{3z#~%u%D6d0(需求说明差 不切实际的时间表 测试不充分 不断增加功能 交流问题)
N2N@$y3B ^g e0针对软件开发过程中的问题,有5个解决办法:
ü 可靠的需求 (solid requirements) —— 应当有一个经各方一致同意的、清楚的、完整的、详细的、整体的、可实现的、可测试的需求。为帮助确定需求,可使用模型 (prototypes)。软件测试网2`K}$g.C4DS
ü 合理的时间表 (realistic schedules) —— 为计划、设计、测试、改错、再测试、变更、以及编制文档留出足够的时间。不应使用突击的办法来完成项目。
B!F SaC!P\0ü 适当的测试 (adequate testing) —— 尽早开始测试;每次改错或变更之后,都应重新测试。项目计划中要为测试和改错留出足够的时间。软件测试网c6G3X#\7\r&k
ü 尽可能坚持最初的需求 (stick to initial requirements as much as possible) —— 一旦开发工作开始,要准备防止修改需求和新增功能。要说明这样作的后果。如果必须进行变更,必须在时间表上有相应的反映。如果可能,在设计阶段使用快速的模型,以便使客户了解将会得到的东西。这将会使他们对他们的需求有较高的信心,减少以后的变更。
*A%wz,BAwrr0ü 沟通 (communication ) —— 在适当时机进行预排和检查;充分利用团组通信工具 —— 电子邮件、群件 (groupware)、网络故障跟踪工具、变更管理工具、以及因特网的功能。要确保文件是可用的和最新的。优选电子版文档,避免纸介质文档;进行远距离联合作业及协作;尽早使用模型,使得客户的预想是清楚的。软件测试网w)Aw2EZm%Lt#e5S
(可靠的需求 合理的时间表 适当的测试 尽可能的坚持最初的需求 沟通)软件测试网Z-}*lE5X&I,~
软件测试包括哪些内容?
以下是一些需要考虑的步骤:
-C;V/n ~;]%g(aG0ü 得到需求、功能设计、内部设计说书和其他必要的文档软件测试网:v'Q:Z/k C2~.U3j@
ü 得到预算和进度要求
4]?NC3C7\"D0ü 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 (例如发行过程、变更过程、等等)
$f4w$zye.u:b2J/Z,X0ü 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
L&Ig `4AG-zc+T0ü 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试软件测试网0dhl{_URM#P5o Wj
ü 确定对测试环境的要求 (硬件、软件、通信等)
"q9b} X X6s0ü 确定所需的测试用具 (testware),包括记录/回放工具、覆盖分析、测试跟踪、问题/错误跟踪、等等
*Me`"^$a(H0ü 确定对测试的输入数据的要求软件测试网4J{y \uL;Ph?"B
ü 分配任务和任务负责人,以及所需的劳动力软件测试网w-mfv:kX9A
ü 设立大致的时间表、期限、和里程碑
u N\ \ ?1}^1u I[0ü 确定输入环境的类别、边界值分析、错误类别软件测试网@v1oJ9Y P{A%J
ü 准备测试计划文件和对计划进行必要的回顾软件测试网.x?(K){2p
ü 准备白盒测试案例软件测试网 J.i3X%c D;M!N
ü 对测试案例进行必要的回顾/调查/计划软件测试网;j$qC UxmTy
ü 准备测试环境和测试用具,得到必需的用户手册/参考文件/结构指南/安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据软件测试网7~/@ B\/[1Z
ü 得到并安装软件版本
o*qW,Dg2O,Fe(bc0ü 进行测试软件测试网W,G"Y*\c,S3r
ü 评估和报告结果
7m lc7ZPO0ü 跟踪问题/错误,并解决它
YFu4_V8x A,w9`0ü 如果有必要,重新进行测试
V MP2jP&Q4QG Gu0ü 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
y4h'bvo)y"K;?#{%|.W0
什么是“测试案例”?
测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。
!U-?.]e|z3S$Fhl0注:开发一个应用软件的测试案例的过程,需要全面、深入地考虑该软件的操作,所以有助于发现在其需求或设计里面的问题。因此,如果有可能,在开发周期中应当尽早准备测试案例。软件测试网k/L n3a5^)Au
(测试案例包括:测试标识, 案例名称,目标,测试条件/设置,输入数据要求,步骤,以及预期结果)软件测试网}\)SK X H&NHC
如果时间不够,无法进行充分的测试怎么办?
使用风险分析,确定测试的重点。软件测试网:dJ4hpmBZ%f5sU!a
由于很少有机会对一个应用软件进行所有可能的测试 (包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西),对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素:软件测试网 LK6m0\?#skd8GL
ü 对于该项目的用途而言,哪种功能最重要?
F#T$_ CpTT0ü 哪种功能对用户最明显?
ü 哪种功能对安全影响最大?
8q6r MU0J3Z0ü 哪种功能对用户最有用?软件测试网T(x ZW2`y5F/O
ü 对客户来说,该应用软件的哪个部分最重要?软件测试网1c+h Q$Z(y5HD
ü 在开发过程中,该应用软件的哪个部分可以最先测试?
{8W(M7Z*|0ü 哪一部分代码最复杂,容易导致出现错误?
ü 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?
Y&P9L1FUe+H0ü 哪一部分程序与过去项目中引起问题的部分相类似/有关?
/}/]5p$O:_,DlF^0ü 哪一部分程序与过去项目中需要大量维护的部分相类似/有关?
Sx?G-Hu9[!]e0ü 需求和设计的那些部分不清楚或不容易读?
0Q$fg ]Eb(q]0ü 开发人员认为在应用软件中哪些部分是高风险的?
WGb:[(r0ü 哪些问题能造成最差的发行?软件测试网e{x vz0`
ü 哪些问题最能引起用户抱怨?
&VO3?&d!T^Uz7x0ü 哪些测试可以容易地覆盖多种功能?软件测试网{nJ.w4_%scA
ü 哪些测试在覆盖高风险部分的测试时使用时间最少?
`-cv}~o-^C0
如果需求一直在变化怎么办?
这是一个常见的令人头疼的问题。
Q(p:uv|9gQ0ü 如果可能,尽早与承担该项目风险的人接触,以便了解需求会怎样改变,从而可以尽早地改变测试计划和策略。
RP1M7trk Xz0ü 如果在对应用程序进行初始设计时多考虑一些适应性,那么以后在发生需求的改变时,就不需要再为改变做很多事情了。软件测试网WJ ^R#?+]5lyFy^
ü 好的代码注释和好的文档有助于开发人员作出相应的改变。软件测试网E0d5P&L&@!X
ü 只要有可能,就应使用快速原型 (rapid prototyping),以帮助用户确认他们的需求,从而减少变更。软件测试网:C*K*Ax+e*S7ub
ü 在项目的时间表中应当留出余量,以应付可能出现的变更。软件测试网%Fb!n6j8T`r.d-}
ü 尽量把新的需求纳入应用软件的“下一版”,而把原始需求作为“第一版”。软件测试网9rL`5P3Wfr h2s
ü 通过谈判,把易于实现的新的变更列入项目,而把难于实现的新需求列入该应用软件的以后的版本。软件测试网K%B \#~)b
ü 要确保让客户和管理人员了解变更对进度表的影响、所带来的风险、以及因变更所引起的大量资金消耗。软件测试网}F`IRs N-K
ü 在应付改变时,应在为建立自动测试而作的努力和重新进行测试所做的努力之间取得平衡。软件测试网HU4DF}?O)C
ü 在设计自动测试剧本时,试图使其有一些灵活性。
?+w9Jt)PGIocg0ü 在对应用软件进行自动测试时,要把注意力集中在看来不大会改变的部分。软件测试网 H4O Y3A0t$]8g`7f$ZB
ü 对变更进行适当的风险分析,以减少回归测试的要求。
#J&Q,Y!Dl[{-Tq0ü 在设计测试案例时要有一定的灵活性。做到这一点并不容易,所以要降低测试案例的详细程度,或者只建立高级的通用型的测试计划。
^#r|c9zx P0ü 少注意详细的测试计划和测试案例,要把重点放在专门的测试 (ad hoc testing) 上。
,_.tO_pXUL0
好的面向对象的工程设计使得从代码追溯内部设计、再到功能测试,最后追溯到需求,成为一件容易的事。因为它对黑盒测试的影响很少 (不需要了解应用软件的内部设计) ,而白盒测试只需针对该应用软件的对象。如果该应用软件设计得好,就可简化测试设计。软件测试网;~N6_1fU
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: