这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。
本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。
文章
1. 你今天糊弄生活,明天生活就糊弄你。
你是否也在混日子?对照这 5 点,看看有没有中:
- 高谈阔论多于脚踏实地
-
- 等我哪天有钱了,我要怎么怎么样;
- 如果我做那个位置,我一定比他干的好;
- 习惯拖延,惰性成瘾
-
- 上班的时候,先娱乐后工作;
- 快下班或有人催的时候,才开始着急忙慌地赶工;
- 对什么都提不起兴趣
-
- 看到岁数比自己大很多的人还去图书馆,就说人家装;
- 看到人家玩乐器,学跳舞,就批人家老不正经。
- 从来不主动学习,没有成长
-
- 十年前和十年后,除了资历和阅历多一点,经验多一点,能力上几乎没有什么长进;
- 出道即巅峰,之后一直在走下坡路。
- 在垃圾娱乐中无法自拔
-
- 刷短视频,一看就是几个小时;
- 玩游戏,拿起来就很难再放下来;
- 看冗长的,没完没了的肥皂剧;
- 几个人凑到一起,八卦个没完;
怎么解决呢?
只要你被逼到了绝境,或者思维认知提升了,就能改变这种状态。
2. 关于需求质量保障你需要知道的
圆小豆的美梦工场
软件需求越来越复杂多变,其有效性和传递效率也备受挑战。需求阶段引入的缺陷对软件的研发成本造成了非常大的影响。
理想情况下,我们容易得出以下结论:
- 缺陷的引入从需求阶段就开始持续,到研发阶段达到峰值,然后趋于平缓。
- 缺陷从需求阶段就开始陆续被发现,到测试阶段达到峰值,然后趋于平缓。
- 从需求阶段到研发初期,缺陷修复的成本极低。
- 开发后期到上线,缺陷修复成本一路攀升至高点。
- 缺陷发现的数量少于引入的数量,但在上线前后,缺陷发现数量大于引入数量。
因此,为了获得更经济的资源投入产出比,我们认为应该在需求阶段和编码初期更多的发现缺陷,从而减少修复成本和返工,这也正是测试左移的价值所在。
该如何保证需求的质量呢?
需求的三种粒度:史诗故事 > 特性故事 > 用户故事
- 史诗故事 Epic:粗粒度的描述需求,通常需要多个迭代才能完成,主要用于版本规划时记录和跟踪该功能。
- 特性故事 Feature:也叫主题故事,是一系列相同主题用户故事的集合,主要用于迭代规划、优先级排序和整体估算。
- 用户故事 Story:迭代开发的最小单元,是细粒度的需求描述,主要用于迭代交付过程中的估算、跟踪和管理。
3. 大数据测试揭秘
AI 测试之路
大数据测试通常包含大数据应用、大数据系统、大数据 ETL (Extra,Transform,Load)流程的测试。测试过程中除去关注应用和系统的功能和性能问题,更多的是要去验证数据的处理,保证数据的质量,涉及数据的各种特性的检验,例如一致性、准确性、重复性、连贯性、有效性及完整性等。
对于大数据测试工程师而言,高效正确的验证经过大数据工具/框架成功处理过的至少百万兆字节的数据是我们日常工作的一个巨大的挑战。
数据测试与传统测试相比部分流程及关注点是相似的,但又存在很多不同点,如:
特性 | 大数据测试 | 传统数据测试 |
数据量级 | 数据量级大 | 数据量级一般 |
数据结构 | 数据结构多样:结构化、非结构化、半结构化 | 以结构化数据为主 |
环境要求 | 环境要求高,依赖大数据集群 | 传统数据库 |
测试工具 | 依赖Hadoop生态系统组件及ETL测试工具 | 传统数据库 |
技术要求 | 大数据相关知识,算法要求高 | 技能门槛较低,算法要求一般 |
验证工作 | 验证环节多,数据量大,较复杂 | 抽取数据验证,相对简单 |
大数据测试要点:
- 功能测试
-
- 数据完整性
- 数据一致性
- 数据准确性
- 数据的及时性
- 数据间的约束检查
- 数据处理逻辑
- 数据存储检查
- 性能测试
-
- 数据存储:大数据量情况下数据如何存储在不同的节点中,是否有表漏写分区。
- 并发性:大并发场景下的数据读取、写入、计算等性能,有多少个线程可以执行写入和读取操作。
- JVM参数:堆大小,GC 收集算法等。
- 缓存:调整缓存设置“行缓存”和“键缓存”。
- 超时:连接超时值,查询超时值、任务执行超时等。
- 消息队列:消息速率,大小等。
- 安全测试
-
- 考虑各公司或地区政策定义的数据保密项,需要对特殊数据进行加密;
- 数据权限不仅需要从库、表和文件层面考虑安全性,还需要从数据行、列等更细粒度考虑权限设置问题;
- 对数据实施读取、下载、管理权限控制,保证数据不能处于安全范围外。
大数据测试的挑战:
- 大量级数据测试:如何保证 PB 或 EB 级别的数据处理过程及质量?
- 平台化需求:数据测试工作枯燥繁琐,对数据质量测试工具及平台需求较高。
- 大数据测试人员:门槛较高,工具不够成熟。
工具
1. 能上天的代码? NASA 火星无人机飞行控制系统开源了
开源前哨
最近美国“毅力号”火星车成功登陆火星,配合它完成探测任务的“机智号”无人机搭载的是“骁龙801”处理器,并且“机智号”实际上是通过 Linux 操作系统控制的,这是人类第一次在火星上运行 Linux。值得一提的是,多年前 NASA 把这个专门为火星无人机开发的飞行控制系统开源了,它就是本文的主角:F Prime
。
F´(F Prime)
是一个组件驱动的框架,可以快速开发和部署太空飞行及其他嵌入式软件应用程序。F´
现已成功部署在多种太空应用中,它是为小规模航天系统量身定制的,但是也完全可以使用在其他嵌入式系统开发中。
项目地址:https://github.com/nasa/fprime
2. 腾讯出品的性能评测工具:PerfDog
搜狗测试
如果你想采集手机(Android&iOS)在运行 App 时的性能指标数据:FPS、Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp 等性能参数,可以使用 PerfDog(性能狗)。
3. 美团开源的移动端抓包及 Mock 平台
AirPython
Lyrebird 是一个基于 mitmproxy 拦截及模拟 HTTP/HTTPS 网络请求的面向移动端的插件式测试平台。
项目地址:
https://github.com/Meituan-Dianping/lyrebird
主要功能为:
- 网络抓包
- Mock
- 支持插件
另外还支持埋点自动测试、API 覆盖率统计、移动设备及 APP 控制和信息记录、自定义检查脚本等一系列功能。
方法
1. 如何做好一次三四分钟的即兴演讲?
贺嘉老师
想做好一次三四分钟的即兴演讲,要记住三个原则:
- 不超过三点:心理学研究表明 “大脑的短期记忆,无法一次容纳七个以上的记忆项目。比较容易记住的是三个项目。”
- 有比喻:比喻可以让你的即兴演讲更有画面感,增加听众的兴趣。
- 有金句:要用一个金句来升华总结。观众一听就记住了。
一个好用的万能金句结构: xxxx,从xx开始。
举个例子:
- 成年人的崩溃,是从借钱开始;
- 好的演讲,从讲好故事开始……
2. 程序员如何拒绝一个合理的需求?
技术领导力
在日常工作当中,产品经理是跟程序员打交道最多的人,据说产品经理的靠谱程度,跟程序员掉头发的速度成反比,也就是说产品经理越不靠谱,程序员越容易早谢。为了保住头发,程序员应该学会拒绝不合理的需求,如果合理的需求都能拒绝,不合理的也就不在话下了。这里有 15 个方法可供参考。
10 个基本打法:
- 这个需求的价值是什么?
- 我们的目标用户是谁?用户量多大?
- 这个功能解决了用户什么痛点?有数据支撑吗?
- 原型图画了吗?设计文档写完整了吗?
- 设计文档确定不改了吧?行,我给你排期。
- 你就告诉我,要抄哪家吧。
- 我这里没问题了,让项目经理去立项吧。
- 这个需求对架构影响蛮大的,拉上架构师再讨论下。
- 工作量主要在前端,让前端一起评估下吧。
- 这个功能很有创新性啊,让老板也来头脑风暴一下吧。
5 个高阶玩法
- 假装同意后,拒绝。
- 若有所思后,拒绝。
- 反问后,再拒绝。
- 然后,开始踢皮球。
- Never Say No。
最后,奉劝各位程序员,不要为了拒绝而拒绝,你不做这个需求,还有更难受的需求。愿天下的程序员和产品经理,都能善待彼此。
3. 如何有效地进行用户体验测试?
华为开发者社区
UE(User Experience) 用户体验是指用户在使用产品过程中的个人主观感受。即用户在使用一个产品之前、使用过程中、使用后的整体感受,包括行为、情感、喜好、生理和心,里反应、成就等各个方面。通俗的讲用户体验是整体的使用感受,包括受品牌影响,用户个人使用经验的影响,总之就是让用户用着爽。有良好体验的事物易用且使人愉悦,或至少让人不加思考就能正确使用。
为什么要关注用户体验?
有研究认为“每在用户体验的研究上花费1美元,将获得100美元的收益”。用户体验的重要性现在已是产业界的共识,是一种新的产品竞争力。
如何进行有效软件产品用户体验测试?
用户体验测试应该在产品的功能可用、可靠、满足性能要求等基础之上的,更多关注的是用户感知和用户反应,强调的是在产品可用性的基础上给予产品感受的反馈。
可参考尼尔森大可用性原则进行测试:
言论
1、中国的矛盾用「四个字」就可以平息
2、高度与格局
3、哈哈
图片
1、
2、
如果动机是强大的,即使压力再大,也会甘之如饴吧!
3、
有人这样定义前端的工作...
订阅
本周刊每周五发布,会同步更新在微信公众号。
微信搜索“毕小烦”或者扫描下面的二维码,即可订阅。
如果文章对你有帮助,请随手点个赞吧!
(完)