<谷歌如何测试> 翻译第三篇

Python 用 selenium 做个简单的谷歌翻译 selenium用法阐述 阅读详情

Wednesday, February 16, 2011 2:47 AM
By James Whittaker

经过前两篇的介绍之后,评论里留下许多问题。并没有逐一回复,当然不是想把这些评论置之不理,而是希望在这里和后面的文章中做详细介绍和解释这些问题。从这一篇开始,我将开始讲谷歌是如何测试软件的了。

在谷歌,质量不等于测试,是的,我确定在其他所有的公司也都是这样。“质量不是被测出来的”,这句陈词滥调是再正确不过的了。不管汽车制造还是软件开发,如果在最初的设计建造的时候就有问题,那它永远都会有问题。试问任何一家曾经被迫大量召回汽车的公司,逃避质量问题的代价是多么的昂贵。

但是,“质量不是被测出来的”这句话本身并不像它听起来的那么简单和准确。虽然质量并不是被测出来的,但同样也有证据表明,未经过测试,也不可能开发出有质量的产品。你连测试都没有做过,又是怎么知道产品功能是否正确,并有高质量呢?

对于这种难题,最简单的办法是不要区分开发和测试,不要把他们当成对立的活动。测试和开发【注,两种行为,不是人】最好能手牵手的并行,写一点代码就立刻进行测试,写的越多,测的就要越多。最好是,在编码的同时,甚至在编码之前,就考虑清楚这些代码将如何被测试。测试不是一个单独的工作,测试就是开发的一部分。所以,质量并不等同于测试,当把开发和测试混在一起,搅拌直到分不清他们彼此的时候,就得到了质量。

这就是谷歌的想法,把开发和测试工作混在一起,不分彼此。写点代码,就必须测试,多写一些就多测一些。关键的问题就是谁来做测试工作? 由于谷歌的专职测试人员非常的少,唯一的答案就只能是开发人员。还有比实际写代码的开发人员更适合来测试这些代码的人吗?还有比程序的作者更懂得怎样去发现程序bug的吗?是谁更想知道程序在第一次运行时是否有没有问题呢?谷歌之所以用这么少的专职测试人员的原因就是开发对质量负全责。实际上,如果一个团队在过于依赖测试的时候,通常情况下这个团队在开发上一定也会有问题。如果在这个团队里,测试人员比较多,这也是一个强烈的信号,这表明开发和测试融入到一起的程度还不够,失衡了,缺乏测试,单纯地增加测试人员并不能解决任何问题。

这意味着,对于质量来说,预防问题比发现问题本身更重要。质量是开发人员的问题,而不是测试人员的问题。通过把测试工作融入到开发过程中,我们能降低那些富产Bug的人的出错机会,不仅可以避免了大量最终用户的使用问题,而且还可以极大地降低测试人员报无效Bug的数量。在谷歌软件测试工程师的工作目标就是检查这种预防措施是否有效,软件测试工程师不停地寻找一些证据来证明作为bug的作者和预防者的“软件开发工程师-软件测试开发工程师”组合是否存在问题,一旦发现任何不正常,就会拉响警笛。

这种开发和测试一体的场景随处可见,不管是在代码审核的时候问“你的测试呢?”,还是在厕所蹲坑里张贴着的最佳测试实践–臭名昭著的马桶测试指南【译者注,参见google test blog,有关于”Testing On The Toilet“的更多介绍】。测试是开发过程中必不可少的一环,质量是开发和测试合体的产物。软件开发工程师,软件测试开发工程师,软件测试工程师,所有的人都是测试人员。

如果你所在的公司也想要做这种开发和测试的统一,请也给大家分享一下其中经验和教训。如果没有,这将是一个帮助你公司的机会:让开发和质量划等号。你大概知道谚语里说的,鸡和猪为了一顿有培根和鸡蛋的早餐都乐于奉献自己,但是猪却牺牲了。好吧,这就是事实,尝试跑到开发工程师那里,对他们”哼哼“(猪叫声)两声,看他们是否也用”哼哼“来回应,如果他们”咯咯哒“(鸡叫声)来回应,那就说明有问题了。【译者注,崩溃了,这里比较难懂。James这里引用了一个猪和鸡的英语谚语,(参见,http://en.wikipedia.org/wiki/The_Chicken_and_the_Pig ),谚语的意思大概是,猪和鸡都参与制作培根鸡蛋早餐,猪变成了猪肉(培根),鸡只下了一个蛋,说明对于早餐,猪和鸡的奉献程度是不同的。并在这里把测试工程师比喻成鸡,开发工程师比喻成猪,早餐就是质量,猪的奉献大。测试人员跑到开发人员那里,如果发现他们没有做猪的事情,早餐将做不成,那说明质量也将会有问题。】

 

公直
2012/3/16

 
英文原文,

How Google Tests Software – Part Three
Wednesday, February 16, 2011 2:47 AM
http://googletesting.blogspot.com/2011/02/how-google-tests-software-part-three.html
By James Whittaker

Lots of questions in the comments to the last two posts. I am not ignoring them. Hopefully many of them will be answered here and in following posts. I am just getting started on this topic.

At Google, quality is not equal to test. Yes I am sure that is true elsewhere too. “Quality cannot be tested in” is so cliché it has to be true. From automobiles to software if it isn’t built right in the first place then it is never going to be right. Ask any car company that has ever had to do a mass recall how expensive it is to bolt on quality after-the-fact.

However, this is neither as simple nor as accurate as it sounds. While it is true that quality cannot be tested in, it is equally evident that without testing it is impossible to develop anything of quality. How does one decide if what you built is high quality without testing it?

The simple solution to this conundrum is to stop treating development and test as separate disciplines. Testing and development go hand in hand. Code a little and test what you built. Then code some more and test some more. Better yet, plan the tests while you code or even before. Test isn’t a separate practice, it’s part and parcel of the development process itself. Quality is not equal to test; it is achieved by putting development and testing into a blender and mixing them until one is indistinguishable from the other.

At Google this is exactly our goal: to merge development and testing so that you cannot do one without the other. Build a little and then test it. Build some more and test some more. The key here is who is doing the testing. Since the number of actual dedicated testers at Google is so disproportionately low, the only possible answer has to be the developer. Who better to do all that testing than the people doing the actual coding? Who better to find the bug than the person who wrote it? Who is more incentivized to avoid writing the bug in the first place? The reason Google can get by with so few dedicated testers is because developers own quality. In fact, teams that insist on having a large testing presence are generally assumed to be doing something wrong. Having too large a test team is a very strong sign that the code/test mix is out of balance. Adding more testers is not going to solve anything.

This means that quality is more an act of prevention than it is detection. Quality is a development issue, not a testing issue. To the extent that we are able to embed testing practice inside development, we have created a process that is hyper incremental where mistakes can be rolled back if any one increment turns out to be too buggy. We’ve not only prevented a lot of customer issues, we have greatly reduced the number of testers necessary to ensure the absence of recall-class bugs. At Google, testing is aimed at determining how well this prevention method is working. TEs are constantly on the lookout for evidence that the SWE-SET combination of bug writers/preventers are screwed toward the latter and TEs raise alarms when that process seems out of whack.

Manifestations of this blending of development and testing are all over the place from code review notes asking ‘where are your tests?’ to posters in the bathrooms reminding developers about best testing practices, our infamous Testing On The Toilet guides. Testing must be an unavoidable aspect of development and the marriage of development and testing is where quality is achieved. SWEs are testers, SETs are testers and TEs are testers.

If your organization is also doing this blending, please share your successes and challenges with the rest of us. If not, then here is a change you can help your organization make: get developers fully vested in the quality equation. You know the old saying that chickens are happy to contribute to a bacon and egg breakfast but the pig is fully committed? Well, it’s true…go oink at one of your developer and see if they oink back. If they start clucking, you have a problem.


利用python调用谷歌翻译API 废话少说 从速卖通抓取了一些评论想进行一些简单的文本分析,但是因为速卖通是一个跨境电商平台,上边的评论基本都是小语种,对,小语种,俄语,法语...英语还可以勉强应付一下,但是其他真的是一个字母都不认识啊,所以我就想能不能用python解决这个问题。 知名的翻译(我听说的)就是谷歌,百度,有道,有道翻译英语还行,小语种效果太差了,直接放弃,经过对比百度和谷歌,准确率上还是谷歌更准确一点,毕竟谷歌搜... 阅读详情

相关推荐

谷歌翻译修复插件:提升谷歌翻译体验

谷歌翻译修复插件是谷歌浏览器中一个强大的工具,它能够对翻译结果进行快速修正和优化。本章节将为读者详细介绍插件的功能特性。谷歌翻译修复插件通过利用最新的翻译算法,有效地提高翻译的准确性和流畅性。它不仅修正了一些常见的翻译错误,还增加了对专业术语和俚语的准确翻译能力,使得用户能够得到更贴近原文的翻译结果。在第四代的插件更新中,我们加入了文本到语音的翻译功能,这使得用户可以更直观地感受到翻译结果。下面的代码示例展示了如何将文本转换为语音:代码解析:代码段定义了一个。

weixin_30598047的博客 1195

<谷歌如何测试> 翻译第五篇

PS,最近2周家中有些私事,翻译进度滞后一些,见谅。 正文, Wednesday, March 23, 2011 8:27 PM By James Whittaker 对于测试范围的形式,谷歌并没有使用通用的代码测试、集成测试、系统测试这些常用术语来做区分,而是使用小规模测试、中等规模测试、大规模测试这样的称呼【译者注:代码测试(code testing), 通常指单元测试和API级别的测

测试人生 3226

如何利用ADS中的耦合线设计带通滤波器并转换为HFSS模型

耦合线带通滤波器是一种常用的微带滤波器形式,由多个长度为四分之一波长的耦合线节组成,在所需频点形成谐振,构成滤波器的频率响应特性。首先我们先来了解一下耦合线带通滤波器的电路结构,见下图:包括两对耦合线,中间为公共连接点,其中两对耦合线的偶奇模阻抗为(Z1e,Z1o)和(Z2e,Z2o,端口输入阻抗为Z0)。2.指定一个初始奇偶模值,ADS优化出一个合适的结果,通过奇偶模值利用linecalc工具计算出微带耦合线尺寸。假设中心频率为2GHz,则对应频点的电长度为。5.运行结果,两个软件仿真结果基本一致。

auqihc的博客 2229

谷歌如何测试翻译版(1)

最近感兴趣,想研究下互联网是如何测试的。虽然我是测试开发,但是我对人力和自动化一直存有疑义。最近互联网自动化测试一片风生水起啊,想客观的审视测试这个职业,而不是片面的强调测试的重要性。于是就找了一本到现在都木有人翻译的书《how google tests software》,来尝试翻译给自己看。 前言(一)Foreword by Alberto Savoia   前面介绍了一段如...

weixin_30458043的博客 150

【点云数据集】整理汇总(自用,更新ing)

涵盖了各种不同的城市场景:教堂、街道、铁路轨道、广场、村庄、足球场、城堡等等。邮件地址:dmich-request@graphics.stanford.edu,内容需包含:1. 您的姓名、头衔或职位,以及所在机构或隶属关系;license比较难获取,目前可获取的人员:(1)目前隶属于大学、工业研究实验室或其他主要机构的已发表过研究成果的研究人员;普林斯顿 ModelNet 项目的目标是为计算机视觉、计算机图形学、机器人技术和认知科学领域的研究人员提供全面、干净的物体 3D CAD 模型集合。

weixin_44392103的博客 797

基于springboot医院医疗仪器管理系统

基于Spring Boot的医院医疗仪器管理系统是一款专门为医院设计的高效管理工具。

2201_75927219的博客 1012

麻省理工-软件构造-翻译-Reading 15: Equality

Reading 15: Equality等价 Java Tutor exercises Keep making progress on Java by completing this category in the Java Tutor: 通过完成JavaTutor的这个类别,继续在Java上取得进展: ✓Object1/1 Software in 6.031软件6.031 Safe from bugs 避免错误 Easy to u...

qq_44442978的博客 610

ATR2660:卫星导航高增益低噪声放大器芯片数据手册

中国BDS(北斗卫星导航系统),美国的GPS,俄罗斯的GLONASS和欧盟的GALILEO导航系统应用而专门设计。芯片支持3.3V至5V宽电源供电。采用2级放大器的结构设计,具有28dB高增益和0.85dB的低噪声系数。支持BDS、GPS、GALILEO、GLONASS等L。典型功率增益:30dB@5V;典型输入P1dB:-18dBm@3.3V;典型工作电流:12.7mA@3.3V;宽供电电压范围:3.3V~5V;典型噪声系数:0.85dB;频段的多个卫星导航系统;ATR2660是一颗。

YHPsophie的博客 561

搜狗谷歌机器翻译结果的对比和分析

雷锋网(公众号:雷锋网) 本文作者:宋柔,广东外语外贸大学云山讲座教授,曾任北京语言大学信息科学学院教授,博士生导师,中文信息学报编委。主要从事智能软件工具、语言信息处理、人工智能应用方面的研究、开发和教学工作,近年的主要研究方向是语言信息处理。 去年谷歌推出了基于神经网络的机器翻译系统,最近搜狗也推出了类似的系统。我对这两个系统翻译结果的错误作了一些对比分析。 英译汉 测试样本是201...

weixin_42508242的博客

深入LSM6DSL的FIFO连续模式:基于STM32和MEMS库的数据流高效处理指南

本文深入探讨了LSM6DSL的FIFO连续模式,结合STM32硬件平台和ST官方MEMS库,提供了高效的数据流处理方案。通过优化I2C通信时序、中断驱动设计以及动态ODR调整,实现低功耗数据采集与处理,显著提升嵌入式传感器应用的性能和续航能力。

weixin_30387799的博客 349

Bev算法在J5平台的部署

支持多种形式的Bev算法:ipmlss时序,以及基于transformer的gkt。

@bangbang的博客 846

机器学习中的训练集,验证集及测试集的关系

最近在看机器学习的东西发现验证集的(Validation set) 有时候被提起到,以时间没明白验证集的真正用途。 首先,这三个名词在机器学习领域的文章中是很常见的,以下是这三个词的定义。  Training set: A set of examples used for learning, which is to fit the parameters [i.e., weights] of

Losteng的博客 4万+

10、皮肤 - 神经记录实验全流程解析

本博客详细介绍了皮肤-神经记录实验的全流程,涵盖实验所需的材料准备和具体操作方法。内容包括细胞外记录设备的设置、合成间质液(SIF)的制备与调节、小鼠后爪皮肤和胫神经的手术解剖步骤、清洁解剖后的记录准备、纤维分离与感受野识别方法,以及神经纤维机械响应的测量。该实验为研究神经纤维的活动与功能提供了重要的技术支持,适用于神经科学研究领域。

backprop5master的博客 186

腾讯翻译君 VS 谷歌翻译

腾讯翻译君 VS 谷歌翻译 0.小贴士:文章比较长,请耐心观看。 1.先贴网址 腾讯翻译君 谷歌翻译 2.找一段高难度的英文测试文本 孔子的英文百科: Confucius (September 28, 551 BC – 479 BC) was a Chinese teacher, editor, politician, and philosopher of the Spring and Autumn period of Chinese history. The philosophy of C

weixin_44634312的博客 2706

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

谷歌翻译API, 免费采集翻译

大家都知道,以前谷歌翻译是开放免费API的,对于我们工程中即时翻译用的很方便,可是后来谷歌收费了,5555 各种不方便啊 遂 ,决定自己做个采集翻译的小工具,方便自己,也能方便大家。当然,网上的哪些所谓的方法工具都已经失效了。 先来梳理一下谷歌翻译的流程, 用抓包工具走了一遍,发现内容提交是GET方式,qurestring , 还伴有cookie,于是从抓包工具中提取GET.....

life169的专栏 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

<谷歌如何测试> 翻译第四篇

  在比其他公司少很多测试人员的情况下,谷歌做的还不错的一个关键原因是,很少尝试在一次发布中包含很多的功能。实际上,谷歌经常反其道而行之,在一个产品的核心模块被开发后,如果有一定数量的受益人群就立刻发布,然后不断的得到用户反馈再迭代开发新功能。这也是我们在Gmail 上的做法,Gmail 被贴上Beta版本的标签在线上运营了四年。通过这个Beta标签也可以来警示用户,Gmail 还并非完美的产品...

lh200808的专栏 235

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

<谷歌如何测试> 翻译第一篇

这是谷歌如何测试系列文章的第一篇。 Tuesday, January 25, 2011 9:08 AM By James Whittaker 在所有我被问及的问题中,最多的就是关于谷歌是如何测试的。尽管在博客中【google testing blog】中有过零碎的解释说明,但还是需要更多的系统阐述。虽然谷歌的技术路线在执行的过程中不断地进化,但公司的测试策略却从来没有变化过。谷歌现在是一家拥

测试人生 3526

腾讯云大模型知识引擎 + DeepSeek:打造懒人专属的谷歌浏览器翻译插件

在当今信息爆炸的时代,阅读外文资料已成为获取前沿知识的重要方式。然而,频繁切换翻译工具的繁琐过程常常打断我的阅读节奏,让我感到困扰。于是,我萌生了一个想法:利用腾讯云大模型知识引擎(DeepSeek)开发一款谷歌浏览器翻译插件,让翻译变得轻松又高效。开发这款插件的过程充满了挑战与成就感。我首先深入了解了腾讯云大模型知识引擎的强大功能,它不仅能精准翻译单词和句子,还能理解上下文语义,支持多种语言互译。通过研究API文档,我掌握了接口的调用方式,并用curl和Apifox进行接口测试,确保其稳定性和准确性。

LucianaiB的博客 11万+

<谷歌如何测试> 翻译第六篇

Monday, May 02, 2011 12:05 PM By James Whittaker 软件测试开发工程师【SET】的生命 软件测试开发工程师【Software Engineers in Test】是软件工程师,专注在测试实现。首先,软件测试开发工程师是开发角色,在招聘和内部晋升资料中被我们奉为100%的编码角色。当在招聘面试软件测试开发工程师的时候,对于编码的要求几乎和对软件开发

测试人生 3432

<谷歌如何测试> 翻译第七篇

软件测试工程师【TE】的工作 相比软件工程师【Software Engineer】、软件开发测试工程师【Software Engineer in Test】而言,软件测试工程师【Software Test Engineer,以下简称测试工程师】是一个较新的角色,甚至这个角色本身目前还在定义完善之中。当前谷歌测试工程师们正在对未来这一角色的定义上进行实践尝试中。在这里,我们讲述的这个角色的定义过程

测试人生 1751

<谷歌如何测试> 翻译第二篇

Wednesday, February 09, 2011 6:36 PM By James Whittaker   为了实现”谁的屁股谁自己擦”这句名言所说的那样,在传统的软件开发人员的之上,有必要增加了几个角色,特别是需要工程技术方面的特殊角色,这种角色可以让开发更高效低做测试。在谷歌,这样角色的职责是让其他人工作的更有效率,这样的工程师通常会把自己当做测试人员,但他们真正的使命是提高生产

测试人生 4957

Python脚本调用谷歌浏览器的谷歌翻译

使用Python脚本通过谷歌浏览进行谷歌翻译

xuesonmax的博客 2344
上一篇: <谷歌如何测试> 翻译第二篇
下一篇: <谷歌如何测试> 翻译第四篇
liubofengpython
博客等级 码龄15年 23粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值