《软件测试经验与教训》读书笔记(四)

测试小组的管理:

210)平庸是一种保守期望。如果认为在自己的公司内不会出现英雄,就不会得到英雄。

211)要把自己的员工当作执行经理。执行经理就是管理自己的时间以及影响机构发挥作用的人。

其实大多数脑力劳动者(例如测试员)都是执行经理,人们交给执行经理的工作量,总是比其所能够完成的要多有效的执行经理会挑出自己能够完成好的那一部分任务子集,并完全不考虑其他任务;低效的执行经理总是试图做所有的事,总是不成功,特别是不能取得自己所努力争取的结果。

我们对待测试员不要像对工厂工人那样发号施令,管理测试小组时要录用具有不同经历和背景的员工,且要更多关注新测试员。我们的目标是产生执行经理,并从一开始就要表现出对其学习、思考的尊重;我们期望他们能够迅速担起责任,表现出工作热情,建立自己的信誉,发展自己的技能。

212)阅读自己员工完成的错误报告。这样有助于测试经理了解产品情况、自己员工的强项和品德及影响自己员工的沟通和人际问题。针对员工的错误报告,可以用如下提问来评估员工的工作质量:

a这些报告写得好吗?

b报告直率地提出了问题吗?

--c报告留下迫切要求后续测试的漏洞了吗?

d发现程序错误的测试看起来是例行公事还是很有见地?

e程序错误很难发现吗?程序错误出现在应用程序一般比稳定的部分吗?如果是,这反映出测试员的坚韧性还是好运气?

f报告的语气怎么样?

g程序员能理解报告吗?程序员对报告有什么反馈意见?这反映出程序员和测试良好的协作?还是相互指责?

213)像评估执行经理那样评估测试员。

注意:BUG数顶多就是测试员工作有效性的没价值的度量,它会使测试经理产生误导。我们建议评价员工工作时可以通过:阅读错误报告;阅读其编写的代码;阅读其编写的测试文档;收集与其一起工作的程序员及其它相关人员的意见。需考虑如下因素:

a他卷入了什么争端,为什么?

b在按期完成任务方面做得怎么样?

c在信守自己的诺言方面做得怎么样?

d他遗漏了什么类型的问题?

e他对其他测试员或程序员提供了什么类型的帮助,以提高他们的工作效率?

f他在学习新技能吗?他在把自己的技能传授给其他测试员方面做得怎么样?

g他站在公司的立场上处理过什么问题?这些在其对公司业务的判断和个人道德上是如何体现的?

另,测试经理可把员工的自我评估当作正式评估的一部分参考依据,但不能太过依赖自我评估。且正式评估的频度不能太低:每半年或一年进行一次。

214如果测试经理确实想知道实际情况,可与员工一起测试。

测试经理参加项目团队可能并不实际,但可对自己的时间划分优先级,可仔细考虑至少积极地参加一个项目团队的可能性,这项工作很重要,值得给出较高优先级。

因为如果测试经理不参加项目团队的测试工作,一段时间后可能就会丧失自己的很多技术能力,就不能看到测试员正在处理的真正问题,且很难评估测试员工作的质量。

215)不要指望别人能够高效处理多个项目。注意:

a有些人会接受多项任务,但在特定的一周(一个月)内,他们只能承担其中一项,而其它任务会被抛在一边。

b积极地承担所有任务的测试员会把时间分得太碎,要在管理方面花很多时间。最终测试经理使某个测试员参与多个项目,参加很多会议,花大量时间了解各个项目,而对任何一个项目所做的实际测试都很少。

216)积累自己员工的专业领域知识。领域知识包括:用户如何使用类似的产品、什么俗人问题对他们很重要、同行如何解决这些问题等。通过如下途径可积累真正的专业领域知识:

a阅读面向类似产品客户的杂志和书籍。

b参加客户如何使用类似产品的培训。

c参加与产品的下层主题有关的培训。

d在客户现场工作。

e推销自己公司的产品或同行的产品。利用周六日到零售商推销软件,掌握了产品市场的很多信息。

f每周利用几个小时解答公司技术支持需处理的热线电话。

217)积累自己员工相关技术方面的专门知识。

218)积极提高技能。对于强化测试小组在公司中的价值极有帮助。

219)浏览技术支持日志。为了理解软件安装后正常运行时出现的问题,应阅读公司的客户投诉记录,思考为了使某类投诉减少自己可以做些什么;如果有这样的问题,思考什么类型的测试会有助于发现被测软件中类似的一般问题。

220)帮助新测试员获得成功。实施步骤如下:

a为新测试员找好地方,并在他上班前安排好(例如:提供计算机等硬件软件及必要的公司项目文档)。

b至少要安排一天的时间让新测试员与有关人员见面,带他参观公司部门,向他介绍将在一起工作的每一个同事,通过面谈了解他的希望和预期。

c为新测试员指派一位指导者。指导者要带新测试员各处参观,并回答各种问题,检查新测试员所完成的工作并提出建议,午餐请几次客,这些都很有帮助。注意:指导者并不是新测试员的上级,并不向测试经理报告有关新测试员的任何事,除非是很重要的问题。

221)让新测试员对照软件核对文档。即,新测试员运行软件核对用户手册或在线帮助,这样能让他了解程序的所有部分。

222)通过正面测试使新测试员熟悉产品。当新测试员核对完用户文档,已理解产品应该提供什么功能后,应尝试以简单且实际的方式使用该产品,并列出使用类似的产品有可能做的事然后使用被测试产品,尝试简单地照样做。

223)让初次接触测试的员工在编写新错误报告前,先改写老的错误报告。

224)让新测试员在测试新程序前,先重新测试老的程序错误。例如:重现仍未关闭的BUG;重新测试已解决的BUG;重新测试已解决但还没关闭的程序错误。

225)不要派测试新手参加几乎完成的项目。因为要花费大量时间编写详细的测试步骤等文档供测试新手使用,且测试新手使用这些文档会遗漏大量程序错误。

226)员工的士气是一种重要资产Napoleon指出“三分士气一分体力”。如何营造提升员工士气的氛围,具体如下:

a礼貌地对待员工,尊重员工。

b关注他们的工作。

c称赞好的工作、热心和诚实努力。

d如果员工加班,测试经理也要加班。不一定要每晚,不一定每个周末,但要足够经常,使得员工可以感到测试经理在观察他们加班的情况。

e如果可能,为员工指派他们感兴趣的任务和项目。鼓励他们说出自己的兴趣,并给予考虑。

f如果测试员任务完成得不顺利,可指派别人给予帮助、指导,如果有必要还可以考虑替换

g提供培训机会。表现出测试经理很看重技能和专业背景。

h测试经理要公平对待员工,并要求别人也公平对待他们

j不要对任何一位员工产生误导。如果测试经理不知道问题答案,就实话实说。

k不要对员工叫喊,不要利用自己的权力强制要别人接受自己的观点

l避免公开批评员工,但必须在私下指出其错误和问题

m不要与员工私下议论其他小组内的员工

n测试经理不要与员工约会。并在接受员工个人提供的方便或礼物时应特别小心,即使是小礼物。给的东西往往要多于接受的东西。

227)测试经理不要让自己被滥用。注意:

a不要做自己做不了的事。很多经理不管员工已多努力工作,都按惯例试图为每位员工再增加10%20%的工作。测试经理对于自己做不到的,不要陷入责任圈套,不要为了过度工作而搞垮自己和整个团队。

b软件开发并不总是朝九晚五的工作。有时项目经理需要测试经理帮助时,如果测试经理能提供帮助,一定要想方设法尽量提供。但测试经理应该支持自己的小组,要选择自己的节奏,并做出自己的承诺。记住此时测试经理是志愿者,而不是牺牲者。

c测试经理不要承诺不可能做到的事,在这样的事上不必说谎,更不必掩盖问题。事实上,测试员工作的本质就是暴露问题,而不是将其掩盖起来。不必,也永远不应该在诚实上让步。测试经理的力量来自于向需要了解真相的人说明真相,如果在诚实上让步,就会使自己力量的一个核心支柱弱化。

228)不要随意让员工加班。长期加班会使员工体力透支、跳槽率升高、不信任别人、关系复杂、低效、工作草率,所以强烈建议测试经理要避免让测试员长期加班。

如下措施,可避免让测试员长期加班:

a在制定项目进度计划时,不要指望员工能够每天都8个小时集中在工作上。如果幸运的话,测试员可每天有6个小时专心办公室工作,其余时间用于完成其他必须做的工作(例如:参加会议、培训、填写人力资源要求的表格等)。

b不要同意自己知道的不现实的进度计划,要尽可能准确估算完成不同任务需要多少时间。面对比自己估算时间短的进度计划时,应该问清楚首先要完成哪些任务,哪些任务在时间有剩余时才完成。如果项目经理坚持要求完成所有工作,则要问题清楚哪些任务可以完成得不那么全面,并要求提供更多人手。面对不听别人说明理由的项目经理,测试经理要明智地管理好自己的员工,否则会失去他们。

c项目经理奖励加班的人,认为加班得多的人完成的工作更多、更好。测试经理的挑战是找出一种方法,使更有效率的员工的工作效果能够展现出来。

229)不要让员工被滥用。

一方面,如果别人不善待测试员,也许测试经理该给员工做一些规定,为员工提供精神支持,并解决各种不公正待遇。另一方面,如果测试员说出不恰当的话或做出不恰当的事时,管理上应礼貌地处理表现不当的测试员,私下向测试员明确说明这样的表现是不能接受的。

230)创造培训机会。例如:

a成立阅读小组。每周一次或每月两次。目标是阅读一篇论文或专著中的章节并进行讨论(测试员讨论,测试经理参加但不要说很多话),这样的活动要体现自愿原则,所有人都不是被迫参加的。但要寻找某种方法奖励经常参加活动并积极发言的人。

b召开午餐培训会议。每周一次或每月两次。有时测试经理要讲话;有时邀请其它公司的测试经理或领域专家演讲;有时某位员工可以介绍一种技术可测试某个功能时所遇到的挑战。

c如果公司统一安排培训,可搞清楚当地大学提供什么相关课程,有什么更好的与软件有关的在线课程。测试经理不要告诉别人该选什么课,但要指出自己认为教得较好并与公司当前项目相关的,或对员工职业发展有益的课程。一般派出两人或三人参加课程和会议,以便能讨论所学到的内容,回来后,要向测试小组报告所学的内容。

231)录用决策是最重要的决策。

--232)在招募期间利用承包人争取回旋余地。

233)谨慎把其他小组拒绝的人吸收到测试小组中。因为更多的人头数会影响下一次请求批准新员工的录用,周围的人也会认为测试小组的能力应与员工人数成比例增加,测试员增加会招来新工作,如果有了新工作,而新的测试员又不能承担,只会增加小组其他人的工作负担。

234)对测试小组需要承担的任务,以及完成这些任务所需的技能做出规划

235)测试团队成员要有不同背景

236)录用其他渠道的应聘者。在非传统场合寻找测试员,尤其是在人力市场很紧张的时期。例如:律师和会计他们有很强的分析技能;刚当上母亲的高级程序员或项目经理需要放慢其工作节奏等。

237)根据大家意见决定录用。让测试小组中的任何全职员工及与测试小组工作关系密切的任何人测试候选人面谈。所有参加面谈的人都可以否决候选人,测试经理应细心、投入地倾听员工所描述的观点,并尊重员工的否决决定,除非员工的否决有歧视问题。

238)录用热爱自己工作的人。谨慎录用对其过去的工作不满的人。

239)录用正直的人。测试人员的价格会影响客户的信任程度。

240)在面试时,让应聘者展示雇佣者所期望有的技能。通过应聘者询问的问题、所进行的查询以及把各部分信息综合为整体方法的方式,对其做出判断。

241)在面谈时,请应聘通过非正式能力测验展示其在工作中能够运用的技能。有些测试小组确实通过逻辑或数字脑筋急转弯迷题,来实行某种非正式的能力测验。我们并不反对这样做,不过我们认为这样做并不像有些人想像的那样能够说明问题,因为对于逻辑和数字脑筋急转弯迷题,通过做大量实际练习会提高其更好地解答脑筋急转弯迷题。

242)在录用时,要求应聘者提供工作样本。例如:自己编写的代码样本、起草的错误报告、论文或报告。永远不要要求提供机密材料,并保证应聘者提供的材料是非保密。

243)一旦拿定主意就迅速录用。

244)要将录用承诺形成文字,并遵守诺言。永远不要承诺超出自己职权的事,例如:职业发展或提升等。

 

软件测试职业发展

245)确定职业发展方向并不懈努力。测试方面职业发展的两个一般方向是:技术和管理。

技术方向的测试包括:自动化测试结构分析员、自动化测试程序员、性能和可伸缩测试员、系统分析员、用户界面和人员因素分析员和鉴定员、测试计划设计员、专题测试专家、黑盒测试员。

测试员通过学习范围相当宽的测试技术,并用领域知识加以补充,会使自己对当前雇主的价值得到提高,这样的测试员可以要求明显更高的工资。一条很实用的指导原则是,确定雇主(或行业)最需要的技能,并努力掌握这种技能。

管理方向的测试包括:测试小组组长、测试经理、测试主任或质量主任、内部顾问、外部顾问。

与程序员相比,测试员对产品有更广、一般来说更浅的认识,并往往对整个产品有兴趣、有影响力。结果很多熟练的测试负责人得到培训并调到其他管理岗位机会:程序设计经理或项目经理、技术支持经理、产品经理、文档编写小组经理、销售支持经理。

测试员的另一个发展方向是过程管理人员,包括:软件指标专门人员、软件过程改进专门人员。建议在向过程管理方向发展时应该小心,因为这些岗位没直接捆绑到任何产品的开发和收益上,可能更容易受到裁员的影响。

246)测试员的收入可以超过程序员的收入。具有专门技术特长的测试员比具有管理技能的测试员更受重视,而管理技能的测试员比黑盒测试员更受重视。

247)可大胆改变职业发展方向并追求其他目标。例如:如果想转型为程序设计员,在逐渐掌握了有关程序设计语言的基本技能之后,可向程序设计小组提出用自己业余时间承担一部分工作。

248)不管选择走哪条路、都要积极追求。

职业发展方向是自己的事。应认真考虑自己的职业发展方向问题,搞清楚自己需要什么,自己对什么感兴趣,这会使自己更有价值。

249)超出软件测试拓展自己的职业发展方向。

花大量时间寻找并批评其他人的错误会变得俗套,尝试做一些其他工作,掌握一些软件开发的其他技能,这会使自己见识更广、更灵活、更适合就业市场的需要、对项目团队所面临的挑战和约束会更有见地。与只承担过一项任务的经理相比,能够发挥多种作用的经理常常难获得更高报酬。

250)跨越公司拓展自己的职业发展方向。职业发展方向是自己的事,即使公司明天出现问题,自己的职业发展方向仍然还是原来的方向。软件测试员群体很大,我们可以通过不同的方式参加这个群体。例如:出席软件测试或软件开发会议、参加当地的计算机学会、美国质量学会等。

251)参加会议是为了讨论。

a参加有关软件测试或软件开发的会议时,不要只是坐在分组讨论会场中听别人发言,应该参加很多分组讨论,但还要花很多时间与参加会议的其他人见面,讨论所做的发言或本领域中的一些问题。

b如果不认识很多与会人员,午餐时,与不认识的人坐在一起,听其谈话,寻找有兴趣且有见地的人。

c在与这些人见面时,询问他们的工作内容,了解他们在会上所讨论的内容。他们发现了什么重要的东西?

d经过一段时间后,就会结交一些在会议上见面的朋友,通过网络与他们交流最新信息

252)很多公司的问题并不比本公司的问题少。与其他公司的测试员建立联系,有助于自己的未来发展。

253)如果不喜欢自己的公司,就再找一份不同的工作。当前有工作几乎总比当前没工作更容易找到好工作。但如果现在的工作环境如此恶劣以至于影响自己对自己的看法,以及面谈时对自己的描述那么最好还是离职,休息一段时间,如果可能,可参加夜校给自己充电,使自己处于很好的精神状态,以便更有效的为下一个潜在雇主工作。

254)为寻找新工作做好准备。例如:准备最新的简历、与一些很好的招募人员有不错的关系、知道有哪些类型的招聘岗位、有哪些公司要招聘及其待遇等。

255)积累并维护希望加入的公司的名单。收集自己希望加入的公司信息,特别是通过网络、会议和关系,与在那些公司中工作的人见面、交谈。

256)积累材料。积累能够证明自己能力的一些代码、文档或其他的工作样本,可利用这些材料显示出其他应聘者不具备的能力。获取这些资料的最好时机是:

a在裁员涉及到自己时,经理或人力资源的代表会解释裁员条件。如果自己手中有特定的工作样品,他们会乐意签署文件,允许员工向可能的雇主或客户出示这些样本,以便获得工作。

b离开公司半年到一年后,如果自己的前老板还在原公司,则这个问题比较好处理。

c在会议上用作例子。

257)把简历当作推销工具。目标是写出针对恰当市场的简历。

a如果对有显者不同的工作岗位感兴趣,则写出不同的简历。要突出最能够说明自己的技能、兴趣和背景。注意:要保证自己不同简历的有关背景和成就的描述是一致的。

b准备一份历史简历。历史简历要以时间顺序描述自己的工作经历,突出介绍在每个工作中取得的成就。

c准备一份功能性或关键词简历。

d决不要夸大自己的背景、技能或经验。诚信是自己的主要资产。

258)找一位内部推荐人。

259)搜集薪金数据。通过www.salary.com这样的网站,可查询到现实的薪金预期值,了解这些信息,更好地准备面谈。

260)如果是根据招聘广告应聘,应根据广告要求调整自己的申请。明确指出招聘广告多项要求中自己已满足的条目及还不满足但很希望学习的条目。

261)充分利用面谈机会。当应聘者接到不太感兴趣的工作面谈机会,应考虑接受这种面谈,并以确实想要应聘工作的同样热情准备面谈。因为这种面谈也是一个实践自己面谈技能的机会。

262)了解准备应聘的招聘公司。如果招聘公司为电,要求进行电话交谈,可向其索取以下信息:

a索取产品材料或公司介绍材料。

b索取他们发行的软件演示版,或询问公司所使用的开发和软件测试工具。询问公司所开发的应用程序类型。

c询问从哪里可以找到有关该公司的其他信息。

注意:如果公司寄来一些材料,一定要在面谈前看完。

263)在应聘时询问问题。应针对不同类型的人挑选不同的问题,如下是沉淀产生有意义回答的问题,例如:

贵公司提供什么产品和服务?

我可以看一下关键产品的演示吗?

贵公司提供的产品和服务有什么特别之处?有哪些主要优点和弱点。

贵公司如何开发主要产品?有些什么关键的开发综合考虑?

贵公司的客户、竞争对手有哪些?

贵公司如何了解自己的客户或如何了解自己的客户对整个产品、设计和缺陷的满意程度?

请描述贵公司的组织图(你们在什么位置、我将在什么位置)。

贵公司的工作情况怎样?

你的工作是什么?你提供什么产品和服务?

你在产品开发过程处于什么位置?

你对你的工作有什么看法?

你想做一些改变吗?

你怎样安排时间与家人待在一起?

你对自己的工作有多大的控制力度?

谁来设计你所运行的测试?谁来运行你所设计的测试?

请谈谈你们的测试设计过程。

我可以看看一些测试计划和测试用例吗?

你对自己的待遇、老板、同事有什么看法?

去年你听过哪些课,出席过哪些会议?

你还接受过什么其他培训?

你怎样学习新技术?

请描述去年你所学到的三种关键技术。

在面谈时,要集中注意力看着对方,认真地听。从而获取如下信息:

a面谈者累了吗?

b面谈者和其他人对他们自己工作的看法是肯定的吗?

c他们是否有很好的士气和团队精神?

e他们的办公设备如何?他们在提高工程技术人员的环境舒适度和生产率方面的投资有多大?员工的办公设备与经理的办公设备有多大不同?

e测试员占用多大的工作面积,设备和照明,更高层人员占有多少?

f寻找所声称的工作条件和实际工作条件的差别。例如:工作时间。

264)就自己的工作岗位进行谈判。谈判是一种技能,必须实践。在谈判期间得到的信息越多,谈判就越有效。关键的信息例如:知道自己想要什么;知道他们想要什么;知道他们的想法;知道他们作为潜在雇主怎样谈判;知道自己的其他选择。

以下是谈判期间会出现并应该考虑的问题:

a在会谈初期,要讲清楚自己想要什么(非报酬方面)以及自己对什么感兴趣。

b应聘者应拒绝提供以前的报酬信息,在雇主对自己感兴趣前,婉转地拒绝回答有关报酬期望方面的询问。

c应热心,但不要过于迫切。

d应使用他们的词汇讨论他们的产品。

e应聘者应该发现并指出自己能够为招聘公司提供帮助的方面,提出建议,给出自己想法的例子。

f应聘者要让招聘公司知道自己想要哪份工作。

g如果应聘者没完全达到该工作岗位的要求,但是又想得到这份工作,可作为一种拓展机会坦率提出来,让招聘公司知道自己多么想得到这份工作,这份工作多么适合自己的兴趣和发展目标,及自己在该岗位上施展才华。

h当心潜在雇主员工带有威胁味道的谈判风格。

请注意:在谈话和谈判时,公司经理都会极为检点。一旦录用后,他们不会更友善,不会减缓威胁口吻,不会更诚实,也不会更为员工着想了。

--265)留意人力资源部。要与决策者谈话,而不是与人力资源部谈话。

266)学习Perl语言。或使用公司指定的脚本语言如:PythonRuby

267)学习JavaC++。积极运用所学到的知识,例如编写自己的测试工具,来学习本公司使用主要开发语言,并在实践中运用。

268)下载测试工具的演示版并试行运行。建议:熟悉本公司没有使用的工具。

269)提高自己的写作技巧。可通辑有关技术和劝导写作方面的课程,并寻找其他途径实践来提高自己的写作技巧。

270)提高自己的公众讲话技巧。

271)考虑通过认证。认证或许可以在应聘简历中很有用,但不要通过认证就以为自己是专家。

272)不要幻想只需两个星期就能够得到黑带柔道段位。很多人对认证很感兴趣,但这与要成为成功的工程师没多大关系。

--273)有关软件工程师认可制度的警告。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值