selenium如何获取网页下载进度
怎么看待软件测试工程师不懂编程这种情况?
怎么看待软件测试工程师不懂编程这种情况?
笔者自己在一家软件公司从事开发工作,另外也调研过体制内外几家软件公司。
国内大部分软件公司里的测试工程师用的多是实习生和新人,对编程的要求没有开发高,因为大多数公司肯定是把出产品放在产品质量前的,先解决有无和进度,当然测试组的头儿会是老资格的工程师,否则工作没法开展,但是你要完全不懂开发去做测试也是很困难的,你得懂软件编程规范,读得懂需求和别人代码,读别人的代码不见得比自己写容易,再有,要自己写测试脚本做动态测试,这个相当于编个小程序了
公司要做软件自动化测试,该如何开展?
一 、了解自动化测试金字塔
在自动化测试落地之前,首先就需要了解自动化测试金字塔。
最下层是单元测试,单元测试是自动化测试策略稳固的根基,因此也是金字塔结构的最底层;最上层是用户界面,通常用户界面是脆弱的,测试和修改的经济成本和时间成本较高;中间服务层是为了过渡用户界面和程序单元而设计的,认为所有应用程序都由各种服务组成,服务是指实现某一具体功能的程序集合,服务通过对输入进行响应而体现。
当然,不同项目的金字塔可能会有所区别,但都大同小异。
二、 分层实现
在了解了自动化测试金字塔之后,我们就需要进行分层实现。
单元测试的实现
单元测试是对软件中最小的测试单元进行验证,在这一层上发现问题时解决成本最低,测试用例的维护成本也不高,具有很好的投入产出比。
一般情况下,需要开发人员在开发的过程中来写单元测试。那么,就需要提前跟团队沟通好单元测试的覆盖率、为开发团队提供用例,并定期回顾这些开发人员写的单元测试。
接口测试的实现
1.功能测试
在写功能测试的过程中,我们可能会和一些其他的模块或第三方API有依赖,在这种情况下,通常可以通过Mock的方法去解决。
2. 性能测试
在功能大致完成后,就要开始做API的性能测试。性能测试在这里的作用主要是获取API现有的性能指标,形成一个对比的基线。在便于进行后期的优化的同时也有可以帮助发现一些潜在的bug。
UI测试的实现
UI层面的自动化影响大、变化多、可维护成本高,所占比例也最少。所以,UI测试的实现应该是一些从高层次上验证,确保核心功能的可用。
UI层自动化的适用场景是做核心功能的回归测试和冒烟测试,所以在实施过程中,要注意不要把所有的用例都堆砌在UI层,而是尽可能放到接口测试和单元测试中去做。
在代码层面,我们可以遵循page object的设计模式,避免在测试代码中直接操作html元素。这样就可以减少重复的代码并提高代码的可维护性。
三、 构建体系
在完成了这些自动化测试内容后,就需要构建一个完整的体系。
尽管自动化测试可以降低人工测试的工作量。但自动化测试还是不能完全取代手工测试。一味追求自动化测试只会为企业带来运作成本的急剧上升。