网站测试自动化系统—系统应该有的功能

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介:

在前面几篇文章网站测试自动化系统—基于Selenium和VSTT数据驱动测试在测试代码中硬编码测试数据里,大概介绍了编写测试代码的过程。然而光把代码写完了是不够的,自动化测试不仅仅是将原本手工执行的测试用例通过编码的方式自动化。一个完整的自动化测试过程应该包括如下几个过程:

1.         在实验室里面自动选择机器来执行测试过程,比如说为了测试一个软件产品,以Office举例。因为微软已经为Windows发布了很多的版本,Windows XP Windows Vista Windows 7等,而每一个版本的Windows还有不同的变种,例如Vista有企业版,旗舰版,专业版等等,每个变种提供的功能有一点的差别。另外,还要考虑在64位和32位操作系统上安装,还有国际化测试等等。这样一来,为了完全测试Office,测试矩阵肯定非常大,也许需要测试几百个平台,即使以每个平台需要一台测试机估计的话,也需要几百台机器。如果是纯粹人工来管理这些机器的话,不仅费时费力,而且出错的几率会很大比如说你不能找一台32位处理器的机器安装64位的操作系统。因此,一般来说,一个大的软件产品团队都会使用或者自己编写工具来管理测试机。

 

测试网站也是一样的,需要考虑到浏览器之间的兼容性,不同测试类型需要不同的测试机器,以及国际化等方面的因素,同样会要求不少的机器执行测试。因为这个软件的制作涉及到分布式开发的一些理念,所以我不会在这系列的文章里讲解如何实现这种系统。

 

2.         自动准备测试环境,既然机器已经从测试机集群中挑选出来了,下一步就是准备测试环境,例如重装系统(当然啦,Ghost还原也行),安装产品所依赖的软件,以及安装最新版本的产品(每日编译完成以后生成的新版本),将自动化测试用例程序拷贝到测试机,准备测试数据等等。

 

3.         执行自动化测试用例。这一过程,包括我们通常理解的将需要手工执行的测试用例使用编码的方式使之自动运行。另外,这一过程还包括一些可选的子过程:

 

a)        自动生成测试用例所需要的测试数据,生成随机的合法的测试数据不是一件容易的工作。虽然你可以random()之类的函数生成随机数据,但是采用这种简单的方法很难生成合法的数据。比如说,为了测试网站的用户登录系统,大部分网站都是要求用户名不能包括特殊字符,这样你就需要在随机生成数据的过程中添加一些限制条件。

 

一般来说,软件产品在接受用户输入的时候,都会有一些不同的限制条件;因此提供一个生成随机但又合法的测试数据的通用代码库不是一件容易的事情。这也是为什么,我在这系列文章里面,介绍数据驱动测试的原因。

 

b)        自动生成自动化测试用例。这一步骤并不是说录制测试步骤,根据测试步骤生成C#或者其他语言的代码。这里说的是,软件自动生成测试用例,并生成对应的自动化测试代码。比如说,单元测试一般就是根据函数的参数,设计对应的测试用例;在程序中,参数类型一般来说都是有限的,要么就是编程语言自带的固定类型,要么就是程序员自定义的类型。这样我们是有机会根据参数类型,自动生成测试用例的,微软的Pex就是一个这个领域很好的例子。

 

又比如,测试人员可以设计产品的模型,即描述产品应该实现的功能,然后通过特定的软件分析这个模型生成测试用例,微软的Spec Explorer就是这方面的例子。

 

再比如,如果你是在测试一个函数库,例如.NET Framework。一般来说,用户(程序员)使用函数库的时候无非就是一些API的排列组合。我们可以先针对每个公开的API设计单元测试代码,然后编写一个程序将这些单元测试用例随机组合,生成新的测试用例。举个例子,假设要测试数据库连接方面的API,先单独根据Open, ReadData, Close等函数编写好单元测试用例,然后由程序将这些用例随机排列成一些新的用例。当然,随机排列的问题就是会生成非法的调用序列,比如Close, ReadData, Open这个序列的就是非法的。因此测试用例随机产生程序的一个很重要的工作就是在测试工程师的配合下,移除掉这些非法的序列。

 

4.         测试结果收集自动化,因为是同时在多台机器上执行测试用例,要求测试人员手工收集测试结果是一个很麻烦的过程;所以这一部分由程序自动完成是非常必要的, 一般来说,测试用例执行完毕以后,自动化测试脚本会将测试结果自动发布到一个中心数据库上。项目管理团队会通过一些报表服务例如SQL Server Reporting Services等系统来评估以下几个内容:

 

a)        产品哪些组件的风险比较高,即容易出错或者没有完整地测试过。

b)        产品的健壮程度。

c)         是否可以发布产品,或者延期发布?

这篇文章大致总结了自动化测试系统应该完成的任务,本来应该当作绪论写的。不过我觉得可能很多人对纯理论的东西不感兴趣,因此将一些实现细节放在前面先写了。

未完待续……

标签:  测试

本文转自 donjuan 博客园博客,原文链接:  http://www.cnblogs.com/killmyday/archive/2010/03/27/1698411.html  ,如需转载请自行联系原作者

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
26天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
81 8
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
58 1
|
22天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
54 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
Java 测试技术 API
探索软件测试中的自动化框架选择####
在当今快节奏的软件开发周期中,自动化测试已成为确保产品质量与加速产品迭代的关键策略。本文深入剖析了自动化测试的核心价值,对比分析了市场上主流的自动化测试框架,旨在为项目团队提供选型时的考量因素及实践指南,助力高效构建适应未来变化的自动化测试体系。 ####
|
19天前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
69 17
|
1月前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
85 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
监控 测试技术
slb测试会话保持功能
slb测试会话保持功能
37 6