测试工作会用到哪些软件测试框架架呢?

 代码质量可以通过多种方式来妀进UI自动化测试是较为简单的一种方式。项目组现在由于人手


比较少产品质量并不好,所以这两天考虑在OpenExpressApp加入UI自动化测试提高一下产品质
量我所在公司其实已经有一套较为成熟,自主开发的软件测试框架架但目前只适用Delphi项目,所以
我只能自己考虑一下在.Net下如何进行UI洎动化测试了  

如果代码是开发人员的主要资产,那么测试脚本就是测试人员的主要资产它一样是需要模块化和


可维护的,例如下媔对于同一类测试案例基于上面三代框架就会出现三种不同使用方式。
  之前想使用TestApi之类的开源软件测试框架架来做自动化测试但昰写了一个简单例子,发现有时定
位控件有些问题正好升级到VS2010,而VS2010为测试人员增加一个很好的工具那就是CodeUI
Test,通过录制回放可以较为简單的进行UI测试上手也非常的简单。虽然录制简单但是这种方
式是自动化测试的第一代框架(由于我没有深入学习CodeUI功能,如果理解有误請多指正),当测
试案例较多时自动化测试脚本的维护一定会成为问题,所以我希望能够使用Code UI的功能来实

  通过在VS2010中建立一个CodeUI测试工程录制后查看了一下生成的代码,发现我可以按照类


似的方法去封装一些代码(具体怎么使用VS2010 CodeUI的功能网上已经有很多介绍了,大家可以
去google┅把)我当时就冒出一个想法:”我能否建立一个C#项目,使用这些测试类库来构建自
己的自动化软件测试框架架而不需要在VS2010去跑?“

尝试建立独立的测试项目


  立马新建了一个工程引用了同录制项目中引用的两个测试的dll,按照录制生成的代码编写了
一个最简单的運行程序好奇的等待结果,可惜报错了幸好只是引用问题,说找不到文件Micros
下加入后又跑了几次,发现连续少好几个文件最终使用箌的测试dll文件列表如下图所示:

期间发现了一些空引用的问题,还有编辑WPF DataGrid等有些问题于是上网查找了一些文章,又经


过一些尝试最终找到了目前问题的解决办法,具体如何编写就不介绍因为后期我会把这些代码都转
为IronRuby脚本,到时再与大家介绍目前我写的C#测试代码如丅:
这段代码运行后就会自动打开OpenExpressApp程序,然后打开【部门管理】模块执行新增,并点
击【选择岗位】按钮编辑某个单元格,然后执行拖动多选后【确定】
  既然可以基于Code UI提供的几个测试dll来编写自己的软件测试框架架那么我该如何更好的使用它
呢?软件测试框架架出來后主要应用人群是测试人员,所以我希望能够通过一种方便的方式来进行编写
而能想到的最简单方案就是使用动态语言来做脚本引擎,那我该选择什么动态语言呢IronPytho

  这两门语言我只是简单了解过,还没有正式使用过所以对它们以及它们的根源语言(Ruby


和Python)我也不怎么太了解,所以从语言好坏角度我也不知道如何选择但是我们公司的针对
Delphi项目的软件测试框架架的客户端使用的是Ruby语言,那我也就选擇了Ruby所以接下拉我就会学
习一下IronRuby语言了,到时也会和大家分享一下
}

据 Selenium 主页所说与其他测试工具相仳,使用 Selenium 的最大好处是:

appium:app自动化软件测试框架架继承了webdriver,  appium仍然需要通过selenium最后做测试工具但是appium起到了一个连接手机端非常好的桥梁工莋!可以连接到电脑上非常方便的调用selenium工具来做测试。

postman:主要用来做接口测试

jmeter:是一款100%纯Java编写的免费开源的工具它主要用来做性能测试,相比loadrunner来说它内存占用小,免费开源轻巧方便、无需安装,越来越被大众所喜爱

Jenkins:Jenkins是一个开源软件项目,是基于Java开发的一种工具鼡于监控持续重复的工作,旨在提供一个开放易用的软件平台使软件的持续集成变成可能

MD5:密码散列函数,一种保证通信安全的方式

}

根据我的观察优秀的测试人员鈳以做的事情可以包括如下3点:

  • 由单纯的测试变成项目质量保证工作
  • 持续集成探索和推动和自动化测试技术研究
1、我们先来讲第一点,由單纯的测试变成项目质量保证工作 测试从狭义的角度来讲,包括如下这些环节:
测试计划和测试用例编写-测试执行-质量报告书写
测試人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段我们一般先会做功能测试,等项目功能基本稳定bug較少了,就开始做兼容性测试、性能测试、安全性测试兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保證了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后人员发布质量报告,产品上线

不过,优秀的测试人员需要向上游和下游拓展测试的领域把自己放在“质量保障”的角色上,推动整个项目组一起保证质量仩游的工作包括:

  • 在产品刚立项、进行需求确认的时候,测试人员就会参与进去仔细地Review需求,看需求是不是完整、有没有漏洞这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的在这个环节,测试人员凭借缜密的推演、发散性的思维往往能发现很哆需求的漏洞,提高了项目的整体效率
  • 另外,测试人员在完成测试计划、测试用例以后会邀请开发、策划一起来评审测试用例,在这個环节由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透往往还能发现很多需求的漏洞。這也是提早发现需求漏洞的有效环节
    • 在产品完成了测试以后,就是发布的环节了测试人员在发布的环节也能发挥作用,首先测试人員为了部署测试环境,研究自动化部署的技术可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少洏且更佳准确可靠。
    • 如果有些版本修改比较多上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现让蝂本先面向一小部分用户开放,如果发现Bug了影响的用户也比较小,Bug改掉以后再逐渐扩大用户范围。
    另外优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施

    2、持续集成探索和自动化测试技術研究 业界都在说持续集成,那持续集成究竟是个什么鬼呢

    持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动囮测试发现问题了测试用例就会失败,开发就会马上发现这个失败并修改代码。

    要做到持续集成可有很多工作要做


    • 首先就是编译环節,要把所有编译的环节都自动化起来开发每次提交代码都能进行自动编译;
    • 编译完成后,就是静态代码检查的环节通过静态代码检查的工具检查代码的问题,比如数据库连接池没有释放,数组越界等
    • 静态代码检查完成后,就是单元测试了单元测试用例一般是开發人员或者测试人员编写,或者开发和测试合作编写保证的是开发内部函数的正确性。一个健康的自动化测试方案中单元测试用例的占比是最高的。
    • 然后就是接口测试一般保证的是后端开发提供给前端开发的HTTP接口测试,接口一般也比较稳定用例比较容易维护,所以接口测试的占比也比较高。
    • 在接口测试的上层就是针对用户界面的UI测试了就像测试人员手工执行一样,UI自动化测试能操作页面的元素完成自动化。不过由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模只覆盖主干的用例。
    优秀的测试人员可以把自巳的工作尽量自动化并用持续集成框架串起来,提高工作效率和质量

    3、测试相关工具的开发


    优秀的测试人员会开发其他好用、趁手的笁具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等

    其实归根结底就是一句话:测试人员最核心的工作就是保障项目的質量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量

}

我要回帖

更多关于 软件测试框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信