0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

软件测试,测试驱动,极限编程测试框架需要的性质

发表时间:2023-10-01 18:00:55

文章来源:炫佑科技

浏览次数:154

菏泽炫佑科技

软件测试,测试驱动,极限编程测试框架需要的性质

软件开发的方式有很多种,不同的软件开发也需要不同的技术。 下面是小编收集的关于测试驱动开发研究的样本论文,供大家阅读和学习。

[摘要] 在软件测试中,UI测试是保证软件质量、提高软件可靠性不可缺少的一部分。 然而,基于单元的测试驱动开发对UI的重视不够。 本文讨论适合测试驱动开发的 UI 自动化。 讨论了测试框架所需的属性和框架结构,并使用开源框架KIF演示了UI自动化测试在测试驱动开发中的应用。

【关键词】软件测试、UI测试、测试驱动、极限编程

介绍

测试驱动开发是一种新的软件开发方法,坚持测试优先的原则,不仅简化了代码,而且提高了软件的质量。 已成功应用于多个项目的开发。 如今的软件越来越注重软件的用户体验,UI测试也变得越来越重要。 但目前的测试驱动开发主要是通过单元测试驱动来测试代码单元设计的正确性,很少考虑用户和UI。 操作对程序的影响,因此,研究UI测试在测试驱动开发中的应用具有重要意义。

1. 测试驱动开发

测试驱动开发(Test-),简称TDD,是Kent Beck提出的一种软件开发方法。 测试驱动开发将测试作为开发过程的中心。 它要求在编写任何产品代码之前,必须首先编写定义产品代码行为的测试,并且必须以通过测试为目标来编写产品代码。 测试驱动开发要求测试能够完全自动运行,并且在重构代码之前和之后都必须运行测试。

1.1 传统测试方法存在的问题

1)传统的功能测试存在漏洞和冗余,且无法同时发现。 功能测试使测试人员远离代码;

2)传统的结构测试采用有向图来表示代码,制定程序路径,掩盖了代码中的重要信息,在路径分析的方向上走得太远;

3)如果测试编写者在编写测试时依赖于文档而不是代码,那么文档和代码之间的任何不一致都会导致问题;

4) 测试不会自动运行。 它们很可能不会经常、经常或每次都以相同的方式运行。

1.2 测试驱动开发的优点

1)从软件开发的*初阶段开始,TDD就迫使开发人员从测试和用户的角度来审视软件,使他们能够对软件有更全面的理解和掌握。

2)由于保证了同一个程序员编写测试和代码,因此降低了理解代码的成本。

3)减少测试工作量。 无论是否进行设计工作,测试工作都是不可避免的。 先进行单元测试可以减少后续的测试工作量。

4)让程序员更大程度地控制代码的准确性,相当于提供了两种代码审查的手段,为软件成品的质量提供了一定的保证。

1.3 测试驱动开发步骤

1)根据软件设计需求快速添加测试用例;

2)运行所有测试,新添加的测试无法通过;

3)重构代码,尽可能少的改动,使测试通过;

4)运行所有测试,确保所有测试通过;

5)重构代码,消除重复设计;

6) 返回1),直到系统的所有功能测试都写完。

2.界面测试

移动互联网时代,用户体验是软件的重中之重。 为了保证完美的用户体验,软件UI必须经过严格的测试。 UI测试主要分为两个方面:可用性测试和功能测试。 可用性测试用于测试软件的用户界面是否符合用户的使用习惯和心理。 是对用户体验的总结和总结。 用户体验的好坏取决于用户界面是否简单、直观、实用。 良好的用户界面可以大大降低可用性测试的成本。 功能测试是通过外部UI的内容和显示来测试软件内部逻辑的正确性。

2.1 自动化测试

根据测试是否需要人工干预,软件测试可以分为两类:手动测试和自动化测试。 手动测试是指手动输入软件测试数据,然后观察测试结果,并对测试结果进行分析。 与自动化测试相比,手动测试是一种原始的测试方法。 自动化测试是指通过编写测试脚本来测试软件,整个过程不需要人工干预。 手动测试可以根据软件测试的进展情况及时调整测试策略、改变软件测试方法。 手动测试可以仔细观察软件运行和输出的结果。 当需要对测试结果进行主观判断时,手动测试具有明显的优势。 然而,手动测试也有其自身的缺点。 与自动化测试相比,手动测试效率较低,不确定因素较多。 当软件测试需要测试大量数据时,手动测试的局限性就更加明显。 采用手工测试来测试软件,已经不能满足现代软件测试的需要。 因此,采用手动测试和自动化测试相结合的方式来测试软件,可以有效提高测试效率、缩短测试时间、提高测试精度。

与手动测试相比,自动化测试主要有以下优点:

1)提高测试效率

手动测试是劳动密集型的并且容易出错。 自动化测试的引入可以用有效的、可重复的自动化测试环境代替繁琐的手动测试活动,可以在更短的时间内完成更多的测试工作,从而提高测试工程师的工作效率。

2)降低新软件版本回归测试的成本

对于现代软件的迭代增量开发来说,每个新版本的大部分功能和界面都与之前的版本相似或相同。 这时候就需要重新测试新版本了。 这部分工作大多是重复性工作,特别适合使用自动化测试来降低回归测试的成本。

3)完成手工测试无法或难以完成的测试

对于一些非功能测试,如压力测试、并发测试、大数据量测试、崩溃测试等,这些测试很难甚至不可能通过手动测试来完成。 但自动化测试可以轻松执行这些测试,例如并发测试。 使用自动化测试工具可以模拟多方的并发操作。

4) 一致性和重复性

每个自动化测试运行的脚本都是相同的,因此可以进行重复测试,使每个测试保持一致,这是手动测试很难实现的。

5)更好地利用资源

将繁琐的测试任务自动化可以解放测试人员,让他们更加专注于测试用例设计和必要的手动测试。 而理想的自动化测试能够完全按照计划自动运行,使得利用周末和晚上来执行自动化测试成为可能软件测试,测试驱动,极限编程测试框架需要的性质,日常构建技术也变得越来越普遍。 6)降低风险并增加软件信任

自动化测试可以用更少的开销获得更彻底的测试结果,从而更好地提高软件产品的质量。

2.2 自动化测试方法和工具

现在有各种UI自动化测试框架,例如UI自动化测试框架、UI自动化测试框架。 这类软件和软件开发环境是相对独立的。 它们一般都有自己专用的脚本语言和测试用例描述方法,适合传统开发模式下先开发后开发。 测试不符合测试驱动开发的原则。 本文使用开源框架KIF来演示UI自动化测试在测试驱动开发中的应用。

3.适合测试驱动开发的UI自动化测试框架

3.1 测试驱动开发对UI测试的要求通过对测试驱动开发流程和UI自动化测试技术的介绍,可以总结出测试驱动开发对UI测试的要求:

1)可视化:普通的单元测试测试UI的一些功能,但只能证明功能的逻辑正确性,而看不到功能对UI的影响。 通常需要重新编译程序并手动测试UI的正确性。 。 因此,当在测试驱动开发下开发UI测试应用程序时,必须在测试过程中进行可视化。

2)自动化:可以模拟用户在界面上的操作,如点击、滑动、捏合等手势。 这些操作都可以通过各个平台的功能来实现。

语言一致性:由于测试驱动开发遵循“测试优先”的策略,对测试脚本的通用性要求不高,因此使用与软件开发一致的语言不仅可以降低开发人员的学习成本,还可以充分发挥各个平台的使用。 功能。

3)集成的可扩展性:由于当今的开发环境大多与成熟的单元测试框架紧密集成,在此框架的基础上集成对UI控件的访问和操作功能,既可以满足UI测试的需求,又可以保证单元测试的功能性。测试框架。 的完整性。 同时,由于UI操作方式多种多样,因此框架必须灵活并具有一定的扩展能力。

3.2 测试框架结构

UI自动化测试框架是在成熟的单元测试框架的基础上,对单元测试进行了扩展。 此外,它还添加了模拟用户操作的模拟以及对用户操作对象的UI控件的扩展(图1)。

3.3 框架工作流程

根据UI测试框架架构图,可以清楚的看到它的工作流程:

1)加载并解析测试用例(如果有单独的测试用例描述文件);

2)按照测试脚本中描述的操作方法,在界面上进行输入、点击、滑动等操作;

3)通过界面控件的属性与预期结果进行比较来判断执行是否成功;

4) 输出测试结果。

3.4 UI自动化测试驱动开发步骤

根据测试驱动开发步骤,结合UI作为测试核心的需求,总结出基于UI自动化测试的测试驱动开发步骤:

1)根据界面的功能以及用户在界面上的操作,快速添加相应的测试用例;

2)运行所有测试,新添加的测试无法通过;

3)修改用户界面以及界面的交互代码,尽可能少的修改以使测试通过;

4)运行所有测试,确保所有测试通过;

5)重构代码,消除重复设计;

6) 返回1),直到系统的所有功能测试都写完。

4. 测试驱动开发示例

本文通过一个简单的IOS系统登录界面的例子来演示UI测试驱动开发方法。

4.1 UI界面说明

4.1.1 接口功能说明

登录界面有两个文本框和一个登录按钮。 文本框用于分别输入用户名和密码,登录按钮用于确认并提交登录信息。

4.1.2 用户操作要求

1)用户名字符数在3-6个之间;

2)密码字符数在6-8位之间;

3)如果用户输入超过上限,则仅显示前8位;

4)如果用户输入低于下限,则让文本框获得焦点并显示键盘,等待用户继续输入;

5) 单击确认按钮。 如果用户信息不符合要求,则让不符合要求的文本框获得焦点。 符合要求的,提交验证;

6) 单击界面空白处可取消焦点。

4.2 UI自动化测试驱动开发流程示例

在界面中添加两个用户控件文本框、相应的描述标签和一个按钮,并设置其访问属性。 这是程序的初始状态。

4.2.1 用户名输入测试

1)根据用户操作需求自动化软件开发,编写用户输入上限的测试代码如下:

代码解释,输入超出上限,所以文本框中应该显示期望的值。

2) 运行测试。 此时测试失败。 查看测试日志,提示与预期结果不符:

3)修改界面控制器的代码,在文本框中添加输入变化控制代码如下:

4)再次运行测试,测试成功:

5)重复上述步骤,测试制定用户名输入下限等限制。

5 结论

测试驱动开发在各个项目中的成功应用启发了越来越多的开发人员采用这种开发方法。 同时,用户对用户体验的追求也促使开发者越来越关注UI界面上,本文针对这两种现象提出UI测试在测试驱动开发中的应用,重点讨论UI测试的属性和适合测试驱动开发的UI自动化测试框架的架构,并使用IOS平台的KIF实例演示了其实际应用。 在本文提出的架构中,较少考虑测试用例的描述和分析,而这正是下一步的重点。

【参考】

[1] 蔡长霞. 刘建平基于敏捷测试的自动化技术分析与实践[J]. 工业控制计算机,2011,24(10)。

[2] 何浩,程春玲. 基于XML的通用高效用户界面测试方法[J]. 计算机应用,2013,33(1):258-261。

[3] 科恩. Scrum敏捷软件开发[M]. 廖景斌、卢良跃、陈正云等译。 北京:清华大学出版社,2012。

[4],.Scrum 和 XP,来自 ,Lulu[Z].com,2007 年。

[5]杨宜军,黄大庆。 手机自动化性能测试工具的研究与开发[J]. 计算机应用,2012,32(2):554-556。

[6] . .IEEE.Vol5[Z].Sep,2002:48-50。

【UI自动化测试驱动的软件开发方法研究】相关文章:

1、测试驱动开发在软件开发中的应用

2、电气自动化控制设备试验方法

3. 基于自动化单板测试系统的研究论文

4.实时软件开发方法的思考

5.航空航天电子自动化测试系统开发研究

6. PHP驱动方法与技巧全集

7. 如何测试网速

8、基于现代主义风格的UI设计研究

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多