《自动化测试最佳实践》讲座总结

《自动化测试最佳实践》讲座总结

2016年11月26日 - 27日,参加了为期两天的自动化测试最佳实践。讲师是业界大牛陆宏杰。他在微软工作了5年,后来又在Photoshop工作了5年。

自动化测试是软件工程中非常重要的一部分,所以这次课程涉及了很多项目管理中其它内容。在此我针对部分内容做了总结。

0. 为什么要做测试自动化(Why)

测试自动化是为了做持续集成。而持续集成则是为了更早地发现并解决软件缺陷,同时生成项目数据报表(Dashboard)。这些都是为了更好地管理项目。



 

1. 自动化测试能做什么(What)

1.1 自动化测试能做什么

自动化测试是为了预防缺陷。



 

# 为什么不是用自动化测试“发现”bug ?

因为bug有个属性——“版本号”(如:2.1.0)。而自动化测试主要是在提交代码前检查是否有缺陷,这时候还没有生成版本。

(各位想一下自己平时在使用缺陷管理系统(如:Bugzilla)创建bug记录时,是否有个版本号之类的属性)

 

1.2 自动化测试在系统测试中的应用

系统测试是复杂耗时的组织行为。它有几个特点:

a. 它需要大量的准备工作,如测试环境的搭建(要尽可能地模仿真实的用户环境)

b. 它需要项目组全体成员参与,扮演真实环境中的各种角色

c. 因为代价高昂,为了更充分地利用这些投入成本,一般会安排饱和的测试任务(稍稍溢出最大工作量,肯定无法全部完成)

而自动化测试目的决定了它应该适合简短快速的测试用例,不适合漫长复杂的场景。所以自动化测试不适合大规模地应用于系统测试。一般在系统测试中,可以将自动化技术用于测试环境和测试数据的准备工作,以及为重复耗时的工作开发小工具等。系统测试的主要流程还是由人工把控。

 

1.3 人工测试与自动化测试的关系

人工测试是自动化测试的需求来源,对自动化测试提出新的需求。同时自动化测试会替代简单重复性的劳动,推动人工测试朝综合性的以价值为导向的方向发展。



 

2. 如何开展自动化测试

2.1 如何实现测试自动化

没有银弹。任何一款工具,无论是商业的还是开源的,都不能满足具体项目的需求。因为只有充分控制工具本身,才能去控制被测程序。所有自动化工具都要自己写。

# 如何操控被测系统?

测试程序与被测程序运行在同一进程中,直接控制被测程序的行为。

模拟鼠标键盘操作的自动化成本太高,难以维护,不可持续发展。

 
 

猜你喜欢

转载自pre.iteye.com/blog/2363941