`
ruilin215
  • 浏览: 1148302 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

自动化测试框架: 所见即所寻

阅读更多

经过一段时期的框架准备和测试方案编写,实际的冒烟测试已经开始进行。目前还算比较顺利。当然了,工作忙了一点,所以博客的更新速度也降低了。

在编写的过程中,发现对于独立的子窗体的处理还是比较方便和简单的。这些窗体的普遍特点就是结构简单,功能单一,所以对应的处理过程也比较方便。但是对于主窗体来讲,就非常不一样了。可以说,一个系统中的绝大多数窗体,都包含在主窗体中,那么,对于主窗体上的控件的定位问题,就没有我们刚开始设想得那么简单了。

最大的问题,在于重复的问题。我们一般通过控件的一些特征描述,来描述一个控件。但是,在主窗体中,往往拥有相同特征描述的控件不止一个。这是非常有可能存在的事实。

并且,由于很多控件的重叠特性(有些控件被覆盖住了),导致最初设想的“方位”特性,也有可能出错!这个问题困扰我们很久,不光是难以定位控件,也会让测试代码不易读和维护,且受界面影响的可能性就变得更大了。

在解决这个问题的过程中,我们考虑到作为人,来识别界面上控件的时候,并没有遇到任何障碍,其中最关键的原因,就是人已经屏蔽掉了所有不可见(包括隐藏和被覆盖的控件)的控件。这样,人在识别的过程中,就少了很多干扰,定位也越发的简单直接。

判断控件的可见性是非常简单的。但是对于真正不可见的控件的实现,遇到了很多问题,也曾经考虑过绕过去,但是最终我们还是确定,这是一个非常好的原则,必须坚持下去,它将大大改善编写测试代码的简单性和可读性。

首先遇到的是一种方式,是将控件的位置,设置在远离屏幕的位置,比如说在(-10000, -10000)到(0,0)之间,那么其区域并不在桌面上,最后也必然不可见。

最复杂的是控件的层叠。在Delphi中,针对Controls,存在一个ZOrder的概念。不同的语言有着不同的处理。Delphi中是不可以直接设置ZOrder的,但是提供了BringToFront和SendToBack两个方法来简单改变ZOrder。我们平时看到的控件层叠,都是通过这个方式来实现的。针对这种层叠方式,我们通过判断其是否被ZOrder更高的控件覆盖来判断。

通过对几种常见的可见性方式的判断,我们发现主窗体中的控件定位变得非常简单。这为我们下一步的测试代码编写提供了非常好的基础。

在这过程中,感受最深的就是,好的原则一定要坚持下去。好的设计往往不在于最初的设想,而在于过程中的坚持!

分享到:
评论

相关推荐

    基于AI的移动端自动化测试框架.pdf

    为了实现所见即所得的自动化测试框架,文档中提到了Sikuli和AirTest等工具。这类工具可以支持图像识别来进行自动化测试,但它们也存在一些不足之处,例如准确率不足、缺乏层次结构、代码稳定性差、代码可维护性差等...

    AirtestProject次世代UI自动化解决方案

    AirtestProject是一个针对次世代UI自动化测试的解决方案,它支持基于图像识别和控件识别的UI自动化,提供了面向测试开发者的统一接口,并且能够支持产品的持续集成与大规模集群测试。 在详细介绍AirtestProject之前...

    OpenTable:OpenTable前端测试

    OpenTable 是一个知名的在线餐厅预订服务,...这个过程中,开发者运用了多种工具和技术,包括但不限于JavaScript测试框架、代码质量检查工具以及自动化测试工具,以保证OpenTable在全球范围内的高效运行和用户满意度。

    精品(2021-2022年)资料软件开发工具复习整理资料权威完整版.docx

    3. **CASE工具**:CASE(计算机辅助软件工程)工具提供了自动化和标准化的软件开发支持,帮助设计、文档、测试和维护。这些工具提高了效率,减少了人为错误。 4. **所见即所得**:所见即所得的原则应用于许多现代...

    scott:永远不要再调试测试

    斯科特:所有系统都已自动化并准备就绪。 黑猩猩和两名受训者可以把她赶走。 柯克:谢谢你,斯科特先生。 我会尽量不要把它当成个人。 Gradle 将添加到: plugins { id " hu.advanceweb.scott-gradle-plugin " ...

    虚拟仪器图形化编程语言教程 刘君华

    9. **应用实例**:提供实际的工程案例,如控制系统设计、信号处理、自动化测试等,以增强实践能力。 10. **高级主题**:涵盖如G代码生成、并行计算、网络通信、数据库接口等进阶内容,满足更高级别的需求。 通过刘...

    Net4 asp.net 文章管理系统(测试版)

    2. **CuteEditor**:CuteEditor是一款常用的富文本编辑器,它允许用户在Web页面上进行WYSIWYG(所见即所得)编辑,支持图片上传、格式化文本等多种功能,用于在后台管理界面撰写和编辑文章内容。 3. **XML**:XML...

    Dreamweaver网页开发文档

    - **设计视图**:提供所见即所得的编辑环境,方便快速构建页面布局。 - **代码视图**:直接编辑HTML、CSS或JavaScript代码,适合熟悉编码的开发者。 - **拆分视图**:同时显示设计视图和代码视图,便于同步编辑和...

    在线编辑器,HTML编辑器

    2. **所见即所得(WYSIWYG)**:编辑器提供类似Word的界面,用户可以通过点击工具栏按钮直接添加样式和元素,无需接触HTML语法。 3. **实时预览**:编辑器会同步显示代码更改后的效果,方便快速调整和校验布局。 4. ...

    基于jquery的html编辑器布局控件,以可视化设计器方式生成布局代码

    2. **实时预览**:在设计过程中,用户可以实时查看所见即所得的效果,确保布局在设计阶段就能满足需求。 3. **自定义样式**:控件可能支持对每个元素进行样式设置,包括颜色、大小、边距等,满足个性化需求。 4. *...

    Visual Studio.NET C# Study Guide

    4. 设计界面:WYSIWYG(所见即所得)的界面设计工具,用于创建用户界面。 5. 部署工具:支持多种部署方式,如ClickOnce,简化应用程序发布流程。 6. 测试工具:内置单元测试和负载测试工具,确保代码质量和性能。 ...

    DLOG4J安装手册1

    - **用户界面**: 提供了一个所见即所得的在线日记评论编辑器。 #### 2. DLOG4J 1.1的新特性 - **页面结构调整**: 采用静态HTML模板来替代tiles布局框架,所有JSP页面统一放置在`WEB-INF\jsp`目录中,并使用redirect...

    intra-mart 很好的学习资料教程 intramart 日文版教程

    MDA 是一种软件工程方法,允许开发者以模型的形式描述系统,然后通过自动化工具将这些模型转换为实际代码。intra-mart 利用MDA理念,使开发人员能更专注于业务逻辑,而非底层技术实现,从而提高开发效率。 三、...

    HBuilderX.3.7.7.20230316-alpha.zip

    2. **实时预览**:通过LiveView功能,开发者可以在编写代码的同时实时查看页面效果,实现所见即所得的开发体验。 3. **语法高亮与代码格式化**:支持多种语言的语法高亮,同时提供一键代码格式化,使代码更整洁易读...

    2011软件开发工具复习整理资料.pdf

    3. **CASE工具**:CASE工具旨在辅助软件工程,通过自动化处理,使得用户只需定义需求,而不用关心执行过程。 4. **“所见即所得”原则**:这是一种可视化编程理念,允许开发者实时预览代码效果,便于调试和修改。 ...

    SHEF:一个WYSIWYG HTML编辑器框架-开源

    - **build.xml**:Ant构建脚本,用于自动化构建和打包SHEF项目。 - **test**:测试目录,包含SHEF的单元测试或集成测试代码。 - **dist**:发布目录,可能包含了编译后的JAR文件和其他部署资源。 - **nbproject**:...

    195-医院急诊系统源码.zip

    "tinymce" 是一个所见即所得的富文本编辑器,用于在系统中编辑和展示文本内容。 3. **图片和图标**: 文件如 "yiyuanbingfang_fengmiantupian1.jpg" 和 "3.gif" 可能是与医院相关的图形资源,可能是用于展示医院环境...

Global site tag (gtag.js) - Google Analytics