Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483846
  • 博文数量: 220
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 22:02
个人简介

目前在一家公司担任软件总监,主要涉及智能手机,笔记本电脑的开发

文章分类

全部博文(220)

文章存档

2024年(1)

2023年(68)

2022年(13)

2021年(7)

2020年(11)

2019年(3)

2018年(10)

2017年(8)

2012年(7)

2011年(4)

2010年(32)

2009年(41)

2008年(6)

2007年(9)

分类: IT业界

2019-12-11 14:20:03

测试:其实分为单元测试, 集成测试, 系统测试。
单元测试:属于白盒测试的一种, 技术要求高, 只有白盒测试人员和软件开发人员才能完成,它的本质是通过一段代码去验证另外一段代码。
对于Web , 可以使用unittest+ Selenium。
集成测试: 一般是两,三个模块一起集成测试。
系统测试: 整个系统,在实际的环境下, 模拟用户使用。 主要是验证功能和场景。 在Google/Microsoft,系统测试很多是探索性测试。


从理论上来说, 单元测试:集成测试:系统测试约为7:2:1, 也就是单元测试要多做,问题在前期发现,成本最低。


在我们的测试中, 除了用Monkey外, 还有其他的自动化测试方法, 来执行测试用例的自动化。


Appium UIAutomator MonkeyRunner MonkeyTalk 软件tools
Android Yes Yes Yes Yes Yes
Ios Yes No No Yes No
Web Apps Yes 只能有限支持x,y的点击

No
语言 All Java Python
Java
社区 Active Google
Quiet
优点 1不依赖源代码
2不限制测试框架和平台
可以对所有操作进行自动化,操作简单 操作最为简单,可以录制测试脚本,可视化操作

缺点 仅仅支持UI测试,不支持单元测试等
Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了;

主要生成坐标的自动化操作,截图对比,移植性不强,功能最为局限



1  软件tools: 直接用Android 写一个App, 比如测试开关机, 可以写一个App,反复开关机多次。
2  笔者曾经参考CTS的框架, 直接写代码,来测试Framework的API。 这属于白盒测试, 但最终因投入较大,需要软件工程师直接参与,只能暂停。
使用UiAutomator框架。之前尝试过, 做了一两年,使用Java+UIAutomator,完成了快速迭代的100条测试用例的30%(也就是30条)和BaseService, 效果很小。
上述3个方法都需要软件工程师的参与, 对于测试工程师来说,难度太大! 因为自动化测试程序,也需要测试工程师来写, 如果自动化测试程序本身不稳定,投入太大, 那这块的见效就很小!


采取Python脚本来写自动化测试程序, 对于测试工程师来说,难度减少了很多。

Appium流程:


1  Webdriver的脚本以JSON Wire Protocol发送到Server
2  appium server会把请求转发给中间件Bootstrap.jar 
Bootstrap监听4724端口并接收appium 的命令,调用UiAutomator
UiAutomator Command Server调用并执行
5 执行的结果返回给Appium Server 
6 Appium Server把执行结果返回给Client。



Appium属于黑盒测试, 功能测试。
可以选择: Appium + Pytest + Git + Jenkins 
其中:Pycharm(VSCode)     IDE  
          Pytest                     报告生成
          Git                         脚本仓库
          Jenkins                   自动化编译和运行


Appium 录制功能: Appium有录制功能,生成的代码,放到PyCharm中做少许修改,就可以了,这样可以提高写脚本的效率。 但Appium录制生成的代码, 为坐标,而非元素(ID),这样对于机型,每个机型的分辨率不一样,无法兼容。
 可以研究一下: https://blog.csdn.net/weixin_30687811/article/details/95447558, 这个帖子录制产生基于元素的代码。


BDD: Behavior Driven Development,  它的脚本称为Domain Specific Language (DSL), 关键字包括Feature,Scenario,Given,And,Then...
BDD的框架有: Cucumber, Lettuce. Lettuce和Cucumber类似,但使用Python写的。
步骤:
1  使用
Cucumber或者Lettuce插件写出Feature文件
实现各个Step
其实, Feature文件相对于测试case。

我们也可以单独有人写测试case (TestLink管理cases), 然后直接用python, 采取Page Object的方式写脚本

阅读(596) | 评论(0) | 转发(0) |
0

上一篇:挑战PC的产品

下一篇:FireOS 介绍

给主人留下些什么吧!~~