自动化软件测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适使用自动化测试。通常需要同时满足以下条件:
哪套测试活动、测试技术已经被证明对于发现这类测试最重要? 有哪些关键测试需要不断地重复或频繁运行?
是那些投入最多的测试在创造最多的价值么?
选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本。测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求。
在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑。在考虑产品性价比的同时,应充分关注产品的支持服务和售后服务的完善性。
尽量选择趋于主流的产品,以便通过行业间交流甚至网络等方式获得更为广泛的经验和支持。
应对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。
任何一种产品化的测试自动化工具,都可能存在与某具体项目不甚贴切的地方。再加上,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同, 甚至在一个应用中可能就跨越了多种平台;或同一应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸 多方面的风险和成本开销。
自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成测试脚本