当前课程知识点:软件工程与软件自动化 > 第五章 软件自动化技术 > 5.4 测试自动化 > 测试自动化视频
嗨,大家好
今天我们来讨论测试自动化,或者叫自动化测试
这里我们对这两个概念不做区分
说到自动化测试,它和手工测试有着很明显的差
别
手工测试是用测试者的人脑来执行流程
给一个输入,人脑先算一遍,得出预期的结果
然后看程序跑出来的结果和预期的输出是 否一致
然后看程序跑出来的结果和预期的输出是 否一致
而自动化测试则是用程序A来测试程序B
开发者不参与测试的执行过程
随着测试自动化的发展
测试工程师的职位也发生了细微的变化
原来手工测试的工程师叫STE
而专门做自动化测试的工程师则叫SDET
据说一些自动化程度比较高的专业软件公司
他们只保留SDET职位,而把STE职位外包给其他
软件公司
这里我们可以看出,程序A的开发最好能够借 助成熟的工具和框架
简化测试过程,降低测试难度
提高自动化程度和可靠性
测试自动化是一个循序渐进的过程
不可能一股脑的全部上自动化
哪些测试上自动化,哪些测试上人工
自动化什么时候上
这些问题属于自动化测试策略
下面我们来看一看如何确定这些策略
首先要确定哪些测试适合自动化
很明显,并不是所有的项目
或者是项目的所有测试都适合用自动化测试
最明显的,比如用户界面是否美观这些主观测试
是不适合做自动化测试的
一般可以通过列表的方式挑选那些最能缩短项目
周期
最能减少开发风险和最能提高测试精度的测试
然后对每个自动化测试估计它的时间消耗
这个时间消耗不是这个测试执行时间
而是开发这个自动化测试的时间
比如脚本的开发、环境的配置等等
第三步要根据测试目标来确定自动化测试的优先
排列
然后根据资源和人员进行安排
制定自动化测试计划,逐步展开自动化测试工作
哪些项目或项目中的哪些部分适合自动化测试
哪些不合适呢
这里大致地列出了一些特征供大家参考
产品型的项目往往有很多版本
不同版本之间只有少量的功能差异
那些大部分没有改动的功能需要反复测试
也就是适合使用自动化测试
增量式开发和持续集成的项目需要频繁地发布可
运行版本
也需要用自动化测试来进行频繁的测试
适合自动化测试的还有那些重复性高的测试,比
如边界值测试、回归测试等等
适合自动化测试的还有那些重复性高的测试,比
如边界值测试、回归测试等等
其实,大家都看明白了
哪些适合测试,哪些不适合测试,很简单
涉及到主观感受的测试只能人工测,不能自动化
测
这是没办法的事
一般自动化测试耗费的时间是手工测试的6-10倍
我们辛辛苦苦开发了测试脚本,配置了测试环境
我们当然希望能尽可能的重复利用这些工作,让
收益最大化
也就是说不能测的手工测
一旦自动测了,必须物有所值才行
下面谈一下自动化测试的排序问题
前面说了要评估自动化测试的时间
具体怎么评估,可以计算自动化测试与手工测试
的时间消耗比
这个消耗比越大,说明这个测试进行自动化的投 资越值得
但是这些时间的评估必须根据企业测试人员的
的实际测试技能、测试软件的实际特征
以及测试工具的实际使用复杂度等等进行判断
除了前面提到的通过列表的方式来确定
初始的优先级这样一个排列之外
工作启动之后,往往采取迭代的方法确定下一批
自动化测试
总之,就是少花钱,多办事
从简单到复杂逐步展开自动化测试工作
自动化测试不是一件容易的事情
不能把自动化测试简单的看作是
运用一套自动化测试工具的这样一个过程
而应该把实施自动化测试看成一个项目
而且把这个项目看作企业的一个新的里程
推行自动化测试,会涉及到很多人
只有高层领导对自动化测试表示了信任和支持
才能推动财务和其他相关职能部门进行协同工作
测试主管直接监督企业整个测试过程的实施
并确定测试日程、战略、资源分配和工作细节等
因此必须要获得测试主管对自动化测试的大力支
持
对测试人员来说,一旦实施了自动化测试
必将改变测试人员的原有工作方式
需要他们学习新的技能
与开发人员之间的配合也要更密切
也需要他们严格遵守新的测试流程和规范
测试人员需要理解自动化是如何提高工作效率的
并清楚遵守测试流程的必要性
还要明确认识自动化测试和手工测试的平等关系
并非所有人都要成为自动化测试专家
自动化测试也无法完全取代手工测试
以免造成不必要的心理失衡
另外,不要认为自动化测试与开发人员无关
获得开发人员对自动化测试的支持是非常关键的
我们需要鼓励开发人员开发优质的代码
增强软件的可测性
并通过有效沟通提高测试的覆盖率
最后,如果发现组织中有不适合测试自动化的部
分
我们还需要进一步改进组织管理过程
为测试自动化的推进扫除障碍
最后,我们看一看自动化测试活动中
存在哪些常见的认识误区
第一个误区就是盲目在项目中使用自动化测试工
具
看到别的公司,别的项目使用自动化测试获得了好的回报
就眼红了
不顾自身团队的素质是否适合使用自动化
就盲目购买自动化的测试工具
企图通过这个工具就能简单地提升测试质量和测
试效率
第二个误区就是,认为花了钱买了工具
就应该充分利用这个工具,不能白花钱
于是就规定了程序员单元测试覆盖率的最低标准
强迫开发人员把很多精力放在自动化测试上
却忽略了软件测试开发当中的质量控制
这种行为舍本逐末
不但没有好处,反而被自动化测试工具所累
总之,要客观认识自动化测试的优势和不足
逐步提升团队的自动化测试能力
积累自动化测试经验,逐步推进自动化测试进程
为软件开发的持续化集成
和持续化部署积累技术基础和实践基础
好,测试自动化就讨论到这里
后面请大家看几段有关自动化工具的演示
加深对这部分内容的感性认识
-1.1 软件工程的前生今世
--开篇阅读
--授课视频
-第一章 软件工程基础--1.1 软件工程的前生今世
-1.2 万变不离其宗
--授课视频1/3
--授课视频2/3
--授课视频3/3
-第一章 软件工程基础--1.2 万变不离其宗
-1.3 唯一不变的是变化
--授课视频1/3
--授课视频2/3
--授课视频3/3
--外部链接
-第一章 软件工程基础--1.3 唯一不变的是变化
-1.4 亡羊补牢为时不晚
--授课视频1/2
--授课视频2/2
-第一章 软件工程基础--1.4 亡羊补牢为时不晚
-扩展阅读与话题讨论
--扩展阅读
--话题讨论
-2.1 方法论来源于恐惧
--授课视频
-第二章 敏捷开发--2.1 方法论来源于恐惧
-2.2 敏捷是什么
--授课视频
-第二章 敏捷开发--2.2 敏捷是什么
-2.3 典型敏捷开发方法
--XP敏捷开发方法
-第二章 敏捷开发--2.3 典型敏捷开发方法
-2.4 敏捷不是万能药
--授课视频
-第二章 敏捷开发--2.4 敏捷不是万能药
-专家谈敏捷
-扩展阅读与话题讨论
--外部链接
--话题讨论
-3.1 面向对象核心概念和基本特性
-第三章 OO与UML--3.1 面向对象核心概念和基本特性
-3.2 面向对象设计基本原则
-第三章 OO与UML--3.2 面向对象设计基本原则
-3.3 通用职责分配模式(GRASP)
--通用职责分配模式
-3.3 通用职责分配模式(GRASP)--作业
-3.4 从重构到模式
--模式和设计模式
-第三章 OO与UML--3.4 从重构到模式
-3.5 使用UML设计面向对象系统
--UML综述
-第三章 OO与UML--3.5 使用UML设计面向对象系统
-3.6 主要UML模型图绘制技巧
--UML用例图
--UML类图
-第三章 OO与UML--3.6 主要UML模型图绘制技巧
-扩展阅读与话题讨论
--设计模式有毒么?
--话题讨论
-4.1 案例简介
--书籍参考
--案例说明
-4.2 对象模型之一
--授课视频1/2
--授课视频2/2
-第四章 对象模型分析--4.2 对象模型之一
-4.3 对象模型之二
--授课视频1/2
--授课视频2/2
-第四章 对象模型分析--4.3 对象模型之二
-4.4 对象模型之交互
--授课视频
-第四章 对象模型分析--4.4 对象模型之交互
-扩展阅读与话题讨论
--图书推荐
--话题讨论
-5.1 软件自动化概述
--软件自动化概述
-第五章 软件自动化技术--5.1 软件自动化概述
-5.2 典型自动化方法和工具
-第五章 软件自动化技术--5.2 典型自动化方法和工具
-5.3 文档自动化
--文档自动化视频
-第五章 软件自动化技术--5.3 文档自动化
-5.4 测试自动化
--测试自动化视频
-第五章 软件自动化技术--5.4 测试自动化
-专家访谈
-扩展阅读与话题讨论
--话题讨论
-6.1 持续集成
-第六章 CI/CD与DevOps--6.1 持续集成
-6.2 持续交付和部署
-第六章 CI/CD与DevOps--6.2 持续交付和部署
-6.3 DevOps
-第六章 CI/CD与DevOps--6.3 DevOps
-专家访谈
-扩展阅读与话题讨论
--DevOps专题
--话题讨论
-7.1 质量和质量保证
--授课视频
-第七章 软件质量保证--7.1 质量和质量保证
-7.2 软件质量模型
--授课视频
-第七章 软件质量保证--7.2 软件质量模型
-7.3 SQA组织与职责
--授课视频
-第七章 软件质量保证--7.3 SQA组织与职责
-7.4 全面软件质量管理
--授课视频
-第七章 软件质量保证--7.4 全面软件质量管理
-专家访谈
--专家访谈
-扩展阅读与话题讨论
--外部链接
--话题讨论
-8.1 软件过程综述
--授课视频
-第八章 软件过程改进--8.1 软件过程综述
-8.2 软件过程改进
--授课视频
-第八章 软件过程改进--8.2 软件过程改进
-8.3 能力成熟度模型
--授课视频
-第八章 软件过程改进--8.3 能力成熟度模型
-8.4 过程改进标准框架
--授课视频
-第八章 软件过程改进--8.4 过程改进标准框架
-扩展阅读与话题讨论
--话题讨论
-9.1软件复用综述
--授课视频
-第九章 软件复用--9.1软件复用综述
-9.2 软件构件技术
--授课视频
-第九章 软件复用--9.2 软件构件技术
-9.3 软件复用实施
--授课视频
-第九章 软件复用--9.3 软件复用实施
-9.4 微服务架构
--授课视频
-第九章 软件复用--9.4 微服务架构
-扩展阅读与话题讨论
--微服务扩展
--话题讨论
-文档提交处--文档提交