文档章节

浅谈C#控件测试方法

恒生GTN
 恒生GTN
发布于 2017/03/16 17:09
字数 1270
阅读 54
收藏 0

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,由C和C++衍生出来的面向对象的编程语言。作为一种安全、稳定、简单、优雅的语言,其控件功能也是丰富、稳定,而测试则是保证其质量的必不可少的标配。本文基于WPF版本对控件测试的方法进行了归纳和总结,希望对刚接触控件测试的小伙伴有所帮助。

01

测试方法

控件的功能可以分为两类:属性和事件。

1、属性

为了优化测试流程,我们将属性测试分为两个阶段:设计期和运行期。

● 设计期:主要验证无需运行程序即可使用的功能,如属性说明、属性默认值等

● 运行期:主要验证程序运行时呈现的功能,如获取或者设置属性值等

这样划分还有一个好处,如果该项目要实现自动化,那么只需要将运行期用例自动化即可,因为设计期一般不会做改动。

控件众多,属性众多,但无外乎这几类:

● 颜色类:如背景色、前景色,值域为可表示颜色的值

● 数值类:如控件的宽度或者高度,值域是数值,不能是其余文本

● 文本类:如控件的Label值,值域是字符串

● 布尔类:如控件是否可见,值域是布尔值

● 下拉类:如图片与文字的布局方式,值域是布局方式的枚举类

02

1.1设计期

所有属性的设计期用例设计均可使用同一个模板,如下:

说明:前置条件

在xmal编写脚本新增控件

1)如果属性不能恢复为默认值,表示内部赋值逻辑有问题,将导致正常修改属性值

2)设置为值域范围外的值,主要是为了校验数据输入的合法性,如果未做保护,将会增加业务开发引入BUG的可能性,大大影响用户体验

3)属性说明力求简洁清晰,辅助用户了解属性功能

03

1.2运行期

属性运行期的场景较为复杂,但离不开一个核心,那就是对属性值的修改,修改后界面效果

需要符合预期,获取的属性值必须正确。

属性的修改一般有三个入口:

1)设计期,在属性设置窗口修改属性值,然后运行程序

2)运行期,通过代码修改属性的值

3)运行期,通过界面修改属性值,如在文本框中输入文字即修改了属性Value的值

● 颜色类

颜色类运行期用例设计如下:

说明:因为无法在界面中直接修改颜色的值,因此该场景无需测试。

● 数值类

数值类运行期用例设计如下:

说明:该例子为Width类属性运行期的用例设计。

该类属性需要注意边界值的测试,如-1、0、1、最大值、最小值、小数等。

如果该属性不能取负值,如上图中的例子,则需要测试代码中设置负值的场景,应不能设置

成功,且无异常。

● 文本类

文本类运行期用例设计如下:

说明:该类属性除了边界值的测试外,还需要测试各种特殊字符的场景。

● 布尔类

布尔类运行期用例设计如下:

说明:

布尔值类的测试场景较简单,主要是效果正确,且获取属性值正确。

由于该属性在属性设计窗口不可见,只能通过代码修改,因此未区分是在属性设置窗口修改

值还是在代码中。

● 下拉类

下拉类运行期用例设计如下:

说明:该类属性的测试也比较简单,因为值域固定,无需测试异常场景,只要下拉框中的值

依次测试即可。

● 事件

下拉类运行期用例设计如下:

说明:

1)一个事件只能触发一次,触发多次则属于缺陷

2)事件多次触发一般发生在如下场景:

■ 较多功能点交叉

■ 不同场景重复切换

04

总结

控件测试工作量大,且易产生疲劳感,将属性进行归类,是测试规范化的一种体现,将让测

试工作事半功倍:

1)提高用例编写效率,也为之后的用例评审理清了思路,同时提高了用例评审效率。

2)相同类型的用例一起执行亦可提高用例执行效率。

恒生开发者社区-恒生电子面向所有开发者提供的服务分享、技术交流和互联共通等一站式服务平台。

文章来源:恒生技术(文/王婷婷)

© 著作权归作者所有

恒生GTN
粉丝 4
博文 56
码字总数 42411
作品 0
杭州
私信 提问
浅谈C++调用C#的DLL程序方法

本文通过例子,讲述了C++调用C#的DLL程序的方法。作者亲身体会,并作出了以下总结,下面就让我们一起来学习吧。 AD: 把C#编译成DLL或者Axtive控件,再由C调用!比如使用C++调用C#的DLL。 Sw...

zting科技
2017/11/08
0
0
C# WinForm开发系列 - File

介绍文件目录相关操作, 涉及配置文件使用, 编码转换, Web下载, 加密处理等. (文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ) 01. 愚翁专栏 CSDN第一期总结之四:Stream的问题 对于...

长征2号
2017/11/08
0
0
周公51CTO博客有价值文章整理

说明:为方便朋友们查看本博客的文章,特地整理了本博客中周公认为值得一看的文章,不过有些文章因为年代久远且技术更新快的原因,里面所讲述的方法或者理论不再适合,请大家斟酌。 asp.net ...

周金桥
2018/06/29
0
0
自动化测试知识分享

【浅谈自动化的本质】   自动化测试实际就是用程序测试程序。主要还是解决了手工测试的人工维护时间,有效提高了测试效率。 【自动化测试的知识点】   1.了解Javascript, CSS的知识;  ...

白一客
2017/04/10
315
1
C# 窗体控件跟随窗体大小自动调节

测试目的:如何使得窗体内的控件可以跟随窗体大小自动调节 测试环境:WIN10 ENT + VS2015 方法原理:记录初始时窗口大小、控件大小等信息。每当窗口大小变化时,计算窗口大小相对于初始时的缩...

firswof
2017/11/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-铺铜操作(下)

铺铜是PCB很常见的操作,PCB的敷铜一般都是覆地铜,增大地线面积,有利于地线阻抗降低,使电源和信号传输稳定,在高频的信号线附近敷铜,可大大减少电磁辐射干扰,起屏蔽作用。 本讲讲解啊一...

demyar
14分钟前
1
0
如何通过WASI SDK 在Linux上编译ZXing C++

Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如...

yushulx
16分钟前
2
0
.Net界面开发神器—DevExpress官方汉化包免费下载!还在等什么?

点击获取DevExpress v19.1.7新版试用下载 DevExpress Localization Service允许您创建一组自定义的附属程序集,要将语言包添加到程序集中,请查看本文中为大家列出的对应版本的汉化包,下载并...

FILA6666
16分钟前
2
0
php生成二维码

        header('Content-Type: image/png');        //清除缓冲区,防止之前面不知道的情况下被加头部信息导致不显示图片内容        ob_clean();        $...

横着走的螃蟹
21分钟前
2
0
伪类和伪元素

伪类和伪元素 伪类和伪元素,对于绝大多数同学来说,都是耳熟能详的名字,但确实又有很多人搞不清楚它们之间的区别,以致于混淆概念。而当概念都混淆的时候,也往往意味着你不会经常使用它,...

不负好时光
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部