Google测试之道读后感

晨读系列(一)之《Google软件测试之道》 工作十个月以后一个观念在我心里越发清晰:要写出在日常操作场景下不出错的代码真的很难。 尽管每次上线前都会进行测试行为,但是随机测试往往难以覆盖所有的环境和场景,所以找了本关于测试的书来看,顺手记录下在阅读过程中的一些让我印象深刻的点。 软件工程师角色划分 在谷歌,软件工程师主要划分为三种角色:SWE(软件开发工程师)、SET(软件测试开发工程师)和TE(测试工程师,也称用户开发工程师)。三种角色都要求具备一定的开发能力,但是从左到右,开发工作占的比重越来越少,测试工作以及对产品端到端负责的比重越来越大,对综 阅读详情

测试人员划分

 测试人员严格区分为SET和TE。SET前期深度参与项目的开发,推动开发人员的自测,从破坏者的角度寻找各种bug,通过开发各种测试工具来提高工作效率。TE则在后期项目被确立后参与进来,从用户的角度去平衡开发与需求。google中测试人员被派驻到到各个产品中进行测试,SET更多的负责产品的质量保障,加快测试与研发的效率,而TE则是从用户角度去体验和完善产品,优化各个逻辑操作,推动产品的用户体验。

组织架构:


本书在一开篇的定位,就打破了「测试」的局限,Google 最开始的测试团队叫「测试服务」,之后演进为「工程生产力」团队,别看仅仅是名称的变化,不同的名称所代表的职责范围和目标却是完全的不同。

国内公司目前大部分团队的称呼还是「测试」,和 Google 的「测试服务」有些类似,工作重点都是表示层的验证,并且随时响应不同项目的测试(验证)需求。

还有一部分团队的称呼是「QA」,相对与「测试」,「QA」的职责会更宽泛一些,可以涵盖流程质量、测试质量和发布质量,以及各环节中所有可以更好保证质量的事,都可以由「QA」来推进。

「工程生产力」是相对「QA」更进一步的职责扩展了,就是除了测试和质量之外,还会跟进生产力提升,比如帮助开发更好的完成测试和质量保证工作,就是把测试和质量保证前置,转移给开发,测试人员给开发提供必要的支持。

测试环境

小型测试(fake环境) -> 中型测试(fake或真实环境) -> 大型测试(真实环境)
mock:对外面依赖系统的模拟,一般可以动态地设置返回值;

fake:一种虚假的实现,只返回固定的结果;

stub:和mock意思接近,但它一般不知道是否被call过。我自己觉得这3者差别也是太大,偶尔大家都混用(如全都叫“mock”)。个人感觉是,一般是测试方写的mock/stub,提供方在没完成功能前提供fake;另外,mock/stub一般可以工具直接生产,而fake一般是手写的。
强调小型、中型测试的自动化覆盖率;小型、中型、大型测试的比例:7:2:1


测试认证级别

根据测试覆盖率、分层测试情况、继续集成、缺陷和测试用例的关系,将团队分为5个级别。 Level 5 最高,做的做好。
SET主要负责mock/stub、API测试、测试工具、CI工具,更偏向于代码开发;
TE是面向用户的测试,具备测试代码开发和用户为中心测试的双重能力。
TE完成测试整个过程,风险评估、测试计划、测试执行、探索式测试、用户反馈。

Google软件测试之道-读后笔记 软件测试介绍 软件测试团队应当归属于一个被称为“工程生产力”的中心组织部门,这个部门的职责横跨开发测试人员使用工具的研发、产品发布和各种级别的测试,从单元级别到探索性级别的测试。 有时候,测试和开发相互交织在一起,达到了无法区分的地步,而在另外的一些时候,测试和开发又是完全分离的,甚至开发人员也不知道测试在做什么。实际上,测试遵循一定的规则,但又不全是“教条式的、强流程的、体力密集性的、耗时的”,所以有时候过多的测试人员对于测试工作不一定有好的帮助。 那么如果在测试人员较少的情况下,如何高效的去 阅读详情

相关推荐

《Google软件测试之道》二、Google软件测试介绍

不久前,公司邀请外企大厂经验的大佬,分享Google的经验,本人特意问了一个问题: 日常需求项目中,功能测试(测试用例的准备、执行)、性能测试等等,QA人员会参与执行吗? 大佬回答:不会。是开发人员的工作 几点自己的思考: Google能把这个质量是研发活动的一部分,彻底贯彻执行下去,需要从上到下的强大执行力。 国内的大小厂,据本人有限的所见所闻来说, 没有全部由开发人员编写用例、执行用例的实践 其实国内,开发和测试很大程度是2个团队负责,隔离开的。测试时 开发活动的下一个节点,...

我的E家 1133

Google软件测试之道(读书笔记)

目录 第一章 Google软件测试介绍 第二章 软件测试开发工程师 第三章 测试工程师 第四章 测试工程经理 第五章 Google软件测试改进 第一章 Google软件测试介绍 角色、类型、行为、组织结构: 划分测试: 版本类型、迭代开发: 本章总览: 第二章 软件测试开发工程师 SET的工作: 自动化计划: 测试运行要求: 测试认证: SET的招聘: 本章总览: 第三章 测试工程师

Meng 7328

Google软件测试之道(中、英两版)

Google软件测试之道(中、英两版)

Google软件测试之道

Google软件测试之道 质量和测试的关系 书中的观点是: 质量不是被测试出来的,如果在最开始设计的时候就是错的,那它永远不会变成正确。 质量不等于测试。当你把开发过 程和测试放到一起,就像在搅拌机里 混合搅拌那样,直到不能区分彼此的 时候,你就得到了质量。 我的看法: 狭义的测试指的是今天国内普遍认为的,由专职的QA针对软件功能进行测试。 广义的测试指的是从代码编写开始,每一次代码被执行的过程,这里包括单测,自动化测试,集成测试,端到端测试,产品走查,上线之后的用户使用等流程。 Q

PJZero 1847

Google软件测试之道_13438767 (2).zip_CT4_google

GOOGLE软件测试之道,可以让你深入了解测试行业的经典案例

FreeRTOS的学习(十四)——PendSV异常

本文将从任务切换的角度出发,学习PendSV异常的相关概念。

LEOD的博客 1730

《Google 软件测试之道》摘录

最近刚刚看完《Google 软件测试之道》,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer)、SET(Software Test Engineer)、TE(Test Enginee) SET也是开发角色 - 100%时间在编写代码,SET和SWE是合作伙伴 - 工作重心在可测...

310

基于555定时器的D类功放设计:从PWM原理到无反馈电路实践

D类功放(数字功放)是一种高效率的音频放大技术,其核心原理是脉冲宽度调制(PWM)。它将输入的模拟音频信号转换为一系列高速开关的脉冲,通过控制功率开关管(如MOSFET)的通断,再经低通滤波器还原放大后的音频。相比传统AB类功放,其转换效率通常超过90%,显著降低了热能损耗。这项技术在追求高能效和小型化的现代音频设备中价值凸显,广泛应用于有源音箱、汽车音响和便携式设备。本文聚焦于一种独特的实现方案:以经典的555定时器芯片为核心,构建一个无整体负反馈的D类功放。通过剖析其PWM调制器、FET电压-电流转换级

weixin_30162121的博客 222

读书笔记:Google软件测试之道

读书笔记:Google软件测试之道  (2013-11-13 12:55:46) 转载▼   分类: 笔记 最近看了《Google软件测试之道》 喜欢google是从喜欢他们涂鸦开始的,其他的有搜索、chrome浏览器、gmail邮箱,还有日历等。当看到他们制作有趣的涂鸦时,总是禁不住想:是什么样的脑袋才会想出这许多种有趣的表达方式?能想出这些涂

wacky 1585

国内网络环境下Calico v3.26.4安装避坑指南(附华为云镜像加速脚本)

本文为国内开发者提供Calico v3.26.4的高效部署指南,重点介绍如何通过华为云镜像加速服务解决Kubernetes集群网络插件镜像拉取问题。文章包含详细的镜像加速脚本、部署清单修改方法及深度排错技巧,帮助开发者快速完成Calico网络插件的安装与配置。

brown的博客 289

国科大《人工智能原理与算法》2021年期末试题+2024经验(2025指南)

2021年期末试题+24年复习指南

MatsumotoChrikk 2928

读《Google软件测试之道》的几点思考

作为一个在世界500强工作过17年的人,读《Google软件测试之道》的时候感受颇多。 首先我想和大家一起思考几个问题 1. 产品质量重要吗? 答案是只有在软件产品变得重要的时候质量才显得重要! 说实话保证质量是需要大量投入的,高投入,肯定是需要高回报的, 咱们不要道德绑架,人人都要吃饭的,企业是要盈利的,如果产品本身不足够有价值, 肯定是不值得投入过多的人力财力去保证高质量的。 2. 质量是测试出来的吗? 答案是质量不等于测试 质量不是测试出来的, 质量是开发过程的...

白天像蚂蚁一样工作,晚上像蝴蝶一样生活 1437

【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】

Synopsys PCIe 5.0 EP 架构由多个功能模块组成,整体遵循分层 + 模块化设计CXPL(事务层 + 链路层 + 物理层 MAC)XADM(仲裁/生成)、XAIM(应用接口)RADM(过滤/路由/Completion)CDM(配置空间)、PMC(电源管理)、LBC/DBI(寄存器访问)MSG_GEN(消息)、CXS(多芯片一致性)

CodingCos的博客 383

《Google软件测试之道》有感

Google软件测试之道有感谷歌测试工程师给我的感觉他们做了些什么A&Q 谷歌测试工程师给我的感觉 如他们的招聘要求,有很多想法,并且有能力去实现。印象深刻的是,有一位为了实现自己的想法,周末的时间在咖啡馆也在努力,并且最终取得了成功。以前的我觉得有些不可思议,为什么要占用自己的休息时间来完成工作。这大概就是热爱吧。我们好像总是淹没在版本不停的交付中,没有停下来思考,如何提高效率,并去实践。 他们做了些什么 创新,开发了很多工具并提出一些概念,把人从繁琐的工作中解放出来,投入到更有价值和意义的工作中

xuanyimang0324的博客 456

Qt + windows + Linux+QtInstallerFramework打包教程

本文介绍了使用Qt Installer Framework在Windows和Linux系统下打包Qt应用程序的完整教程。Windows部分详细说明了从下载安装框架、配置环境变量、生成release版本,到创建安装包目录结构和修改配置文件的完整流程。Linux部分则重点讲解了环境变量设置、桌面应用配置(.desktop文件)以及两种打包方案:一种使用linuxdeployqt生成AppImage文件,另一种采用类似Windows的安装包方式。教程提供了关键配置文件(config.xml、package.xml

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 516

STM32F407驱动OV2640摄像头全栈解析:DCMI+DMA+SCCB协同设计

图像采集是嵌入式视觉系统的基石,其核心在于传感器与MCU间的数据通路构建。原理上需理解并行接口(如DCMI)的硬件同步捕获机制、串行控制总线(如SCCB/I²C)的寄存器级配置逻辑,以及DMA在高吞吐数据搬运中的关键作用。技术价值体现在解放CPU、保障实时性、降低功耗,并支撑JPEG压缩与RGB565直显等差异化应用。典型场景包括智能终端实时预览、低带宽图像上传、工业现场视频监控及教学实验平台搭建。本文以STM32F407与OV2640集成实践为载体,深入剖析DCMI时序约束、SCCB软件模拟实现及DMA循

weixin_36151775的博客 180

Google软件测试之道-第一章观后感

第1章 Google软件测试介绍 在去工作前,立下一个小flag,把这本书看完。观摩大佬们如何做测试,和大家一起研读感受测试的乐趣。 文章目录第1章 Google软件测试介绍前言一、质量不等于测试二、角色三、组织结构四、爬、走、跑五、测试类型 前言 当有人来问我,Google 成功的关键是什么,我的第一个建议就是,不要招 聘太多的测试人员。 书中的原话,和我想象中的不太一样,现在的互联网公司需求迭代的很快,测试人员如果人数不多,上线的时候风险会比较大吧,咋样能够做到人少的情况还能保证高质量的代码呢

xyh_qianxiao的博客 281

Data+AI━━数仓建模的智能进化之路!

Data+AI━━数仓建模的智能进化之路!

ith321的博客 1745

《Google软件测试之道》读书笔记

第一章 我发现谷歌对于测试的定位与我们目前测试的定位是不同的,谷歌比较看重开发自测,而所谓测试者,就是帮助开发更好、更快地进行测试。 他们也有测试开发和测试,不过他们对于测试开发而言,就是更偏向于开发,跟开发紧密结合,通过代码评审,编写自动化测试,单元测试等手段进行测试。 而测试工程师是处于用户的角度上,模拟用户的使用场景,进行自动化测试。 他们的测试人员并没有绑定在产品上,而是十分流动的,此举在书中写明是使测试保持新鲜感且总是很忙碌,另外还能保证一个好的测试想法可以快速在公司内部蔓延。 从文章中能看出来,

weixin_43923968的博客 501

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Google软件测试之道-第二章观后感

第2章 软件测试开发工程师 在去工作前,立下一个小flag,把这本书看完。观摩大佬们如何做测试,和大家一起研读感受测试的乐趣。 文章目录第2章 软件测试开发工程师前言一、SET的工作1、开发和测试流程二、角色三、组织结构四、爬、走、跑五、测试类型 前言 功能开发人员在编写功能代码的时候,测试开发人员编写测试代 码,但我们还需要第三种角色,一个关心真正用户的角色。显然在我们 理想化的乌托邦测试世界里,这个工作应该由第三种工程师来完成,既 不是功能开发人员,也不是测试开发人员。我们把这个新角色称为用户 开

xyh_qianxiao的博客 371

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Google测试之道有感

http://www.51testing.com/html/36/category-catid-136.html组件(component)执行某种功能(function)来满足产品的一个特质(attribute),这个活动的结果是向用户提供某种能力(capability)ACC的完成,意味着所有可测试的特性都被定义好了,剩下的只是预算和时间的问题了。这就需要来排优先级--在G...

weixin_34067102的博客 176

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《Google软件测试之道》摘抄与有感-测试工程师篇

3.3 与Google Docs测试工程师Lindsay Webster的访谈 HGTS:关于测试工程师这个角色,你最喜欢和最不喜欢的是哪一点? Lindsay:我真的喜欢这种技能带来的灵活性。这个角色是技术性的,但同时也是面向用户的。有什么项目不需要我这样的人呢?我可以给这么多不同类型的项目带来价值。团队在推出一个产品或新功能时难免感到提心吊胆,而我能带给他们镇定1和信心,这使我感到自己是一种正面、有益的力量。 我的观点:能够和开发团队共奋进,齐心协力不断优化项目,把项目做得更加完善真的是一种很棒的感觉

发发发 405

《Google软件测试之道》读书笔记---第四章

第四章 测试工程经理 测试工程经理是作为独立贡献者的一个技术岗位,负责所有的支持团队(开发、产品管理、产品发布、文档等)之间的联络。 4.1测试工程经理的工作 1.了解 你的产品 2.知人善用 4.2获得项目和人员 4.3影响力 自己作为团队的代表,测试工程经理必须努力发现团队里的好方法、好工具,并分享给其他团队。好的方法和工具,只有在更多的产品中成功应用,才能体现出更大的影响力。 4.4Gmail测试工程经理Ankit Mehta的访谈 1.你的测试团队需要找什么样的人? 我需要寻找那

kxkltey的博客 359

《谷歌软件测试之道》读书笔记——认知的提升之道

数据的准确性。对于搜索是性能,对新闻来说是时效性,对地图来说是综合性和完整性。(我司的特点就是核对对数据,数据要对)(确实是,发现这种问题首先检查测试用例,再去沟通是否漏测,开发如何产生的bug)

weixin_44259638的博客 369

读【谷歌测试之道】有感

《谷歌测试之道》

m0_68768456的博客 332
上一篇: 异常exception和错误error即推荐用法@sneakythrow
下一篇: 网络重要知识点
洋气月
博客等级 码龄8年 5386粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋气月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值