+ [CSS 定位](#CSS__276)
+ [css 中的结构性定位](#css__285)
一、 手工测试与自动化测试
关于软件测试领域名词颇多,发现有许多测试新手混淆概念,从不同的角度可以将软件测试有不同的分类的方法;所以,这里汇总常见软件测试的相关名词,对软件测试领域有个概括的了解。
根据项目流程阶段划分软件测试
上图是一个典型“V”模型软件开发流程,那么各项软件测试工作是在项目开发流程中循序渐进进行的。下面将介绍各个阶段测试的含义。
手工测试
手工测试就是由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。
手工测试并不非专业术语,手工测试通常是指我们在系统测试阶段所进行的功能测试,为了更明显的与自动化测试进行区分,所以这里使用了手工测试。
自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
自动化测试又可分为:功能自动化测试与性能自动化测试。
我们一般所说的自动化测试就是指功能自动化测试,通过相关的测试技术,通过编码的方式用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复的测试。如果一个软件一小部分发生改变,我们只要修改一部分自动化测试代码,就可以重复的对整个软件进行功能测试;从而大大的提高了测试效率。
性能自动化测试,当然,除了早期阶段,现在的性能测试工作都是通过性能测试工具辅助完成的。通过工具可以模拟成千上万的用户向系统发送请求,用来验证系统的处理能力。
点击领取辅助学习资料
二、自动化测试语言的选择
通过前面的介绍,我们了解到 selenium webdriver 支持多种语言的开发,java、python、ruby、php、C#、JavaScript 等,那么我们应该选择哪一种语言结合 selenium webdriver 进行开发呢?这里笔者给出一点自己的看法。
有同学说我们公司的软件是用某种语言开发,自动化也要选某语言;其实从本质上来说,使用软件开发语言和自动化开发语言没有任何联系。所以,在选择语言进行自动化测试时不要有这方面的顾虑。从个人来讲,自动化测试所用到代码与开发人员相同,自己的编码能力一般没开发人员强,会糟鄙视,从而也降低了自身的不可替代性。
选择与开发相同的语言当然也有有利的一面,测试人员通过自动化测试的实践,提高了自己的编码能力,也有助于其它测试工作的进行,比如,协助开发人员定位代码级的 bug, 协助开发人员进行接口测试
等。
本书并没有向前面几本 selenium 书选用应用更为广泛的 java 、C# ,而是选用了 python,主要有以下几个方面考虑。
对于编程能力比较弱的初学者来说,python 与 ruby 等语言更容易学习和使用。通过自动化测试技术的实践,我们不仅掌握了自动化测试技术,从而也掌握一门语法简单且功能强大的脚本语言。(本书中对涉及到的 python 知识都会做详细的讲解,所以没有 python 基础的同学完全不用担心),那为什么不选 ruby而选 python 呢?从笔者角度来看,python 语言除了在自动化测试领域有出色的表现外,在系统编程,网络编程,web 开发,GUI 开发,科学计算,游戏开发等多个领域应用非常广泛,而且具有非常良好的社区支持。也就是说学习和掌握 python 编程,其实是为你打开了一道更广阔的大门。ruby 是一个“魔法”语言,时常会给你带来很多惊喜,python 的宗旨是使处理问题变得更简单,而且格式严谨,在协同编程时
不容易产生混乱。所以,综合考虑笔者认为 python 更适合测试菜鸟的养成计划。
那么对于有编程经验的同学,学习 python 对你来说几乎没有任何成本,你完全可以在很短的时间内学习和使用 python 处理问题,有一个看上去还不错的一门语言,为什么不去尝试使用一下呢!?当然,对于非常“专一”的同学,只愿意选择自己熟悉的语言,而不愿意尝试使用新语言,那么本更多的是传递你处理问题的思路,虽然编程语言的语法有差异,但仍然可以对你的自动化工作提供解决问题的思路。
虽然本书中涉及到 python 的知识都会进行讲解,但为了你能系统全面的使用 python 语言,笔者建议准备好一本 python 基础教程在身边,以便有
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**