以下为为我所在公司做的自动化测试做的理论准备:
自动化基本原理为用工具来模拟人的操作,不过具体模拟方式还是有一些区别,如可以模拟鼠标定位和键盘操作,也可以只模拟用户在哪些控件中有输入或其他操作,而不管用户是如何操作的。
自动化主要是由计算机应用自动化工具执行,因此也就有了计算机工具的普遍特点。自动化测试工具(如QTP)不懂得执行的对与错,更不懂页面是否符合要求,只有你告诉它并给出明确的标准,它才会按此标准给出对错。因此如果用自动化来实现新系统的新模块的测试,那就要求软件的界面和提示即使是错误类型都要有一定的标准,并且在编写自动化测试脚本时要考虑所有可能的情况,这样才能真正实现此模块测试的自动化。其实这也是在模拟人的操作。手工测试一个新模块时,人眼一看就知道结果是否符合要求,而自动化工具是需要通过编码进行判断的,因此可以想象一下,手工测试会有多少咱们无意的瞬时操作在应用自动化时要进行大量编码的。所以自动化测试要重点考虑项目的适用性,应用成本和时间成本的问题。
根据成本问题,制定自动化的细度和覆盖率,力求达到一个利益最大化的平衡点,这样才能达到应用自动化的最优化。如果一味追求自动化,则将会发现成本是指数级的增长。
根据自动化测试的性质,自动化测试将不会发现太多的缺陷,但是它为评估软件质量提供了数据支持。
自动化工具本身也是有缺陷的。自动化程度越高(是指没有进行手工测试的情况),则风险也越大。
根据自动化的特点,以及其他公司的使用经验,我认为本公司可以把自动化测试应用到以下范围:
● 迭代式开发过程,目前的软件开发或多或少使用了迭代式开发过程,这就导致了我们需要进行一轮又一轮的测试。[如用于冒烟测试]
● 回归测试
● 提高数据覆盖率
● 兼容性
IBM介绍的自动化测试应用步骤为:
● 建立自动化测试团队:包括业务测试人员,技术测试人员;
● 建立测试规范;
● 培训和提高测试人员的水平;
● 先用典型项目切入,熟悉自动化应用;
● 选取适合自动化测试的用例进行自动化测试,可以辅予手工测试;
● 建立命名规范;
● 不断改进和积累脚本,重视脚本的复用;
● 定期提交测试报告。
咱们公司要应用自动化测试工具进行自动化测试时,首先就是要选择合适的项目,项目要满足一些需求:
● 工具对项目的应用界面上的控件的识别程度,
● 项目的周期要比较长,且经常有升级,
● 项目的界面变化不大,
● 开发已经完成,
● 用于回归测试阶段
● 用于检查已知的错误是否修正
● 用于发现修改是否造成新的错误