微软UI测试自动化和软件测试开发工程师的例子
发表时间:2023-09-29 17:01:27
文章来源:炫佑科技
浏览次数:140
菏泽炫佑科技
微软UI测试自动化和软件测试开发工程师的例子
自动化测试之所以是前沿技术,在于自动化测试的技术难度,尤其是UI测试自动化。 与软件产品一样,自动化测试程序也注重性能、稳定性、可扩展性等指标。 除了测试程序必须实现与目标程序相同的功能以便能够验证结果之外,测试程序还需要实现额外的功能来观察目标程序的行为。 例如,如果要自动测试命令“dir C:\*.txt”,测试程序不仅要实现与dir相同的文件读取和通配符扩展功能,还需要读取dir命令的输出比较结果。 正确的。 同时,它还必须支持与dir命令相同的灵活性和可扩展性。
这使得自动化测试可能比其测试目标更难实施。 对于UI产品的自动化,实现涉及读取GUI的图像输出(例如检查是否正确弹出)、模拟用户的鼠标和键盘输入(例如模拟用户保存文件时选择正确的保存路径) )和同步。 测试产品和用户沟通等,这些技术门槛使得自动化测试成为一把双刃剑。 成败不在于是否做,而在于你是否有能力把它做好。 下面的介绍将使您更加深入详细地了解微软的UI测试自动化和软件测试开发工程师(Test,以下简称SDET)。
举一个非常具体的 UI 自动化示例:
1.启动计算器程序(calc.exe)
2、模拟用户的菜单输入,从普通模式切换到科学模式
3、模拟用户计算(4+6/2)的阶乘
4、检查计算结果是否正确
要求:
1、整个流程的执行在4秒内完成
2.能够适应不同的分辨率和语言(不同语言的菜单项文本是不同的!)
3、可以稳定执行。 除非产品本身有bug,否则序列是不允许失败的。
4、如果下一个版本的calc.exe改变了UI风格(Win7中已修改),或者WPF实现发生改变,则只需简单修改即可继续使用现有的测试代码。
对于那些刚刚加入SDET的人来说,它的实现已经够困难的了,他们宁愿自己写一个calc.exe程序。 无论是学校教学还是课外研究,关于UI自动化的信息几乎为零。 诉诸功能和需求需要工程师结合已知的知识和技能来找到解决问题的*佳方法。
UI自动化实际上是一种进程之间的通信。 测试程序需要通过某种与目标程序的进程通信方式来获取目标程序的信息,包括UI元素的位置和显示的文本内容,然后模拟用户在特定位置点击鼠标等操作。 进程间的通信方式方面,平台上有很多选择,比如管道、TCPIP、消息、共享文件、RPC等。对于UI自动化来说,*容易想到的解决方案就是消息。 计算器窗口、菜单和按钮位置可以通过消息和相关API获取。 但当你真正开始使用消息来实现UI自动化测试时,你会发现消息的一些缺点。 例如,WPF程序中无法使用消息,Excel或IE中的UI子元素无法获取。
因此,除了消息传递之外,工程师还需要更深入地思考其他技术。 同时,您需要研究 内部的各种 UI 测试,以了解不同的实现技术、它们的优缺点以及它们与测试目标的匹配程度。 经过不断的探索、实验和原始代码分析,工程师将对微软的各种平台技术有深入的了解。 整个过程就是一个将基础理论知识转化为产品相关生产力的过程。
UI 自动化对于 SDET 有两个含义。 首先,对技术的熟悉程度决定了测试工作的质量。 另外,由于UI自动化所涵盖的技术范围和深度,该技术是锻炼SDET的良好平台。 微软对工程师的技术技能要求并不局限于固定的领域,而是要求工程师培养出可以通用的核心能力。 例如,作为一名SDET,经过2年的努力自动化软件开发,他在平面设计的界面测试中取得了90分的成绩,他前两年积累的技术能力必须能够保证他能够达到90分在新项目和职位中处于同一水平。 UI自动化是一个非常好的锻炼这样的核心竞争力的平台,因为它至少包括:
1. 熟练掌握微软常用的开发工具和技术微软UI测试自动化和软件测试开发工程师的例子,如C#、.NET、多线程等。 将开发技能应用到实际项目中。
2、熟悉平台的系统知识,如进程间通信、Win32消息机制等。 站在微软工程师的角度,通过具体的项目和代码充分了解平台。
3、锻炼在压力下解决实际问题的能力,如深入分析COM/DCOM,研究UI底层实现,解决技术细节。
4、熟练的调试技巧。 UI自动化的开发过程涉及到测试程序和目标程序,调试时需要处理两者之间的同步问题。 同时,UI自动化的稳定性是一个比较难解决的问题。 调试偶然的错误是一项非常具有挑战性的任务。
5、熟悉微软自动化测试开发过程中的项目流程。 *终,不仅给SDET带来了测试技能的飞跃,也让工程师更加熟悉被测试的产品,更好地保证产品质量。
当一个SDET经历过UI自动化测试并具备了上述技能时,就意味着他熟悉了微软平台的开发技巧,体会到了程序开发过程中通常会怎样出错、如何调试、在什么情况下出错。工程师很容易犯错误。 根据他的判断和假设,他可以轻易地破坏别人的程序并找到漏洞。 这不仅是测试工作的良好起点,如此扎实的技术背景也让工程师能够事半功倍地学习和发展其他技能。 换句话说,自动化测试是微软产品确保其持续成功的重要技术; 对于优秀的SDET来说,这是一项不可或缺的重要技能; 对于新入职的工程师来说,个人经历和学习自动化测试,尤其是UI自动化,可以帮助你从学生生活过渡到职业生活。