轻量级软件测试自动化(英语:Lightweight software test automation)是设计相对简单及短的计算机程序(称为轻量级测试工具)来测试软件系统的过程。轻量级测试工具不限定某种编程语言,不过最常用Java、Perl、Visual Basic .NET及C#实现。轻量级测试工具的原代码一般不超过四页、撰写时间不超过四小时。轻量级测试自动化常和敏捷软件开发一起使用。
简介除了轻量级软件测试自动化外,另外三种软件测试自动化的方式是商业测试自动化框架软件、开源测试自动化框架以及重量级测试自动化。轻量级测试自动化的主要缺点是可管理性较弱,因为轻量级测试自动化相对较简单,也容易实现,相较起来,制作不同的测试工具、测试用例文件、测试结果文件……会花掉相当多的时间。不过轻量级测试自动化也有一些明显的好处:相较于商用框架,轻量级测试自动化初期成本较便宜,可变性也较高。相较于开源框架,轻量级测试自动化因为其更新较少,也没有外在的相依性,因此比较稳定。相较于重量级框架,轻量级测试自动化框架要实现及修改都比较简单。轻量级软件测试自动化一般会用来补足上述的测试自动化方式,而不是取代上述的作法。
在回归测试时,轻量级测试自动化非常有用,其测试目的只是验证新加入待测系统的代码不会造成新的软件问题。轻量级测试自动化也可以用在其他软件测试的领域,例如性能测试、压力测试(Stress testing)、负载测试、安全性测试、代码覆盖率分析、软件突变测试等。詹姆斯·麦卡弗里广泛的提出意见,倡导轻量级软件测试自动化。1
敏捷软件开发敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
敏捷软件开发(或称快速程序开发RAD)描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成。敏捷软件开发主张适度的项目、进化开发、提前交付与持续改进,并且鼓励快速与灵活的面对开发与变更。这些原则支持许多软件开发方法的定义和持续进化。1
回归测试回归测试是软件测试的一种,旨在检验软件原有功能在修改后是否保持完整。
回归测试过程:
识别出软件中被修改的部分
从原基线测试用例库“T”中,排除所有不再适用的测试用例,确定对新版本依然有效的测试用例,创建新的基线测试用例库“TN”
依据一定的策略从TN中选择测试用例测试被修改的软件
如果必要,生成新的测试用例集“T1”,用于测试TN无法充分测试的软件部分
用T1执行修改后的软件
第2和第3步测试验证修改是否破坏了现有的功能,第4和第5步测试验证修改工作本身。2
软件测试软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和品质的过程。据此,您可能会想,软件测试永远不可能完整的确立任意电脑软件的正确性。然而,在可计算理论(计算机科学的一个支派)一个简单的数学证明推断出下列结果:不可能完全解决所谓“死机”,指任意计算机程序是否会进入死循环,或者罢工并产生输出问题。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件品质,并对其是否能满足设计要求进行评估的过程。
软件测试有许多方法,但对复杂的产品运行有效测试不仅仅是研究过程,更是创造并严格遵守某些呆板步骤的大事。测试的其中一个定义:为了评估而质疑产品的过程;这里的“质疑”是测试员试着对产品做的事,而产品以测试者脚本行为反应作为回答。虽然大部分测试的智力过程不外乎回顾、检查,然而“测试”这个词意味着产品动态分析──让产品流畅运行。程序品质可能,而且通常会,随系统不同而有差异;不过某些公认特性是共通的:可靠性、稳定性、轻便性、易于维护、以及实用性。1
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所