检测测验策略模式软件检测测验面试必备

上传人:012****78 文档编号:141752334 上传时间:2020-08-12 格式:DOC 页数:51 大小:722KB
返回 下载 相关 举报
检测测验策略模式软件检测测验面试必备_第1页
第1页 / 共51页
检测测验策略模式软件检测测验面试必备_第2页
第2页 / 共51页
检测测验策略模式软件检测测验面试必备_第3页
第3页 / 共51页
检测测验策略模式软件检测测验面试必备_第4页
第4页 / 共51页
检测测验策略模式软件检测测验面试必备_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《检测测验策略模式软件检测测验面试必备》由会员分享,可在线阅读,更多相关《检测测验策略模式软件检测测验面试必备(51页珍藏版)》请在金锄头文库上搜索。

1、251第18章 测试策略模式_软件测试面试必备第18章测试策略模式18.1 记录测试(也称为记录与回放测试、机器人用户测试、捕获/回放测试)如何准备软件的自动化测试?通过记录与应用程序的交互并使用测试工具回放它们来自动化测试。图18-1 记录测试示意图自动化测试有几个目的。在回归测试软件更改之后,它们可以用于这些软件。它们有助于归档软件的行为。在写软件之前,它们可以指定其行为。如何准备自动化测试脚本,对可以将它们用于什么目的、它们对SUT中的变更有多健壮以及准备它们需要多少技能与努力等产生影响。矚慫润厲钐瘗睞枥庑赖。记录测试使得能够在构建SUT之后、改变它之前迅速创建回归测试。18.1.1 运

2、行原理我们使用一种工具,它会监控我们与SUT的交互。这种工具记录大多数SUT对我们的通信以及我们对SUT的响应。录音会话完成之后,可以将它保存在文件里以便稍后回放。准备运行测试时,可以从工具的“回放”部分开始,并让它指向录音会话。它启动SUT,并给它提供响应SUT输出的记录输入。在录音会话内,它也可以比较SUT的输出及其响应。错误匹配可能导致测试失败。聞創沟燴鐺險爱氇谴净。有些记录测试工具允许调整录音会话内SUT表现与回放过程中SUT表现之间比较的敏感性。大多数记录测试工具通过用户界面与SUT交互。残骛楼諍锩瀨濟溆塹籟。18.1.2 使用时机如果应用程序正在运行,但不希望对它进行太多变更,就可

3、以使用记录测试进行回归测试。现有应用程序需要重构(预计修改功能性)而没有可用的脚本测试用作回归测试时,也可以使用记录测试。通常,生成一组记录测试比准备具有相同功能性的脚本测试更快。在理论上,任何知道如何运行应用程序的人都可以完成测试记录,几乎不需要专业技术。实际上,许多商业工具都值得深入学习。同时,需要一些专业技术来添加“检查点”,以便调整回放工具的敏感性,或者调整测试脚本(如果记录工具记录了错误信息)。酽锕极額閉镇桧猪訣锥。大多数记录测试工具通过用户界面与SUT交互。如果SUT的用户界面不断发展,这种方法特别容易让它们变得脆弱(接口敏感性,参见“脆弱测试”)。甚至是小的变更(例如改变按钮或字

4、段的内部名称)也足以让回放工具产生错误。这些工具也倾向于在低级别详细记录信息,这样会让测试难以理解(参见“模糊测试”)。因此,如果对SUT的变更中止了这些工具,也很难手动修复它们。所以,如果SUT不断发展,就要准备有规律地再记录测试。彈贸摄尔霁毙攬砖卤庑。如果要使用作为文档的测试或者要使用这些测试驱动新的开发,就应该考虑使用脚本测试。使用商业记录测试工具难以实现这些目标,因为大多数工具不允许定义用于测试记录的高级语言。将记录测试性能构建到应用程序本身之中或者使用重构的记录测试可以解决这个问题。謀荞抟箧飆鐸怼类蒋薔。变体:重构的记录测试这两种策略的混合是,使用“记录、重构、回放”1 名称“记录、

5、重构、回放”是Adam Geras提出来的。顺序从最新记录测试中提取一组“动作组件”或“动词”,然后通过测试用例来调用这些“动作组件”(而不是使用详细的内联代码)。大多数商业捕获/回放工具提供将字面值转换为参数的方法,主要的测试用例可以将这些参数传递到“动作组件”。屏幕改变时,只需再记录“动作组件”,所有测试用例自动使用新的“动作组件”定义继续运行。这种策略在效能上与使用测试实用程序方法与单元测试中的SUT交互相同。它允许使用重构的记录测试组件作为脚本测试中的高级语言。像Mercury Interactive的BPT2 BPT是“业务进程测试(Business Process Testing)

6、”的缩写。这样的工具以自顶向下的方法将这一范式用于脚本测试。开发完高级脚本并指定了测试步骤所需的组件之后,更多的技术人员就可以记录或手动编码单个组件。厦礴恳蹒骈時盡继價骚。18.1.3 实现方式说明使用记录测试策略时,有两种基本选择:可以获得第三方工具,它记录与应用程序交互时发生的通信;可以将“记录与回放”机制内置于应用程序。茕桢广鳓鯡选块网羈泪。1. 变体:外部测试记录在商业上有许多测试记录工具可用,每种工具都有自身的优缺点。最好的选择取决于应用程序用户接口的性质、预算、要验证的功能性的复杂性以及其他可能的因素。鹅娅尽損鹌惨歷茏鴛賴。如果要使用测试来驱动开发,就需要挑选使用测试记录文件格式的

7、工具,这种格式可以手动编辑且易于理解。需要手动编写内容,如果使用“记录与回放”工具来执行测试,这种情况也还是脚本测试的示例。籟丛妈羥为贍偾蛏练淨。2. 变体:内置测试记录也可以将记录测试性能内置于SUT。在那种情况下,可以用相当高的级别定义测试脚本“语言”,级别足够高,就可以在构建系统之前手动编写测试。实际上,有报告说Microsoft Excel电子数据表的VBA宏性能是Excel自动化测试机制的开端。預頌圣鉉儐歲龈讶骅籴。18.1.4 示例:内置测试记录从表面上看,提供记录测试的代码样本没有意义,因为这种模式处理生成测试的方法,而不是表示它的方法。回放测试时,实际上就是数据驱动测试。同样,

8、通常不重构到记录测试,因为它经常是项目尝试的第一种测试自动化策略。而且,如果发现有过多遗漏的测试,还可以在尝试脚本测试之后引入记录测试,因为手动自动化的成本太高。在那种情况下,不应该试图将现有脚本测试转换为记录测试,应该记录新测试。渗釤呛俨匀谔鱉调硯錦。下面是应用程序本身记录的测试的示例。该测试用来回归测试安全关键的应用程序,并且在它从OS2上的C移植到Windows上的C+之后。请注意,记录的信息如何形成用户易于理解的域专用高级语言。铙誅卧泻噦圣骋贶頂廡。 5566 SOUTH SOUTH NORTH SOUTH NORTH 该样本表示回放测试的输出。内置回放机制插入了actual元素。st

9、atus属性表示这些元素是否匹配expected值。将样式表应用于这些文件来格式化它们,就像具有彩色编码结果的Fit测试一样。然后项目的商业用户可以进行记录、回放和结果分析。擁締凤袜备訊顎轮烂蔷。在软件的表示层插入挂钩可以记录用户和用户响应提供的选项列表。其中一个挂钩的示例如下所示:if (playback_is_on() choice = get_choice_for_playback(dialog_id, choices_list); 贓熱俣阃歲匱阊邺镓騷。 else choice = display_dialog(choices_list, row, col, title, key);

10、坛摶乡囂忏蒌鍥铃氈淚。if (recording_is_on() record_choice(dialog_id, choices_list, choice, key); 蜡變黲癟報伥铉锚鈰赘。方法get_choice_for_playback检索used-value元素的内容,而不是要求用户从选项列表中选取。方法record_choice生成actual元素并“断言”expected元素,记录各元素status属性的结果。注意,当处于回放模式时,recording_is_on()返回true以便记录测试结果。買鲷鴯譖昙膚遙闫撷凄。18.1.5 示例:商业记录与回放测试工具几乎有所商业测试工具

11、都使用“记录与回放”隐喻。每种工具都定义自己的记录测试文件格式,其中大多数都非常冗长。下面是使用Mercury Interactive的QuickTest Professional QTP工具记录的测试的“简短”摘要。它显示于“专家视图”中,该视图表示真正记录的内容:VbScript程序!该示例包括手动插入的注释(前缀为)来说明测试在做什么,如果改变导致测试不再运行的应用程序之后记录测试,那么就会丢失这些注释。綾镝鯛駕櫬鹕踪韦辚糴。 GoToPageMaintainTaxonomy()Browser(Inf).Page(Inf).WebButton(Login).Click驅踬髏彦浃绥譎饴憂锦

12、。Browser(Inf).Page(Inf_2).Check CheckPoint(Inf_2)猫虿驢绘燈鮒诛髅貺庑。Browser(Inf).Page(Inf_2).Link(TAXONOMY LINKING).Click锹籁饗迳琐筆襖鸥娅薔。Browser(Inf).Page(Inf_3).Check CheckPoint(Inf_3)構氽頑黉碩饨荠龈话骛。Browser(Inf).Page(Inf_3).Link(MAINTAIN TAXONOMY).Click輒峄陽檉簖疖網儂號泶。Browser(Inf).Page(Inf_4).Check CheckPoint(Inf_4)尧侧閆繭

13、絳闕绚勵蜆贅。 AddTerm(A,Top Level, Top Level Definition)识饒鎂錕缢灩筧嚌俨淒。Browser(Inf).Page(Inf_4).Link(Add).Clickwait 4Browser(Inf_2).Page(Inf).Check CheckPoint(Inf_5)凍鈹鋨劳臘锴痫婦胫籴。Browser(Inf_2).Page(Inf).WebEdit(childCodeSuffi x).Set A恥諤銪灭萦欢煬鞏鹜錦。Browser(Inf_2).Page(Inf).WebEdit(taxonomyDto.descript).Set Top Level Browser(Inf_2).Page(Inf).WebEdit(taxonomyDto.definiti).Set Top Level Definition 鯊腎鑰诎褳鉀沩懼統庫。Browser(Inf_2).Page(Inf).WebButton(Save).Click 硕癘鄴颃诌攆檸攜驤蔹。wait 4Browser(Inf).Page(Inf_5).Check CheckPoint(Inf_5_2) 阌擻輳嬪諫迁择楨秘騖。 SelectTerm(A-Top Level) Browser(Inf).Page(Inf_5).WebList(sel

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号