[转贴]加快回归测试的步伐:累积测试分析和目标测试入门
上一篇 / 下一篇 2007-01-16 22:05:43 / 个人分类:回归测试
本文来自于 Rational Edge:通常所说的“累积测试分析(Cumulative Test Analysis)”技术向软件测试团队提供了对自动化测试更合理的方法,特别是在回归测试集的领域内。理解 CTA 如何提高您的测试效率。
uCy\mA0您的测试团队已经非常成功了。您已经对自动化大量投资,并且因生成大型且全面的测试集而著称 —— 您可以无可非议地为之自豪!在整个开发过程和多个环境中,这些组合为您很好地服务。因此现在是您休息一会,并且收获您所劳动的好处的时候了,对吗?或者,您将成为您自己的自动化测试集的牺牲品?
3F1\~!iO*JI051Testing软件测试网CEo}&L"z)C6D
也许,像许多团队一样,您已经达到饱和点,现在您有太多的测试,以至于不能说明。也许运行测试的团队已经不再是撰写它们的团队了,并且知识是稀少的。或者也许您受困于对大量所支持的环境和代码流不断地重复运行同样的测试的工作。对于那些您不能运行的测试,或者您没有时间运行的,您对您所带来的风险进行过观察吗?51Testing软件测试网(R9RiXtGPJkD
"ji Q)P2T2E [0无疑地,如果您只运行少量的测试,并且仍旧在代码中找到一样的缺陷,这是更好的。通过运行可能的测试尽可能快地找到第一次出现的缺陷不同样是更好的吗?51Testing软件测试网"Ew'sM#b y
M,pW\$X0不能达到的目标
7R#xt j{$w4K6{051Testing软件测试网$V*fsIprS
甚至是出于一片好心,每个测试人员在他或她的工作生涯中,都将撰写一个根本不测试所打算测试内容的测试。这可能是由于缺乏经验,对产品功能设计的变更,因为测试人员做出关于产品或其预期使用价值的无效假设,或者只是因为测试人员用尽了时间。总而言之,最终结果是由于与产品缺陷不相关的原因而失败的测试。51Testing软件测试网\1D)xx(yw*QtM${X2u
51Testing软件测试网 TZwSwsc
这些失败测试的累积效应创造了回归套件中的灰色区域,您的回归测试的 5% 到 15%是困难的、不可靠的或不可能成功地运行完成的。这些阻塞的或不可靠的测试消耗了宝贵的测试时间,并且混淆了测试人员对真实的产品缺陷的观察,这导致了在回归测试循环末尾的测试进度中的指数的缩小。虚幻的所有可用测试的100% 的运行目标常常看起来非常接近,但是却难以达到。
Y2yqMmIo#p051Testing软件测试网{-Uc ]4^:Uek?
自动化陷阱
nE'vKR%Uz(d,W0
GMq pm_X0也许您已经落入了严重依赖于您的测试自动化基础架构的陷阱了。这里有一些您可能考虑的问题。您是:51Testing软件测试网:G1D us7I*CW2^
H6a`fXu*X0缺少用于测试您所期望的每样东西的资源吗?
wm pg7GS6~a petiZ0陷入无休止的测试循环吗?
Ei/l:JR1jN0在没有找到任何新的缺陷的情况下,运行成千上万的测试吗?51Testing软件测试网wU9kZa%O
在不了解那些测试的价值的情况下,花费您大部分的时间来确定坏掉的测试吗?51Testing软件测试网.|6o7n)q:k7p
瞄准 100% 运行您所有的测试的目标吗?在质量和风险方面您了解此目标吗?
9U]n(DHkts o]0您可能需要的是,不再瞄准任意数量的测试,而着眼于从上次测试以来在产品中实际变更的功能是什么,以及测试此变更所需要的是什么。总而言之,您需要转移到更深思熟虑的“目标”测试的方法。51Testing软件测试网0kswu{-B
7c?UYU0B'\0停止运行测试,开始寻找缺陷51Testing软件测试网&h;n ^+{O
51Testing软件测试网3t2| }O5|)U\yW&y
通常所说的累积测试分析(Cumulative Test Analysis,CTA)方法是基于五个基本原则的:
.I%C1H]7l0
:],ql$z ~DvU/l#t9Ts0定期地运行自动化的测试。
+Jqvf:P0了解现有测试材料的实际覆盖和质量。
g[@6x%O)W0运行尽可能少的测试。将测试关注在只运行那些覆盖了发生变更的功能的测试。
{"M+c+~.I1PGq0S5l3|:Q0在做出评估时考虑所有的测试活动。51Testing软件测试网7d@'](A0e$[
由四个较早的步骤所节省下来的时间可以用于增加测试套件的质量,或者执行额外的测试。51Testing软件测试网u@n[ {(fQY
让我们按顺序讨论这些原则。
9R|.g$|0pa0
xRFM_.B&r0原则 1:定期地运行自动化的测试51Testing软件测试网 aJ;Z`3z!d)W s
"ayU i+TP-L0CTA 方法着重于通过在整个的开发循环中运行自动化的测试将“发生缺陷的时间” 1 最小化。任何回归类型的缺陷都可以很早发现,并且与在循环的末尾运行单个的长期回归运行相比使用了最小量的测试。51Testing软件测试网/g"b W%nfc9?
51Testing软件测试网%pm/ms:i)|Z
此测试的目标是提供对所有驱动程序的功能质量的一个观察,作为进一步测试和最终向市场发布的基础。此回归测试减少了进入最终产品的缺陷数量,以及在这期间,减少可能防止新特性的更复杂的测试的基础功能问题。由此可见,这些回归类型的缺陷需要在其最方便确定的时候尽可能快速地清理掉。51Testing软件测试网0oc]$\$b z _
51Testing软件测试网^^q*W3I7kU
原则 2:了解回归测试套件中现有测试材料的质量和覆盖
(o;Hi&q
uCy\mA0您的测试团队已经非常成功了。您已经对自动化大量投资,并且因生成大型且全面的测试集而著称 —— 您可以无可非议地为之自豪!在整个开发过程和多个环境中,这些组合为您很好地服务。因此现在是您休息一会,并且收获您所劳动的好处的时候了,对吗?或者,您将成为您自己的自动化测试集的牺牲品?
3F1\~!iO*JI051Testing软件测试网CEo}&L"z)C6D
也许,像许多团队一样,您已经达到饱和点,现在您有太多的测试,以至于不能说明。也许运行测试的团队已经不再是撰写它们的团队了,并且知识是稀少的。或者也许您受困于对大量所支持的环境和代码流不断地重复运行同样的测试的工作。对于那些您不能运行的测试,或者您没有时间运行的,您对您所带来的风险进行过观察吗?51Testing软件测试网(R9RiXtGPJkD
"ji Q)P2T2E [0无疑地,如果您只运行少量的测试,并且仍旧在代码中找到一样的缺陷,这是更好的。通过运行可能的测试尽可能快地找到第一次出现的缺陷不同样是更好的吗?51Testing软件测试网"Ew'sM#b y
M,pW\$X0不能达到的目标
7R#xt j{$w4K6{051Testing软件测试网$V*fsIprS
甚至是出于一片好心,每个测试人员在他或她的工作生涯中,都将撰写一个根本不测试所打算测试内容的测试。这可能是由于缺乏经验,对产品功能设计的变更,因为测试人员做出关于产品或其预期使用价值的无效假设,或者只是因为测试人员用尽了时间。总而言之,最终结果是由于与产品缺陷不相关的原因而失败的测试。51Testing软件测试网\1D)xx(yw*QtM${X2u
51Testing软件测试网 TZwSwsc
这些失败测试的累积效应创造了回归套件中的灰色区域,您的回归测试的 5% 到 15%是困难的、不可靠的或不可能成功地运行完成的。这些阻塞的或不可靠的测试消耗了宝贵的测试时间,并且混淆了测试人员对真实的产品缺陷的观察,这导致了在回归测试循环末尾的测试进度中的指数的缩小。虚幻的所有可用测试的100% 的运行目标常常看起来非常接近,但是却难以达到。
Y2yqMmIo#p051Testing软件测试网{-Uc ]4^:Uek?
自动化陷阱
nE'vKR%Uz(d,W0
GMq pm_X0也许您已经落入了严重依赖于您的测试自动化基础架构的陷阱了。这里有一些您可能考虑的问题。您是:51Testing软件测试网:G1D us7I*CW2^
H6a`fXu*X0缺少用于测试您所期望的每样东西的资源吗?
wm pg7GS6~a petiZ0陷入无休止的测试循环吗?
Ei/l:JR1jN0在没有找到任何新的缺陷的情况下,运行成千上万的测试吗?51Testing软件测试网wU9kZa%O
在不了解那些测试的价值的情况下,花费您大部分的时间来确定坏掉的测试吗?51Testing软件测试网.|6o7n)q:k7p
瞄准 100% 运行您所有的测试的目标吗?在质量和风险方面您了解此目标吗?
9U]n(DHkts o]0您可能需要的是,不再瞄准任意数量的测试,而着眼于从上次测试以来在产品中实际变更的功能是什么,以及测试此变更所需要的是什么。总而言之,您需要转移到更深思熟虑的“目标”测试的方法。51Testing软件测试网0kswu{-B
7c?UYU0B'\0停止运行测试,开始寻找缺陷51Testing软件测试网&h;n ^+{O
51Testing软件测试网3t2| }O5|)U\yW&y
通常所说的累积测试分析(Cumulative Test Analysis,CTA)方法是基于五个基本原则的:
.I%C1H]7l0
:],ql$z ~DvU/l#t9Ts0定期地运行自动化的测试。
+Jqvf:P0了解现有测试材料的实际覆盖和质量。
g[@6x%O)W0运行尽可能少的测试。将测试关注在只运行那些覆盖了发生变更的功能的测试。
{"M+c+~.I1PGq0S5l3|:Q0在做出评估时考虑所有的测试活动。51Testing软件测试网7d@'](A0e$[
由四个较早的步骤所节省下来的时间可以用于增加测试套件的质量,或者执行额外的测试。51Testing软件测试网u@n[ {(fQY
让我们按顺序讨论这些原则。
9R|.g$|0pa0
xRFM_.B&r0原则 1:定期地运行自动化的测试51Testing软件测试网 aJ;Z`3z!d)W s
"ayU i+TP-L0CTA 方法着重于通过在整个的开发循环中运行自动化的测试将“发生缺陷的时间” 1 最小化。任何回归类型的缺陷都可以很早发现,并且与在循环的末尾运行单个的长期回归运行相比使用了最小量的测试。51Testing软件测试网/g"b W%nfc9?
51Testing软件测试网%pm/ms:i)|Z
此测试的目标是提供对所有驱动程序的功能质量的一个观察,作为进一步测试和最终向市场发布的基础。此回归测试减少了进入最终产品的缺陷数量,以及在这期间,减少可能防止新特性的更复杂的测试的基础功能问题。由此可见,这些回归类型的缺陷需要在其最方便确定的时候尽可能快速地清理掉。51Testing软件测试网0oc]$\$b z _
51Testing软件测试网^^q*W3I7kU
原则 2:了解回归测试套件中现有测试材料的质量和覆盖
(o;Hi&q