【背景】
所在项目使用Swift来开发iOS端APP,之前版本用的是Swift2。
Swift3其实在项目开始第一个版本中途(16年9月)就已经出来,基于开发工程师们的“经验”,安排在半年后第6个迭代(17年3月)才开始谨慎的移植。
Swift3中文版介绍参考 http://tech.glowing.com/cn/swift3/
【QA的工作】
1. 基本工作:
因为是涉及语言升级切换,通过代码库(gitlab)的递交记录及文件修改面积估计影响范围是:所有功能。
冷静评估后,得出的版本测试计划是,覆盖所有功能的P0主功能回归
主要问题: 开发自测提交后, QA使用 在线打包平台的iOS包, 消息推送功能 整个不可用(崩溃)
排除过程:在排除 证书因素(xxxx.mobileprivision)、代码因素(不同分支)后,最后锁定原因是打包平台选用的Xcode版本(8.0)与开发Xcode版本(8.2.1)不一致。
最终方案:将打包平台的XCode版本统一选为最新版本8.2;开发添加打包注意事项。
2. 特殊版本维护
项目组,自上一个版本开始,接入了QA大组推荐的报bug利器-BugEase;这个新利器的接入和维护由QA负责独立分支(test_bugease)。
主要困难: 1. 如何方便的合代码 2.Bugease官方主页无swift3示范
最终方案: 请教达人+google,选用完全覆盖(test -> test_bugease) + 重新添加Bugease SDK
----------总体方案 开始---------- //拉新代码,切工作分支 # git clone ssh://adam_2048/poct/poct-ios.git # cd poct-ios/ # git checkout test_bugease //先将本地的master分支重置成test # git reset --hard test // 修改一下文件:BugEase合入 ... ... //再提交并推送到远程仓库 # git add . # git commit -m "Swift3工程 导入BugEase SDK x.x.x " # git push origin test_bugease --force ----------总体方案 结束---------- ----------BugEase 合入 开始---------- //Podfile文件添加 pod 'BugEase' //pod 命令行安装(工程Podfile所在目录) # pod install --verbose --no-repo-update //POCT->POCT-Bridging-Header.h 文件添加 #import <BugEase_iOS/BEManager.h> // POCT->AppDelegate->AppDelegate.swift 应用启动加载BugEase插件 (Swift3 对OCpod库导入的类成员函数、枚举变量区别与Swift2,根据Xcode提示来) //hzwangyangdan add BugEase SDK 20170309 BEManager.share(withAppKeys: "????f24220762348025da8103218????", with: .invocationEventFloatButton) return true ----------BugEase 合入 结束---------- |
【几个经验总结】
1. 作为开发团队的一员,我们QA工程师,对代码的变动要做到 变动清楚、评估周祥,以期测试达到高效率低风险。
2. 拥抱新工具,新技术,不要轻易假借别人之手,亲历为之。
3. BugEase这类工具,比较适合 纯客户端的功能测试、特别适合交互走查、视觉走查 这个环境。值得推广,但推荐单独拉分支使用。