这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。
本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。
维基百科
上周五《旺达幻视》迎来大结局,红白幻视打嘴炮时提到了「忒修斯之船」,这是个什么呢?
忒修斯之船(ship of Theseus),亦称忒修斯悖论,是形而上学领域内关于同一性的一种悖论。
形而上学:就是研究世界的本原是什么的学问。
1 世纪时的希腊作家普鲁塔克提出了这个问题:
如果忒修斯的船上的木头逐渐被替换,直到所有的木头都不是原来的木头,那这艘船还是原来的那艘船吗?
这类问题现在被称做“忒修斯之船”。有些哲学家认为是同一物体,有些哲学家认为不是。
对应到红白幻视就是:
两者都是,又都不是原始的船,即两者都是幻视,但又不是最开始的那个幻视了。
搜狗测试
常见的广告计费形式术语:
常用的流量分析术语:
乔诺之声
质量是增长底座,因为质量工作是一家企业、一个产品的根本命脉,如果没有质量,一切都是浮云。
一. 先说质量的定义
什么是质量?
诺基亚手机能砸核桃,华为手机号称18 个月不卡顿,OPPO 手机说充电 5 分钟,通话两小时。
这些算不算是高质量的表现?可能都是,可能都不是,主要看用户最核心的诉求是什么。
举个例子:
现在买机械表,价值几万块钱至几十万,这时对手表的质量要求是什么?
作为机械表来说,计时得准不准,是最重要的吗?看时间更精准的是手机,机械表更多的是一种奢侈品的消费。所以它的表面的质感,镜面是否耐磨,这才是一个质量要控制的标准。
所以,质量应该是对客户需求的一种满足的程度,质量的价值,体现在客户价值上,体现在客户的需求上。
在工作中想要控制质量,一定要去准确地理解客户的感知:
什么是大质量?
大质量是一个公司级的全面质量管理。
从三个方面来讲:
质量的全局观:
如果一家公司目前对于质量的要求,只停留在产品的本身,关注产品的可用性和缺陷,那么,可以进一步拓展到产品的安全、稳定和体验上。
二. 再说如何设计质量组织
第一种:融合式质量组织
所谓融合式,就是有一个独立的质量管理部,参与到各部门的质量工作中,做一些质量赋能工作,主要的质量保障需要各部门自己完成。适用于发展比较成熟或规模比较大的组织,强调自己对工作质量负责的理念。
第二种:独立式质量组织
所谓独立式,指的是质量是一个独立的部门,独立在外,比如叫质量部或叫品质部。强调运动员和裁判员必须分离,你做的事情,我要找另外一个人评估来进行控制,去做独立的评估控制和改进。适用于不太成熟、队伍年轻、质量意识比较弱的组织。
三. 如何保证质量呢?
① 构建组织能力,用流程承载最佳实践。
a. 把质量的能力构建在组织上
作公司的高级管理者,一定要去想到把能力构建在组织上,而不是过于依赖英雄人物、英雄团队。因为人是会流动的是会变化的,但是把质量管理构建在组织上以后,它就跟打地基一样,一层一层很厚实。
b. 把优秀实践承载在流程上
流程是承载优秀实践的载体,这些流程是来自于行业里面的优秀实践,是来自于项目组的应用实践,在走流程的时候,我们自然就站在最佳实践的基础上去工作,这是一个流程应用的核心价值。另外,固化流程,使用工具和模板,效率也会提高。
关于流程构建的2个建议:
② 质量测试
不能只盯着问题本身,只想着怎么快速响应,怎么解决具体问题,而是要花心思去做前端的预防,想着怎么在前面发力。
事后检测只能告知我们已经发生的事情,但成本已经产生。
③ 质量策划
好的质量源自好的质量策划
④ 明确质量的第一责任人
业务人员最懂业务本质,流程是业务本质的一种体现。业务人员才应该是管理者,他们最了解流程,最了解规则,最了解业务本身的,所以责任应该在他们这里。
四. 企业质量管理的三个阶段
质量管理本质上是为了业务,是为了实行质量的溢价。
第一阶段,预防重大风险:构建客户的信任;
第二阶段,形成质量竞争力:强调用户体验,强调能构建的比较优势;
第三阶段,实现质量溢价:就跟苹果的手机比别人贵一样,这其中的原因有体验上的、有质量上的、当然也有品牌上的,但是最终是一个质量溢价。
总结,质量是整个公司管理的牛鼻子,抓工作,其实就是牵住整个公司管理的牛鼻子。
持续交付2.0
项目健康度(Project Health,简称为 pH 值)。它由一组指标组成,用于监测软件产品在发布之前的研发过程保持健康状态。
这个指标集的选取也是秉承了谷歌对软件产品的研发理念(可持续的、小批量、高质量、快速地发布),坚守上面提到的研发原则,同时也结合了其自己的实际研发流程。
指标如下图所示:
谷歌内部多年积累的数据表明,pH 值越高,项目越能很好地平衡速度与质量。
怎么做呢?
谷歌强调共享责任和积极协作,将整个软件生命周期的度量管理分为两部分:
GCP(谷歌云平台) 是两周对外正式发布一次。但是,在云平台内部,仍旧希望坚持谷歌的 Daily Release Candidate 。
Daily Release Candidate:
每天定时自动从 Trunk 拉出一个分支,并验证它能达到「正式发布的质量」。
如果无法达到正式发布的质量标准,说明代码质量下降,需要采取行动。这样的话,一旦想提高发布节奏时,可以不必做任何额外的努力。
谷歌云平台所遵循的原则有以下三个:
葛零零
B端产品 VS C端产品
|
比较 |
B端产品 |
C端产品 |
定义 |
定义 |
Business:企业或商家 |
Consumer/Customer:个人用户 |
比如 |
企业内部 ERP 管理系统、财务管理平台 |
微信、淘宝、网易云音乐 | |
产品特性的差异和不同 | 产品特性的差异 | 行业特征相对明显,更多的是满足了企业相关用户在「工作场景」下完成协同工作的一些特定组织需求。 |
没有明显的行业特征,更多的是满足了使用者在“生活场景”下的各种个人日常需求。 |
用户量级 |
用户量级更小、相对也更垂直 |
用户量级大而广 |
|
用户类型 |
用户类型通常是「组织群体」,包括决策者、管理者、普通员工,区别于一般「用户」,更多情况下是被称为「客户」。 |
用户可具体到每一个「终端个体」,一般称之为「用户」。 |
|
展示方式 |
多数集中在 PC 端,使用「左导航右内容」的布局。 |
手机端为主,PC 端为次。 |
|
盈利模式 |
定制付费 |
规模经济 |
|
产品设计的差异和不同 | 功能设计 |
要解决的主要是不同生产关系的协作沟通需求。在中心化的组织架构下,B 端产品需要满足不同层级和组织内外的协作沟通,功能呈现模块化。 |
至少有一个核心的主要功能点能满足用户的某一项诉求。围绕这个具体的核心功能,再去考虑附加更好的用户体验和增值服务。 |
角色设计 |
用户量级小,但用户角色众多(决策者、管理者、普通员工),需要好好分析各角色的需求关注点,并做好角色分配和权限管理上的设计。 |
用户虽然大致需求一致,但每个人的身份、年龄、兴趣、偏好都不尽相同,这就要求产品经理从众多终端用户中抽象出样本特征,形成不同的用户画像,有针对性地满足各类人群的个性需求。 |
|
视觉体验设计 |
要满足用户集中精力完成具体工作事项、不被打扰地进行严谨的流程操作,所以在视觉体验上多是保持干净简单的简洁风。 |
要兼顾“用户体验”和“商业化变现”的平衡,所以会额外重视在视觉体验上的设计。 |
|
产品运营的差异和不同 | 运营目标 |
更看重看中稳定的专业能力,不求大起大落,只求不要出错,避免给企业带来损失。 |
倚靠持续的用户量级的增长 |
运营策略 |
有着天然的『封闭』特性,营销上也更传统,通常将线下「大型会议、峰会、行业展会」作为主要场地,近距离接近客户,通过树立行业级别内的「专业形象」来吸引企业客户的兴趣。 | 激励用户主动在线上进行「对外分享传播」,实现以不断新增的日活来加持自身体量。 |
|
运营程度 |
运营往往不被重视,也没有 C 端那么专业化。在运营预算有限的情况下,通常是「运维多于运营」,只集中精力关注用户对产品的认可度和系统问题的定位。 | 早已将运营专业化,并细化到各维度的运营了,比如运营的工种可以细分为「活动运营岗、用户运营岗、增长裂变岗、内容运营岗」等等。 |
|
其他不同 |
产品的提供者 |
可以由企业内部团队来开发,也可以向市场采购,由应用服务提供商提供相关的软件。 |
来自市场上的软件和互联网公司,用户都是通过应用市场或官方网站直接获取产品或服务。 |
产品体现的价值 |
在企业的管理、营销等方面提高效率和收益、降低成本、规避风险。 |
体现的价值多种多样,如提高工作效率,提升生活品质等。 |
|
谁决定是否使用产品 |
包括企业的 CEO、CTO、CFO 等,B 端产品的客户和用户往往是分离的。 |
C 端用户自己决定,产品的客户和用户往往是一致的。 |
|
收入方式 |
客户的直接付费、根据服务和资源的使用量付费等。 |
通过广告带来的收入、购买产品内部的功能和服务、平台收取交易费用等。 |
|
营销方式 |
注重客户关系、客户服务、有专业的销售团队。销售流程长,基于理性分析据决策购买。定价更具灵活性和个性化。 |
销售人员通过数据分析找到与 C 端产品相匹配的群体,进行大规模地推送营销信息。销售流程短,基于感性决策购买。 |
|
产品的迭代和发布 |
用户更希望能够使用一个长期而稳定的版本,企业需要考虑产品与企业其他已经应用的产品是否可以对接、是否可以平滑切换等问题。 |
能够快读迭代和发布,周期通常都是每周或每月。 |
|
产品需求的调研 |
通过企业的组织架构和销售团队,找到典型的客户进行访谈,且客户更加专业。 |
需要通过各种方式挖掘和整合需求,如客户访谈、调查问卷等。 |
部分内容参考搜狗测试
开源前哨
WinMerge 是一款 Windows 系统下的免费开源的文件比较/合并工具,它可以比较两个文件夹和文件,以一种易于理解和处理的可视文本格式呈现差异。
支持文件、文件夹、表格、图片等等的比较。
开源地址:https://github.com/WinMerge/winmerge
开源前哨
VCR.py 简化并加快了 HTTP 请求的测试,它是 Ruby 的 VCR 库的 Python 版本。
VCR.py 把 HTTP 的请求拦截下来,返回本地准备好的数据的库。就像“插卡”一样,使用装饰器方式修饰的函数会被拦截下来,直接返回指定本地路径的文件中的数据,从而提高测试执行速度和确定性。
如:
import vcr import urllib2 with vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml'): response = urllib2.urlopen('http://www.iana.org/domains/reserved').read() assert 'Example domains' in response
运行以上代码,VCR.py 会将请求记录到 fixtures/vcr_cassettes/synopsis.yaml
。再次运行时,发出HTTP 请求时,VCR.py 会将文件中保存的响应值直接返回。
开源地址:https://github.com/kevin1024/vcrpy
开源最前线
Deskreen 是一款桌面应用程序,可以通过 WiFi 将任何带有网络浏览器的设备变成电脑的辅助屏幕。可用于将整个计算机显示镜像到任何具有 Web 浏览器的设备屏幕上。
支持的操作系统:Windows, Linux, MacOS
开源地址:https://github.com/pavlobu/deskreen
技术领导力
俗话说得好,只要努力搞,没有 OKR 搞不垮的团队。作者总结了 11 个招式,招招致命,请谨慎使用。
最后,如果你的团队正在使用 OKR,请对照以上 11 条。
阿里技术
相较于日常保障工作,大促保障实际上是针对于特定业务场景的集中稳定性建设工作,具有高并发流量、短保障周期的特点,对系统性能与保障时间有明确要求(一般为 2 个月左右)。
如何体系化地保障大促期间系统稳定性呢?
按照执行顺序依次是:
Alibaba F2E
什么是高质量的分享?
作者认为分享的本意就是总结并传播知识,分享的核心是利他。分享的初心是希望大家相互分享知识,互相成长。也只有真的能对别人有帮助的分享才能称之为“高质量分享”。
什么是好的内容?
如何去组织内容?
如何去展示内容?
如何去表达内容?
1、直到最后一句之前,我都以为这是一条鸡汤。
2、
这个世界到处都是恐怖分子,有些是拿着炸弹的,有些是拿着意识形态的。
——余华 《我们生活在巨大的差异里》
3、你需要几周?
1、你属于哪个象限?
2、你的选择是什么?
3、请从 ABCD 四个选项中选出你认为正确的一项
本周刊每周五发布,会同步更新在微信公众号。
微信搜索“毕小烦”或者扫描下面的二维码,即可订阅。
如果文章对你有帮助,请随手点个赞吧!
(完)
文章浏览阅读216次。优化基础模型在回归问题的基本算法中,我们使用数据集去估计模型的参数,如线性回归模型中的参数w,那么这个数据集我们称为训练数据集,简称训练集。我们在回归问题中使用训练集估计模型的参数的原则一般都是使得我们的损失函数在训练集达到最小值,其实在实际问题中我们是可以让损失函数在训练集最小化为0,如:在线性回归中,我加入非常多的高次项,使得我们模型在训练集的每一个数据点都恰好位于曲线上,那这时候模型在训练集的损失值也就是误差为0。那么这样我们的模型是否就可以预测任意情况呢?答案是显然否定的。我们建立机器学习_模型选择 逐步法
文章浏览阅读81次。程序设计分组训练 实验2_程序分组训练实验二
文章浏览阅读2k次,点赞4次,收藏45次。实验要求:实验代码;#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <fstream>#include <iomanip>#include <ctype.h>using namespace std;//图书结构体struct Book { double price; ._{if(!strcmp(name,book[i].name))
文章浏览阅读2.1k次,点赞7次,收藏11次。版本/操作vue-cli2vue-cli3/cli4vue-cli下载安装 npm install vue-cli -g npm install -g vue@cli创建新项目vue init webpack 2.0projectvue create 3.0project启动项目npm run devnpm ru..._vuecli4版本哪个好
文章浏览阅读902次。linux-2.6.32在mini2440开发板上移植配置USB外设[日期:2013-04-08]来源:Linux社区作者:ssdsafsdsd[字体:大 中 小]编者:因为LINUX内核对S3C2440的Host驱动的已经支持,而且支持的外设相当的丰富,所以这一部分只是进行配置就可以使用。因为配置的东西较多,没有给出详细的截图,看手册上介绍的就很明白。需要手册的请留下邮箱索取。1 配置和测试US..._linux内核识别鼠标需要开启什么配置
文章浏览阅读2.8k次,点赞2次,收藏18次。上一篇博客阐述了怎么创建hadoop与eclipse的连接(因为是在GUI版上装的linux版eclipse),所以这一篇不仅介绍怎么做,而且还讲解怎么创建windows上eclipse与linux上的hadoop的连接。(11条消息) Centos7(GUI)下的hadoop与eclipse的连接并运行wordcount实例_qq_45672631的博客-程序员宅基地这里,在hadoop已经成功的前提下,我们在官网下载eclipse (这里用的是2021-06版的)java-jdk(这里用的11._hadoop eclipse run as
文章浏览阅读649次,点赞11次,收藏17次。说起来惭愧,这个问题最初是还是客户先发现的,当时做的是一款用在两厢纯电动(品牌这里就不说了)上面的一体机,总压40串,使用了4片LTC6811-2。前期在家里做断线测试都是“静态”的,没考虑到“动态”的情况,而且当时的关注点都在检测的速度上,客户要求断线告警上报时间不能超过6S。当然为了确保系统正常工作,必须要有一定的自检功能,楼主使用了“命令组”自检、被动均衡自检和断线自检,其中在使用断线自检遇到一个问题,现在将这个问题和大家分享下,共同学习。_ltc6811
文章浏览阅读978次。作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下..._android收藏本地音乐 原创
文章浏览阅读2.6w次。项目:电子词典_aggressor bump
文章浏览阅读3.3k次。界面,即UI_gameframework splash
文章浏览阅读4.1k次。1. 问题描述:问题描述 输入三个数,比较其大小,并从大到小输出输入格式 一行三个整数输出格式 一行三个整数,从大到小排序样例输入33 88 77样例输出88 77 332. 方法一:可以使用Java的三目运算符进行判断得到最大值然后判断剩下来的元素的大小关系,方法二新建一个整型数组把元素存进去然后对数组进行排序然后再逆序输出即可..._将输入的三个数放到数组中并排序
文章浏览阅读627次。一、题目剑指 Offer 14- I. 剪绳子题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例2:输入: 10输出: 36解释: _c++剪绳子动态规划法