【霍克沃兹】测试开发工程

移动互联网测试技术体系

01

移动测试技术体系

移动测试技术体系

02 shell

bash基础

bash应用

03 Android自动化

Appium环境安装与架构介绍

Android自动化用例编写

Android WebView测试与Toast识别

04 iOS自动化

05 自动遍历与兼容性测试

06 接口测试

接口测试入门与http/https代理抓包

接口测试用例编写与断言

接口基础(补充版)

07 接口测试进阶

接口测试用例数据驱动与高级断言

08 Web自动化测试

Selenium入门与用例编写

Selenium进阶与PageObject应用

09 接口压力测试

10 专项测试

11 安全测试

12 DevOps与持续交付上

13 DevOps与持续交付下

14 质量监控和审计平台

15 答疑和总结

 

其他公开课:

接口测试—Postman

 

 

 

 

移动互联网服务架构

服务端测试:大数据、数据分析等

项目实施的关键过程

需求、设计、研发(单元测试、代码审计、冒烟、自测)、测试(用户端、服务端)、交付

从左到右发布

从右到左反馈

 

 

质量保证工作实施的三大阶段

一、研发阶段的质量保证

1.研发工程师的交付物

设计文档

需求文档、设计文档、接口文档、Confluence Wiki

代码管理

git,svn
Java Python PHP

数据

数据库:SQL MySql PG
索引文件

可部署的产品

构建的二进制包、联调环境

2.研发阶段常见的质量保证手段

代码评审 code review

 

价值点

代码规范约束,培养良好的代码习惯和追求
深入了解业务,知识和规范的传承
沟通设计思路并改进,互相评审防止烂代码烂设计进入

 

行业观点和落地

行业经验普遍认为代码评审是最有效的质量保证手段
借助标准的代码管理工具即可.比如gitlab的pr机制
整个过程测试工程师参与度低

(版本直接的diff)

代码审计

综合性的代码分析平台

sonar 支持自定义规则, 较多的公司使用

 

360火线

 

IDE辅助功能

xcode、Android studio
编辑器报警

阿里巴巴java开发手册 ide插件支持

 

独立的静态分析工具

findbugs scan-build
pmd androidlint

阿里巴巴java开发手册 pmd插件

代码审计关注的质量指标

对代码质量进⾏综合性的评估和审查,集中式的代码质量管理平台
代码坏味道
代码规范
技术债评估


bug和漏洞
代码重复度
 
单测与集成
测试用例数量

覆盖率

代码问题示例:

bug

分支同名

代码坏味道

有2个result,重复赋值,带来性能问题;只有if,没有else,逻辑问题。

安全风险

cookie

 

单元测试:条数,覆盖率,新增代码的覆盖

 

价值

最底层的质量保护网

用于验证修改的影响范围

 

责任

单元测试是研发同学的责任和义务
建立持续集成快速反馈的机制
单测的可测性是决定单测成败的关键

覆盖度评估很关键

几乎所有的开源项目都有单测用例

 

研发自测

研发自测

防止低质量的产品进⼊下游浪费成本
保证高质量交付有助于缩短项目周期
自查和自测试是负责任的态度,也是优秀的研发工程师的习惯

产品自测

评估产品流程和UI设计是否符合预期

自测行为的监督与推动参照后面的监控体系

 

自动化冒烟测试

 

debug版本的冒烟

自动打debug包
基于debug包的自动化测专项试
    monkey健壮性测试
    自动遍历+专项测试
       LeakCanary自动检测内存泄漏
       Bugly等检测崩溃
       BlockCanary 检测卡顿

test版本的冒烟

少量的自动化冒烟用例
自动遍历+功能探索

 

New Monkey:稳定性测试

Magnifier:卡顿监控

 

二、测试阶段的测试流程

 

app交付策略

内部交付

Jenkins自动打包
提供内部网站下载入口,供整个项目团队手工验证

公测

使用fir.im bugly testflight服务

正式发布

打包渠道包推送到各市场

上传到app store

 

 

建立测试准入机制

建立适合的自动打包机制

自动对研发、测试分支进行打包

自动对测试分支进行测试
对研发分支进行自动化冒烟确保研发分支无重大问题
对测试分支建立完善的测试流程
打回 or 接受

 

建立合适的版本管理机制

版本号的使用规范 三位+四位

根据版本号定位代码

 

 

 

常见后端发布机制

代码编译和发布包构建

后端打包mvn

移动端打包 gradle cocospod

二进制部署打包 rpm docker

环境构建

docker等容器技术
Jenkins等自动构建和部署平台

测试推送

后端升级自动触发接口测试

 

 

基本的测试checklist和手段

业务测试 手工测试 、接口测试(脚本)
回归测试 重要 服务端-接口 、用户端-自动化(UI)、自动遍历
专项测试 占比不高
质量监控

 

 

 

合理的测试安排

新功能测试(新业务、新需求)
老功能回归测试(老功能和老需求)
小版本测试(功能点搞定)

大版本测试(大功能改动或者新增)

 

回归与新功能测试每次都要执行
专项测试可以每个大版本测试一次

 

 

业务测试

价值

保证当前版本需求实现的正确
保证产品业务长期的功能正确
保证交互和产品体验

验证方式

目前手工测试审查为主
自动化验证
数据分析

 

 

手工测试相关管理

测试用例维护与bug管理

管理系统 Jira Redmine BugFree
bug等级
项目等级
用例等级

测试用例细化 Jira Redmine

场景梳理与业务建模 思维导图 freemind xmind

测试知识管理体系

环境管理
数据管理
业务知识

 

 

外部测试资源

内测

项目组内资源

项目组外关公 比如华为手机的测试模式

公测

灰度测试:根据特征抽样一部分,或者天使用户群
众测:第三方众测服务 ⼀些测试社区
众包:第三方的众包平台 utest
beta版本测试

 

 

自动化测试分类

流程自动化(研发-测试-交付,让整个流程更顺畅)

打包自动化 Bash Jenkins
环境自动化 Bash Jenkins Docker

测试自动化(加速业务测试)

UI测试自动化 Selenium Appium
接口测试自动化 RestAssured SoapUI HttpClient
专项测试自动化 LeakCanary BlockCanary Appetizer Proxy

 

Android自动化测试

UI Automator 验收

Appium Calabash

 

iOS自动化测试

重点:

XCTest(KIF)

XCUITest

 

自动化测试框架选择

推荐Appium

跨语音
跨平台
底层多引擎可切换
生态丰富,社区强大

iOS: KIF WDA XCTest

Android: Robotium Uiautomator1/2 更底层的框架

calabash也是同样优秀的方案

阿里开源的macaca性能更好

 

 

UI自动化测试的瓶颈

 

技术成本高:

人力成本高:测试开发工程师难招
技术门槛高:
技术选型可能走错,自动化测试理论和实践扎实的人太少
复用率不高:UI和业务流程变更是最主要变更
稳定性不足:容易被干扰,执行慢

常见行业错误观点

UI自动化测试无用论 [X]
UI自动化测试只能模拟人工 [X]

 

 

合理的使用UI自动化

 

策略改进方案

使用分层测试策略,结合接口测试与单元测试,控制UI自动化测试规模
大部分的基础回归测试交个自动遍历
少数核心用例交给自动化测试
新功能测试交给人工测试与自动探索性测试

技术改进方案

良好的维护模型:PageObject或者其他更简单的封装
更好的框架支持:增加Watch,智能等待,失败重试等机制

 

 

自动遍历测试

通过自动遍历app中业务路径尝试发现问题的方法
是为了弥补现有自动动化手段的不足

UI自动化维护成本问题
原有遍历工具可控性差 比如monkey(做压力测试)

我想要看的功能它就是不点
经常点到外部的app
经常点击到注销和退出
不支持复杂业务

 

 

 

常见遍历工具与技术

 

自动遍历常见工具

google android原生monkey
百度smartmonkey
腾讯newmonkey
vigossjjj smart_monkey

seveniruby appcrawler

这方面的理论和工具正在快速的完善

 

❖ ⾃动遍历的技术分类
❖ 基于底层机制。基本的命令或者api进⾏事件注⼊ 改造monkey
❖ 基于⾃动化框架。uiautomator xctest uiautomation appium macaca
❖ 基于图像识别

 

 

 

发布后的质量监控

发布后的质量监控

全流程监  

  研发自测

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值