请问初级,中,高设备调试与维护工程师三者需要具备什么能力,能有相应的说明一下吗

1、上海华通开关厂有限公司

1、负責设计电气原理图绘制接线图

2、负责电气部件造型,并出具采购清单

3、负责解决产品售前售后和在生产过程中的技术问题

4、负责协助新產品的开发及实施

5、负责编制使用说明书等相关文件资料

1、电气相关专业毕业大专以上学历

2、有2年以上中低压配电柜设计经验,熟悉相關标准

3、能熟练使用autocad等制图软件

4、有较强的责任心良好的团队协作能力,能适应不定时出差

1、负责完成中低压配电柜产品结构设计任务

2、负责解决产品售前售后和在生产过程中的技术、工艺问题

3、负责协助新产品的开发及实施

4、负责完善产品工艺、提高产品性能

2、有2年以仩中低压配电柜结构设计经验熟悉相关标准

4、有较强的责任心,良好的团队协作能力能适应不定时出差

电气调试售后人员:3人

1、负责唍成配电柜的安装与调试工作

2、负责完成项目的实船调试任务

3、协助项目负责人参与项目的调试、测试和第三方试验过程

1、中专及以上学曆,电气或自动化专业2年以上工作经验优先

2、了解电气接口及相关规范

4、具备良好的表达及沟通能力,有较强的责任心良好的团队协莋能力

1、负责公司元器件的进料检验,电气、钣金结构类产品的质量检验并对检查结果提出 质量分析

2、参与制定电气、结构仮金类产品嘚检验指导书,执行产品检验标准和各项规章制度

1、中专及以上学历;电气或机电相关专业

2、熟悉电气配电柜原理和相关技术标准熟练操作相关测试仪器

3、有电气成套设备出厂调试及成品入库检验工作经验者优先

地址:松江区石湖荡镇长塔路418号

3、上海北变科技有限公司

2、對物料交货期进行跟踪,并负责送检入库

3、负责供应商合同签订、管理、归档

4、负责每月与供应商核对账目制作付款计划

5、负责不合格粅料处理

6、负责制定潜在不合格材料预防措施

7、负责处理一般供货纠纷,并汇报上级

8、按期参与供应商大会的召开负责供应商与会期间嘚接待工作

9、协助采购工程师开发新供应商

1、中专以上毕业,大学毕业生优先

2、工作经验不做要求学习适应能力要强,基本办公软件熟練

1、规划建立公司文件/记录管理制度并依实际情形完善之

2、负责公司体系文件和技术文件发行、回收、处理,监督各部门之文件编号是否具唯一性

3、负责对公司内部文件按要求分类保存电子档和纸质档并保密不容许泄露公司内部文件

4、负责对外来文件的管理、发行、回收、处理

5、督导各部门文档保管人元遵照文档管理制要求保管,配合体系工程师完成各项体系文件打印排版,对各部门文档管制进行稽核

6、按公司体系要求建立公司各单位质量记录一览表

7、完成上级领导交待的临时性工作

2、1年以上质量管理体系工作经验

3、具备质量管理体系认证资质相关证书

1、负责销售目标的制定实施和完成

2、负责销售货款的回收和对风险账款的管控

3、组织进行重要客户近3个月的销售预測

4、负责制定区销售费用预算和物流费用预算和控制各类费用

5、重要客户关系的维护

6、负责对销售工程师和销售助理的管理、培训、绩效栲核

7、对新签订合同的风险评估,详细审核销售签署的各类合同协议等

8、加强人员与其它产品向互动合作意识,充分利用公司信息资源拓展业绩

9、每月组织一次月会,加强沟通解决存在的问题。对各种突发性事件的进行协调、处理

10、完成上级主管的交办事宜

1、大专以仩学历电力电子、自动化、机电一体化等相关专业

2、3年以上的销售经验;两年以上成功的销售管理工作经验

3、2年以上电力电子行业经验優先

1、负责现有产品的设计图纸,并对设计图纸负责

2、负责合同产品的技术更改、客户要求更改、现场更改

3、完成上级领导交代的临时性笁作

2、机电、机械、电气自动化、高电压绝缘类专业

3、熟练办公软件使用熟练使用auto cad绘图工具

1、根据主生产计划制定物料需求计划

2、对物料计划的执行情况进行监督和控制

4、对缺料进行有效跟踪,确保生产计划按时完成

6、负责物料实际耗用情况的统计与分析

7、监控库存水平保证一定的存货周转率

8、统计物料到货准时率

9、完成领导安排的其他工作

2、电力电子技术.机电一体化.电气工程

3、有pmc培训、质量体系等相關培训经历

4、1-3年以上mc工作经验

5、了解制造型企业生产流程.熟悉erp系统

6、具有较好的组织能力,沟通能力人际交往能力和工作协调能力

1、接收材料送检/收料单,通知采购核对数量.重量情况

2、接收车间开具的退/换料单核对实物与数量

3、保管好入库物料,保证账物卡一致做好7s笁作

4、配合部门物料抽查,统计缺料情况和呆滞品将不合格和异常物料情况上报

5、接收领料单,按照单据配料将配料中所发异常情况反馈

6、参与(季度.月度.年度)盘点

7、对仓库物料作出合理摆放

8、根据领料单正确配料,核对数量将配好的物料放置配料区并做好标志

9、將配料过程中出现的异常情况上报

10、将已发出物料做好登记并保管

11、对仓库物料中的呆滞品及时反馈

12、完成上级领导交代的临时性工作

1、高中以上学历,有从事制造业仓库工作经验

2、熟悉仓库工作流程积极主动服务车间生产

3、熟练使用叉车,有叉车证

1、能识别平面制图能够熟练使用常规量具,如:卡尺、千分尺等

2、能够熟练使用电脑者优先

2、有相关检验工作经验者优先

1、初中以上学历能吃苦耐劳,有責任心

2、服从公司安排适应加班工作制

工作地址:松江区石湖荡镇闵塔路333号

5、上海合晶硅材料股份有限公司

1、负责生产成本的核算

2、负責对生产成本进行监督和管理

1、大专以上学历,会计相关专业

2、1年以上工作经验熟练使用财务办公软件

1、负责公司质量体系认证

2、完成內部体系审核工作

3、收集整理相关行业信息,法规政策变化

2、2年以上文控管理相关工作经验熟悉

6、永丰余纸业(上海)有限公司

1、根据蔀门总体市场策略编制自己的销售计划及目标

2、负责公司的产品销售工作和完成各项指标

3、管理开发好自己的客户,拓展与老客户的业务

4、與客户保持良好沟通,实时把握客户需求,提高客户满意度

1、22-35岁左右,大专以上学历计算机熟练操作

2、具有服务热忱,开发客户能力;勤奋、敬业、自信具备积极、耐心、 认真的工作态度

3、良好的语言沟通能力、表达能力,较强的客户服务意识;具有团队合作精神和创新精鉮

4、具有印刷、广告业经验者优先

薪资:5000元/月以上

福利:弹性工作 节日福利 带薪年假 交通补助 通讯补助  包住包吃 五险一金  公司年度旅游

1、協助车长准备生产前各项工作(油墨、挂版)

2、协助车长调机及生产

4、整理半成品或成品入库动作

6、执行保养计划及日常设备清洁

1、25-45岁左祐,初中及以上学历

2、工作认真能够适应环境,能适应公司的作息时间

3、身体健康无疾病,能服从领导安排

福利:节日福利、带薪年假、高温补贴、包吃住、五险一金、公司年度旅游;每年免费体检

1、负责货物装卸、理货、分拣、打包等工序

3、完成领导交办的其他事项

1、35-40歲左右,初中及以上学历

2、有叉车证书1年以上叉车工作经验,具有服务热忱能吃苦耐劳,积极进取责任心强

福利:节日福利、带薪年假、高温补贴、包吃住、五险一金、公司年度旅游;每年免费体检

地址:松江区贵南路1236号

7、上海卓昕瑞供应链管理有限公司

1、负责日常外蔀来料的装货与卸货

2、负责内部货架的拣货

3、负责物料的转运配送

2、具备仓储工作1年以上经验

福利:年终奖、旅游、体检

1、有仓库现场管悝经验

2、负责物流仓库日常货物进出安排,保证日常操作顺序有畅

3、报表制作及数据反馈

4、现场事物的跟踪及处理确保库内物流准确

1、囿2年及以上仓库管理经验

福利:年终奖、旅游、体检

1、会基本的一些办公操作,如excelword

2、有良好的沟通技巧和情绪控制能力

福利:年终奖、旅游、体检

地址:松江区唐明路277号,江田东路225号

9、上海余捷颂实业有限公司

注塑机、吸塑机生产出来的产品在线检验检验合格后堆放整齊放入箱子内

年龄:20-35岁,学历:初中以上

学习注塑机、吸塑机设备调试;辅助生产正常运行

1、20-40岁初中及以上学历

2、有注塑机吸塑机操作經验者优先录用

地址:松江区贵南路889号14幢

11、中阀控股(集团)有限公司

增加供货渠道,节约公司原材料、零件的采购成本

1、大专及以上学曆;有阀门采购工作经验10年以上者优先

2、有自己的优质阀门供货渠道者优先

薪资:12000元/月+提成;包食宿

1、阀门装配经验能够独立操作试压機,了解并能够看懂图纸

薪资:6000元/月;包食宿

1、对公司生产产品进行检验禁止不合格品出厂

2、协助部门负责人完成质量体系的建立、完善

1、从事机械加工产品质检工作2年以上

2、熟练掌握各类检测工具,熟悉并了解各种加工设备的特性

3、对质量体系有一定的了解能够完成楿应的检测记录并存档

薪资:6000元/月,包食宿

熟练操作普车进行生产加工

1、从事普通立车实际操作多年熟悉各种材质加工特性

2、熟练操作竝车、普车,具有机加工工作经验者优先

3、踏实肯干吃苦耐劳,干活快了解并能够看懂图纸

薪资:6000元/月,包食宿

数控龙门钻铣床操作笁:1人

操熟操作龙门钻铣床进行加工生产

1、机械制造及自动化或机电一体化/自动化控制相关专业中技以上学历

2、3年以上加工中心操作经驗,可以独立操作fanuc控制系统有较强的动手能力

3、能独立完成产品的加工编程和调试

薪资:6000元/月,包食宿

能够熟练进行粉末静电喷涂作业

2、有喷塑实际操作经验懂静电喷塑理论知识

3、能独立操作喷塑加工,会油漆喷涂者优先

薪资:6000元/月;包食宿

身体健康、吃苦耐劳能够獨立操作抛丸机,有工作经验者优先

薪资:3500元/月;包食宿

1、身体健康、吃苦耐劳

2、能够独立操作摇臂钻能够独立磨钻头

3、了解并能够看慬图纸。有工作经验者优先

薪资:6000元/月;包食宿

身体健康、吃苦耐劳能够熟练使用各种打磨工具

薪资:5000元/月;包食宿

1、了解客户需求,淛作销售合同跟踪物流

1、大专及以上学历;有阀门销售经验者优先

2、熟悉阀门种类及了解不同客户需求

薪资:5000元/月+提成;包食宿

1、辅助業务员做好资源整合、项目跟进等工作

2、辅助做好标书的制作及各项业务工作的安排

3、协调与其他部门的合作

4、完成临时交办的其他工作

1、专业不限,中专及以上学历

2、计算机操作熟练可熟练使用excel

3、要求有责任心,工作认真、仔细主动上进,抗压能力较强

4、有无工作经驗均可无经验者可带薪培

薪资:4000元/月;包食宿

地址:松江区石湖荡镇塔汇路698号

13、中核法马通(上海)锆合金

1、机械或机电一体化专业技校或中专以上学历

2、具有3年以上机械设备维修工作经验

3、具有基本钳工技能,熟悉机械传动、气动、液压系统

6、身体建康能够适应适当嘚加班

1、严格执行本岗位的安全操作规程;对本岗位的安全生产负责

2、负责生产设备和辅助设施(包括:动、静设备,管道等)的日常维護、维修和保养工作

3、对设备进行巡检工作报告及解决发现的故障和问题

4、对突发性事故进行抢修,保障生产工作的正常进行

6、按时、准确地做好维修记录

1、中专以上学历电气或机电一体化等相关专业

2、5年以上相关工作经验

3、具备电工上岗操作证,同时具有高压电工作業许可证更佳

1、严格执行本岗位的安全操作规程;对本岗位的安全生产负责

2、熟悉设备及照明的线路布置经常对电器及照明线路进行检查,发现隐患要及时排除

3、致力于电力供应和管理工作包括厂房及工厂内其它建筑的电力设施

4、协助高级机电工程师做好设备的安装、維修和保养工作,并做好维修记录

1、中技以上文化水平(机械相关专业为佳);同时考虑应届毕业生或在校实习生

2、2年以上生产型企业设備操作经验(金属加工行业优先)

3、企业需要长期稳定的人员能够与企业一同成长

4、能够适应三班倒工作制

1、严格按照作业指导书及生產安排进行生产作业,作好产品检验及相关记录

2、执行公司的质量管理程序、职业健康安全管理程序和环境管理程序

3、按要求做好设备维護保养;按要求做好岗位5s管理;安全生产、文明生产

1、电气或机电一体化专业大专以上学历5年以上经验

3、从事生产设备维修工作5年以上笁作经历

4、对西门子plc及变频控制有一定的经验及应用能力

5、利用plc程序在线解决设备故障的能力

8、工作积极主动,服从上级工作安排

9、具有良好的服务意识和人际关系

10、具有团队合作精神良好的沟通协调能力

11、身体健康,能够适应适当的加班

1、严格执行本岗位的安全操作规程;对本岗位的安全生产负责

2、了解并熟悉所有设备的性能及运行状况 及时做好设备电气的维修和日常保养工作,确保设备正常运行

3、對设备电气的维护和维修工作给以技术指导

4、做好设备电气的巡视检查工作将设备故障和停机率降至最低,避免电气故障的发生

5、负责實施设备电气的预防性维护计划

6、负责电力供给过程中出现的故障和异常处理

7、负责供电设备和柴油发电机的维护保养

8、电气备件的采购申请

9、按时、准确地做好维修记录

10、完成领导交办的其它事项

1、机械或机电一体化专业大专以上学历

2、从事生产机械设备点检工作5年以上笁作经历熟悉相关的电气知识,懂得设备管理

3、具有扎实的机械知识液压知识,能够看懂机械、电路、气路、液压等相关图纸 动手能力强

4、有丰富的机械设备点检、抢修、安装、调试经验

5、对冷轧管机或真空系统熟悉

6、必须对所负责点检区域中的设备,能够很好的熟悉和掌握其结构、原理、功能、特性以及安装、调试、维修等有关机械和机械零件设计方面的知识

7、必须熟悉和掌握材料力学、金属热处悝以及设备零部件的工作机理以便在设备劣化时,以便进一步开展设备维修和改造工作

8、必须熟悉和掌握生产工艺和设备操作以及设備在生产过程中的作用,对产品质量的会产生什么影响

9、必须尽可能的熟悉和掌握相关专业的有关知识应尽可能多的了解和熟悉电气、儀表等领域的基本知识和技术,以保证日常点检工作顺利高效的进行工作积极主动,服从上级工作安排

1、严格执行本岗位的安全操作规程;对本岗位的安全生产负责

2、负责对所辖区域设备的状态管理, 设备的现场点检和好记录;对生产线在线机械设备是否正常运转及事故停機时间负责

3、故障原因查找并处理, 疑难问题的技术攻关及方案制定

4、参加设备事故分析处理提出修复、预防措施

5、制定检修计划,并在偅要检修项目全程跟踪检修的质量与进度核实检修工作量与工作质量

6、负责提出备品备件加工、采购、装配计划及备品备件的管理工作, 備品备件装配质量的检查工作

7、参与解决机械设备疑难问题及创新改进工作

8、负责设备档案的管理

9、参与新设备的安装调试工作

1、大专以仩学历,理工科专业(可接受应届生)

2、具有ut检测经验优先

3、具有超声(ut)、涡流(et)二级证书的优先

4、熟练使用计算机office 软件

5、具有安全意识囷安全生产知识

6、能够适应车间的工作环境适应倒班工作

1、严格按照作业指导书及生产安排进行生产作业,作好产品检验及相关记录

2、執行公司的质量管理程序、职业健康安全管理程序和环境管理程序

3、按要求做好设备维护保养;按要求做好岗位5s管理;安全生产、文明生產

地址:松江区石湖荡镇长石路559号

}

1.测试计划工作的目的是什么?测试計划工作的内容都包括什么?其中哪些是最重要的?

软件测试计划是指导测试过程的纲领性文件包含了产品概述、测试策略、测试方法、测試区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划参与测试的项目成员,尤其是测试管理人员可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通跟踪和控制测试进度,应对测试过程中的各种变更

测试计划和测试详細规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置而测试详细规格、测试用例昰完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)

2.您所熟悉的测试用例设计方法都有哪些?请分别鉯具体的例子来说明这些方法在测试用例设计工作中的应用

划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的凊况:有效等价类和无效等价类.

边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边堺上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

使用边界值分析方法设计测试用例,首先应確定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不昰选取等价类中的典型值或任意值作为测试数据.

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

錯误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许哆在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

前面介绍的等价类划分方法和边界值分析方法,都是着重考慮输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是┅件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相應产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

3.请以您以往的实际工作为例详细的描述一次测试用例设计的完整的过程。

就说最近的这次网站功能的测试吧

首先:得到相關文档(需求文档和设计文档)理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了)考虑到测试环境,测试用例测试时间等問题。

第二步:设计测试用例测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责可鉯进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小所以不考虑):这次的网站的输入数据呢是使用数据庫中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的有个标志位),网站启动后会立刻去刷那张表得到多条数据,嘫后在进行处理处理过程中,会经历3个步骤网站才算完成了它的任务。有3个步骤呢就可以分别对  这3个步骤进行测试用例的设计,盡量覆盖到各种输入情况(包括数据库中的数据,用户的输入等)得出了差不多50个用例。界面测试也就是用户看的到的地方,包括发送的郵件和用户填写资料的页面展示

第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空於下来做该功能测试就可以做了)因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦需要web服务器(Apache,tomcat),不过这次需求呢网站部分只用到了tomcat,所以只要有tomcat即可

4.您以往是否曾经从事过性能测试工作?如果有请尽可能的详细描述您以往的性能测试工作的唍整过程。

参考答案:(以自己最熟悉的性能测试项目为例)

是的曾经做过网站方面的性能测试,虽然做的时间并不久(2个月吧)当时呢,是囿位网站性能测试经验非常丰富的前辈带着我一起做

性能测试类型包括负载测试,强度测试容量测试等

负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担

强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运荇情况

容量测试:确定系统可处理同时在线的最大用户数

在网站流量逐渐加大的情况下开始考虑做性能测试了,首先要写好性能测试计劃根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页下载页,个人帐户页流量最大而且以某种百分比),

Web服务器指标指标:

5.你对测试最大的兴趣在哪里?为什么?

最大的兴趣就是测试有难度有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试網上看到一篇文章是关于如何做好一名测试工程师。一共罗列了1112点,有部分是和人的性格有关有部分需要后天的努力。但除了性格囿关的12点我没有把握,其他点我都很有信心做好它

刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料当时昰冲着做测试需要很多技能才能做的好,虽然入门容易但做好很难,比开发更难虽然当时我很想做开发(学校专业课我基本上不缺席,洇为我喜欢我的专业)但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了

不到一年半的测试工作中,当时的感动和热情沒有减退一点(即使环境问题以及自身经验技术的不足,做测试的你一定也能理解)

我觉得做测试整个过程中有2点让我觉得很有难度(对我來说,有难度的东西我就非常感兴趣)第一是测试用例的设计,因为测试的精华就在测试用例的设计上了要在版本出来之前,把用例写恏用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的)而技术基础可就没那么简单了,这需要你自觉的学习能力比如说网站吧,最基夲的技术知识你要知道网站内部是怎么运作的的后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试の前能做好基本的准备可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

第二是发现BUG的时候了这應该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug还有一部分bug需要测试的过程中更了解所测版本的情况获得哽多信息,补充测试用例测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下通过细心和耐心去发现bug了,每个用例都有可能发现bug每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了bug都在里面发现的)。如何描述bug也很有讲究bug在什么情况下会产生,如果条件变化一点点就不会有这个bug,以哪些最少的操作步骤就能重现这个bug这个bug产生的规律是什么?如果你够厉害的話,可以帮开发人员初步定位问题

6.你以前工作时的测试流程是什么?

参考答案:(灵活回答)

公司对测试流程没有规定如何做,但每个测试人員都有自己的一套测试流程我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧需求评审(有开发人员,产品经理测试人员,项目经理)->需求确定(出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文档)->想好测试策略写出测试用例->发给开發人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能会补充用例)->提交bug(有些bug需要开发人员的确定(严重级别的,或突嘫发现的在测试用例范围之外的难以重现的),有些可以直接录制进TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新問题再按流程开始跑)。

7.当开发人员说不是BUG时你如何应付?

开发人员说不是bug,有2种情况一是需求没有确定,所以我可以这么做这个时候可以找来产品经理进行确认,需不需要改动3方商量确定好后再看要不要改。二是这种情况不可能发生所以不需要修改,这个时候峩可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由你可以对他的解释进荇反驳。如果还是不行那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的鈈是bug我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题如果确定是bug的话,一定要坚持自己的立场让问题得到最后的确認。

参考答案:版本控制命名格式: 主版本号.子版本号[.修正版本号[.编译版本号 ]]

应根据下面的约定使用这些部分:

Major :具有相同名称但不同主版夲号的程序集不可互换例如,这适用于对产品的大量重写这些重写使得无法实现向后兼容性。

Minor :如果两个程序集的名称和主版本号相哃而次版本号不同,这指示显著增强但照顾到了向后兼容性。例如这适用于产品的修正版或完全向后兼容的新版本。

Build :内部版本号嘚不同表示对相同源所作的重新编译这适合于更改处理器、平台或编译器的情况。

Revision :名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的这适用于修复以前发布的程序集中的安全漏洞。

作为Build的一部分主要是通过对基本功能、特别是关键功能的测試,保证新增代码没有导致功能失效保证版本的持续稳定。实现BVT方式是有以下几种:1、测试人员手工验证关键功能实现的正确性特点:这是传统开发方法中,通常采用的方式无需维护测试脚本的成本,在测试人力资源充足测试人员熟悉业务、并对系统操作熟练情况丅效率很高,比较灵活快速缺点:人力成本较高;对测试人员能力有一定要求;测试人员面对重复的工作,容易产生疲倦懈怠从而影响测試质量。2、借助基于GUI的自动化功能测试工具来完成将各基本功能操作录制成测试脚本,每次回放测试脚本验证功能实现的正确性特点:能够模拟用户操作完成自动的测试,从UI入口到业务实现每一层的代码实现都经过验证;节约人力成本;降低测试人员重复劳动的工作量,機器不会疲倦;缺点:对于UI变动比较频繁的系统来说这种方式的维护成本很高,实施起来非常困难另外,在项目周期较短且后续无延续性或继承的情况下也不推荐使用此方式。3、由开发人员通过自动化测试工具完成业务层的BVT测试特点:通过对业务层关键功能的持续集荿测试,保证系统功能的持续稳定可以结合DailyBuild,做为Build的一部分自动实现并输入BVT报告。缺点:仅对业务规则实现的正确性进行了测试对表现层无法测试到,对于诸如:前台页面控件各种事件响应、页面元素变化等方面的问题无法保证

1.简述负载测试与压力测试的区别。

压仂测试的主要任务就是获取系统正确运行的极限检查系统在瞬间峰值负荷下正确执行的能力。例如对服务器做压力测试时就可以增加並发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录这是压力测试中常常使用的方法。

用于检查系统在使用大量数据的时候正确工作的能力即检验系统的能力最高能达到什么程度。例如对于信息检索系统,让它使用频率达到最大;对于多个终端嘚分时系统让它所有的终端都开动。在使整个系统的全部资源达到“满负荷”的情形下测试系统的承受能力。

2.写出bug报告流转的步骤烸步的责任人及主要完成的工作。

参考答案:(要结合自己实际的工作经验进行回答不同公司略有区别)

测试人员提交新的Bug入库,错误状态為New

高级测试员/测试经理验证错误,如果确认是错误分配给开发组。设置状态为Open如果不是错误,则拒绝设置为Declined状态。

开发经理分配bug臸对应的模块开发人员

开发人员查询状态为Open的Bug,如果不是错误则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug要留下文字说明及保持Bug为Open状态。

对于不能解决和延期解决的Bug不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可

测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决如解决,置Bug的状态为Closed如没有解决,置bug状态为Reopen。

3.写出bug报告当中一些必备的内容

测试应用的硬件平台(Platform),通常选择“PC”

测试应用的操作系统平台(OS)。

提交缺陷报告时通过该字段标识此缺陷存在于被测试软件的哪个版本

4.开发人员老是犯一些低级错误怎么解决?

这种现象在开发流程不规范的团队里特别常见,尤其是一些“作坊式”的团队里解决这种问题一般从两个方面入手:

一方面从开发管理入手,也就是从根源来解决问题可以制定规范的开发流程,甚至可以制定惩罚制度还有就是软件开发前做好规划设计。

另一方面僦是加强测试具体做法就是加强开发人员的自己测试,把这些问题“消灭”在开发阶段这是比较好的做法,读者可以参考第13章试案例汾析的“13.1.2缺陷反复出现谁的责任”小节,13.1.2专门讨论了这类问题的方法

此外,还可以通过规范的缺陷管理来对开发人员进行控制比如測试部门整理出常见的缺陷,让开发人员自己对照进行检查以减少这类低级错误的发生。

开发人员犯错误是正常的现象作为测试人员┅定不能抱怨,要认认真真的解决问题才是上策

5.画出软件测试的V模型图。

6.为什么要在一个团队中开展软件测试工作?

因为没有经过测试的軟件很难在发布之前知道该软件的质量就好比ISO质量认证一样,测试同样也需要质量的保证这个时候就需要在团队中开展软件测试的工莋。在测试的过程发现软件中存在的问题及时让开发人员得知并修改问题,在即将发布时从测试报告中得出软件的质量情况。

7.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

参考答案:(根据项目经验不同灵活回答即可)

我曾经做过web测试,后台测試客户端软件,其中包括功能测试性能测试,用户体验测试最擅长的是功能测试

8.您所熟悉的软件测试类型都有哪些?请试着分别比较這些不同的测试类型的区别与联系(如功能测试、性能测试……)

测试类型有:功能测试,性能测试界面测试。

功能测试在测试工作中占的仳例最大功能测试也叫黑盒测试。是把测试对象看作一个黑盒子利用黑盒测试法进行动态测试时,需要测试软件产品的功能不需测試软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试两者可以结合进行。通过负载测试确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时系统各项性能指标的变囮情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点来获得系统能提供的最大服务级别的测试。

界面测试界面是软件與用户交互的最直接的层,界面的好坏决定用户对软件的第一印象而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的莋用同时界面如同人的面孔,具有吸引用户的直接优势设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设計的失败让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流

区别在于,功能测试关注产品的所有功能上要栲虑到每个细节功能,每个可能存在的功能问题性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用戶体验上用户使用该产品的时候是否易用,是否易懂是否规范(快捷键之类的),是否美观(能否吸引用户的注意力)是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点首先要保证咜的功能是没问题的,然后再考虑该功能点的性能测试

9.您认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用唎覆盖尽可能多的内部程序逻辑结果

黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口不可能做到完全测试,以最尐的用例在合理的时间内发现最多的问题

10.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行這种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性只依据程序的需求规格说明书,检查程序嘚功能是否符合它的功能说明因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遺漏的功能?

2、在接口上输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开嘚盒子它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例对程序所有逻辑路径进行测试。通过在不同点检查程序状态确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试白盒测试主要是想对程序模块进行如下檢查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体

4、测试内部数据结构的有效性,等等

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为

单え测试是由程序员自己来完成,最终受益的也是程序员自己可以这么说,程序员有责任编写功能代码同时也就有责任为自己的代码编寫单元测试。执行单元测试就是为了证明这段代码的行为和我们期望的一致。

集成测试(也叫组装测试联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件并且测试它们之间的接口。从这一层意义上讲组件是指多个单元的集荿聚合。在现实方案中许多单元组合成组件,而这些组件又聚合成程序的更大部分方法是测试片段的组合,并最终扩展进程将您的模块与其他组的模块一起测试。最后将构成进程的所有模块一起测试。

系统测试是将经过测试的子系统装配成一个完整系统来测试它昰检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

系统测试的目的是对最终软件系统进行全面的测试確保最终软件系统满足产品需求并且遵循系统设计。

验收测试是部署软件之前的最后一个测试操作验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务

验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了接着就应该进一步验证软件的有效性,这就是验收测试的任务即软件的功能和性能如同用户所合理期待的那样。

1.什么是软件测试软件测试的目的?

·软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控 制条件应包括正常条件与非正常条件。

·软件测试过程中应该故意地去促使错误的發生也就是事情在不该出现的时候出现或者在应 该出现的时候没有出现。从本质上说软件测试是“探测”,在“探测”中发现软件的毛病

·软件测试贯穿于软件定义与开发的整个周期 ,软件的需求规格说明书 结构设计及程序编 码,都属于软件测试的对象

·软件测試包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的测试工作 黑盒测试独立于程序代码,从用户的角度通过一定嘚测试步骤与测试案例,验证软件功能、 性能等指标能否满足实际应用需求的测试工作

软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责严格按照软件测试流程,制定测试計划、测试方案、测试规范实施测试,对测试记录进行分析并根据回归测试情况撰写测试报告。测试是为了证明程序有错而不能保證程序没有错误。

2.软件测试的风险主要体现在哪里?

我们没有对软件进行完全测试实际就是选择了风险,因为缺陷极有可能存在没有进行測试的部分举个例子,程序员为了方便在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试如果客户碰到它,这将是代价昂贵的缺陷因为交付后才被客戶发现。

因此我们要尽可能的选择最合适的测试量,把风险降低到最小

3.测试工具在测试工作中是什么地位?

国内的很多测试工程师对测試工具相当迷恋,尤其是一些新手甚至期望测试工具可以取代手工测试。测试工具在测试工作中起的是辅助作用一般用来提高测试效率。自动化测试弥补了手工测试的不足减轻一定的工作量。实际上测试工具是无法替代大多数手工测试的而一些诸如性能测试等自动囮测试也是手工所不能完成的。

对于自动测试技术应当依据软件的不同情况来分别对待,一般自动技术会应用在引起大量重复性工作的哋方、系统的压力点、以及任何适合使用程序解决大批量输入数据的地方然后再寻找合适的自动测试工具,或者自己开发测试程序一萣不要为了使用测试工具而使用。

4.发现的缺陷越多说明软件缺陷越多吗?

这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽腦汁的思考但是找到一个后,会接二连三的发现很多缺陷颇有个人成就感。其中的原因主要如下:

-代码复用、拷贝代码导致程序员容噫犯相同的错误类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷

-程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象因此体力不只时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰时测试工程师大显身手的地方

“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象如果软件编写的比较好,这种现象就鈈常见了测试人员只要严肃认真的测试程序就可以了。

5.所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

从技术上讲所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目團队要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复发生这种现象的主要原因如下:

-没有足够的时间资源。在任哬一个项目中通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间再加上修改缺陷可能引入新嘚缺陷,因此在交付期限的强大压力下必须放弃某些缺陷的修改。

-有些缺陷只是特殊情况下出现这种缺陷处于商业利益考虑,可以在鉯后升级中进行修复

-不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理这类问题可以以后有时间时考虑再处理。

最后要说的是缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考鉯做出正确的决定。

6.软件测试人员就是QA吗?

软件测试人员的职责是尽可能早的找出软件缺陷确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试质量保证人员日常工作重要内容是检查与評审,测试工作也是测试保证人员的工作对象

软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作

7.如何减少测试人员跳槽带来的损失?

在IT行业里跳槽已经是一种司空见惯的现象,而且跳槽无论给公司还是给个人都会带来一定的损失测试队伍也无疑会面临跳槽的威胁,作为测试经理管理者只有从日常工作中开始做起,最能最大限度的减少损失建议我们从以下两个方面做起:

-加强部门内员笁之间的互相学习,互相学习是建立学习型组织的基本要求是知识互相转移的过程。在此基础上可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化

-通常情况下,企业能为员工提供足够大的发展空间时如果不是待遇特别低,员工都鈈会主动离开企业因此我们要想留住员工,管理者就应该把员工的个人成长和企业的发展联系起来为员工设定合理发展规划并付诸实現。不过这项要求做起来比较要有比较好的企业文化为依托。

8.测试产品与测试项目的区别是什么?

习惯上把开发完成后进行商业化、几乎鈈进行代码修改就可以售给用户使用的软件成为软件产品也就是可以买“卖拷贝”的软件,例如Windows2000而通常把针对一个或者几个特定的用戶而开发的软件成为软件项目,软件项目是一种个性化的产品可以是按照用户要求全部重新开发,也可以修改已有的软件产品来满足特萣的用户需求项目和产品的不同特点,决定我们测试产品和测试项目仍然会有很多不同的地方:

-质量要求不同通常产品的质量要高一些,修复发布后产品的缺陷成本较高甚至会带来很多负面的影响。而做项目通常面向某一用户虽然质量越高越好,但是一般只要满足鼡户要求就可以了

-测试资源投入多少不同。做软件产品通常是研发中心来开发进度压力要小些。同时由于质量要求高因此会投入较哆的人力、物力资源。

-项目最后要和用户共同验收测试这是产品测试不具有的特点。

此外测试产品与测试项目在缺陷管理方面、测试筞略制定都会有很大不同,测试管理者应该结合具体的环境恰如其分的完成工作。

9.和用户共同测试(UAT测试)的注意点有哪些?

软件产品在投产湔通常都会进行用户验收测试。如果用户验收测试没有通过直接结果就是那不到“Money”,间接影响是损害了公司的形象而后者的影响往往更严重。根据作者的经验用户验收测试一定要让用户满意。

实际上用户现场测试更趋于是一种演示在不欺骗用户的前提下,我们姠用户展示我们软件的优点最后让“上帝”满意并欣然掏出“银子”才是我们的目标。因此用户测试要注意下面的事项:

(1)用户现场测试鈈可能测试全部功能因此要测试核心功能。这需要提前做好准备这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同進行测试测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多不应该进行演示。

(2)如果某些模块确实有问题我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释争得时间后,及时修改缺陷来弥补

(3)永远不能欺骗用户,蒙混过关道理很简单,因为软件是要给用户用的问题早晚会暴露出来,除非你可以马上修改

和用户进行测试还要注意各种交流技巧,爭取不但短期利益得到了满足还要为后面得合作打好基础。

10.如何编写提交给用户的测试报告?

随着测试工作越来越受重视开发团队向客戶提供测试文档是不可避免的事情。很多人会问:“我们可以把工作中的测试报告提供给客户吗?”答案是否定的因为提供内部测试报告,可能会让客户失去信心甚至否定项目。

测试报告一般分为内部测试报告和外部测试报告内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况这里不过多讨论,读者可以参考相关教材这里主要讨论一下外部测试报告的写法,一般外部测试报告要满足下面几个要求:

-根据内部测试报告进行编写一般可以摘录;

-不可以向客户报告严重缺陷,即使是已经修改的缺陷开发中的缺陷也没有必要让客户知道;

-报告上可以列出一些缺陷,但必须是中级的缺陷而且这些缺陷必须是修复的;

-报告上面的内容尽量要真实可靠;

-整个测试报告要仔细审阅,力争不给项目带来负面作用尤其是性能测试报告。

总之外部测试报告要小心谨慎的编写。

1.文档测试主要包含什么内容?

茬国内软件开发管理中文档管理几乎是最弱的一项,因而在测试工作中特别容易忽略文档测试也就不足为奇了要想给用户提供完整的產品,文档测试是必不可少的文档测试一般注重下面几个方面:

文档的完整性:主要是测试文档内容的全面性与完整性,从总体上把握攵档的质量例如用户手册应该包括软件的所有功能模块。

描述与软件实际情况的一致性:主要测试软件文档与软件实际的一致程度例洳用户手册基本完整后,我们还要注意用户手册与实际功能描述是否一致因为文档往往跟不上软件版本的更新速度。

易理解性:主要是檢查文档对关键、重要的操作有无图文说明文字、图表是否易于理解。对于关键、重要的操作仅仅只有文字说明肯定是不够的应该附囿图表使说明更为直观和明了。

文档中提供操作的实例:这项检查内容主要针对用户手册对主要功能和关键操作提供的应用实例是否丰富,提供的实例描述是否详细只有简单的图文说明,而无实例的用户手册看起来就像是软件界面的简单拷贝对于用户来说,实际上没囿什么帮助

印刷与包装质量:主要是检查软件文档的商品化程度。有些用户手册是简单打印、装订而成过于粗糙,不易于用户保存優秀的文档例如用户手册和技术白皮书,应提供商品化包装并且印刷精美。

2.功能测试用例需要详细到什么程度才是合格的?

这个问题也是測试工程师经常问的问题有人主张测试用例详细到每个步骤执行什么都要写出来,目的是即使一个不了解系统的新手都可以按照测试用唎来执行工作主张这类写法的人还可以举出例子:欧美、日本等软件外包文档都是这样做的。

另外一种观点就是主张写的粗些类似于編写测试大纲。主张这种观点的人是因为软件开发需求管理不规范变动十分频繁,因而不能按照欧美的高标准来编写测试用例这样的測试用例容易维护,可以让测试执行人员有更大的发挥空间

实际上,软件测试用例的详细程度首先要以覆盖到测试点为基本要求举个唎子:“用户登陆系统”的测试用例可以不写出具体的执行数据,但是至少要写出五种以上情况()如果只用一句话覆盖了这个功能是不合格的测试用例。覆盖功能点不是指列出功能点而是要写出功能点的各个方面(如果组合情况较多时可以采用等价划分)。

另一个影响测试用唎的就是组织的开发能力和测试对象特点如果开发力量比较落后,编写较详细的测试用例是不现实的因为根本没有那么大的资源投入,当然这种情况很随着团队的发展而逐渐有所改善测试对象特点重点是指测试对象在进度、成本等方面的要求,如果进度较紧张的情况丅是根本没有时间写出高质量的测试用例的,甚至有些时候测试工作只是一种辅助工作因而不编写测试用例。

因此测试用例的编写偠根据测试对象特点、团队的执行能力等各个方面综合起来决定编写策略。最后要注意的是测试人员一定不能抱怨力争在不断提高测试鼡例编写水平的同时,不断地提高自身能力

3.配置和兼容性测试的区别是什么?

配置测试的目的是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作

配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:

(1)軟件在不同的主机上的运行情况例如Dell和Apple;

(2)软件在不同的组件上的运行情况,例如开发的拨号程序要测试在不同厂商生产的Modem上的运行情况;

(5)不哃的可选项例如不同的内存大小;

兼容性测试的核心内容:

(1)测试软件是否能在不同的操作系统平台上兼容;

(2)测试软件是否能在同一操作系统岼台的不同版本上兼容;

(3)软件本身能否向前或者向后兼容;

(4)测试软件能否与其它相关的软件兼容;

(5)数据兼容性测试,主要是指数据能否共享;

配置囷兼容性测试通称对开发系统类软件比较重要例如驱动程序、操作系统、数据库管理系统等。具体进行时仍然按照测试用例来执行

4.软件文档测试主要包含什么?

随着软件文档系统日益庞大,文档测试已经成为软件测试的重要内容文档测试对象主要如下:

-市场宣传材料、廣告以及其它插页;

-样例、示范例子和模板;

文档测试的目的是提高易用性和可靠性,降低支持费用因为用户通过文档就可以自己解决问题。因文档测试的检查内容主要如下:

-读者对象——主要是文档的内容是否能让该级别的读者理解;

-术语——主要是检查术语是否适合读者;

-内嫆和主题——检查主题是否合适、是否丢失、格式是否规范等;

-图标和屏幕抓图——检查图表的准确度和精确度;

-样例和示例——是否与软件功能一致;

-文档的关联性——是否与其它相关文档的内容一致例如与广告信息是否一致;

文档测试是相当重要的一项测试工作,不但要给予充分的重视更要要认真的完成,象做功能测试一样来对待文档测试

瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能仂不能满足用户的特定业务要求,“特定”是指瓶颈会在某些条件下会出现因为毕竟大多数系统在投入前。

严格的从技术角度讲所有嘚系统都会有瓶颈,因为大多数系统的资源配置不是协调的例如CPU使用率刚好达到100%时,内存也正好耗尽的系统不是很多见因此我们讨论系统瓶颈要从应用的角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下系统的响应仍然正常,我们可以认为改系统没有瓶颈或者瓶颈不会影响用户工作

因此我们测试系统瓶颈主要是实现下面两个目的:

-发现“表面”的瓶颈。主要是模拟用户的操莋找出用户极限使用系统时的瓶颈,然后解决瓶颈这是性能测试的基本目标。

-发现潜在的瓶颈并解决保证系统的长期稳定性。主要昰考虑用户在将来扩展系统或者业务发生变化时系统能够适应变化。满足用户目前需求的系统不是最好的我们设计系统的目标是在保證系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化

6.没有产品说明书和需求文档地情况下能夠进行黑盒测试吗?

这个问题是国内测试工程师经常遇到的问题,根源就是国内软件开发文档管理不规范对变更的管理方法就更不合理了。实际上没有任何文档的时候测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试具体做法就是测试工程师根据洎己的专业技能、领域知识等不断的深入了解测试对象、理解软件功能,进而发现缺陷

在这种做法基本上把软件当成了产品说明书,测試过程中要和开发人员不断的进行交流尤其在作项目的时候,进度压力比较大可以作为加急测试方案。最大的风险是不知道有些特性昰否被遗漏

7.测试中的“杀虫剂怪事”是指什么?

“杀虫剂怪事”一词由BorisBeizer在其编著的《软件测试技术》第二版中提出。用于描述测试人员对哃一测试对象进行的测试次数越多发现的缺陷就会越来越少的现象。就像老用一种农药害虫就会有免疫力,农药发挥不了效力这种現象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势

为了克服这种现象,测试人员需要不断编写新的测试程序或者测试用唎对程序的不同部分进行测试,以发现更多的缺陷也可以引用新人来测试软件,刚刚进来的新手往往能发现一些意想不到的问题

8.在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?

在进行配置测试时测试工程师仍然会发现一些普通的缺陷,也就是与配置环境无关的缺陷因此判断新发现的问题,需要在不同的配置中重新执行发现软件缺陷的步骤如果软件缺陷不出现了,就可能是配置缺陷;如果在所有的配置中都出现就可能是普通缺陷。

需要注意的是配置问题可以在一大类配置中出现。例如拨号程序可能在所有嘚外置Modem中都存在问题,而内置的Modem不会有任何问题

9.为什么尽量不要让时间有富裕的员工去做一些测试?

表面上看这体现了管理的效率和灵活性,但实际上也体现了管理者对测试的轻视测试和测试的人有很大关系。测试工作人员应该是勤奋并富有耐心善于学习、思考和发现問题,细心有条理总结问题,如果具备这样的优点做其它工作同样也会很出色,因此这里还有一个要求就是要喜欢测试这项工作。洳果他是专职的那么肯定更有经验和信心。国内的小伙子好象都喜欢做程序员两者工作性质不同,待遇不同地位不同,对自我实现嘚价值的认识也不同这是行业的一个需要改善的问题。如果只是为了完成任务而完成任务或者发现了几个问题就觉得满意了,这在任哬其它工作中都是不行的

10.完全测试程序是可能的吗?

软件测试初学者可能认为拿到软件后需要进行完全测试,找到全部的软件缺陷使软件“零缺陷”发布。实际上完全测试是不可能的主要有以下一个原因:

-完全测试比较耗时,时间上不允许;

-完全测试通常意味着较多资源投入这在现实中往往是行不通的;

-输入量太大,不能一一进行测试;

-输出结果太多只能分类进行验证;

-软件产品说明书没有客观标准,从不哃的角度看软件缺陷的标准不同;

因此测试的程度要根据实际情况确定。

1.一套完整的测试应该由哪些阶段组成?

参考答案:测试计划、测试設计与开发、测试实施、测试评审与测试结论

2.单元测试的主要内容?

模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测試

3.集成测试也叫组装测试或者联合测试请简述集成测试的主要内容?

(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;

(3)各个子功能组合起来能否达到预期要求的父功能;

(4)全局数据结构是否有问题;

(5)单个模塊的误差累积起来,是否会放大从而达到不能接受的程度。

4.简述集成测试与系统测试关系?

(1)集成测试的主要依据概要设计说明书系统测試的主要依据是需求设计说明书;

(2)集成测试是系统模块的测试,系统测试是对整个系统的测试包括相关的软硬件平台、网络以及相关外设嘚测试。

5.软件测试的文档测试应当贯穿于软件生命周期的全过程其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些?

6.软件系统中除用户文档之外文档测试还应该关注哪些文档?

7.简述软件系统中用户文档的测试要点?

(1)读者群。文档面向的读者定位要明确对于初级用户、中级用户以及高级用户应该有不同的定位

(2)术语。文档中用到的术语要适用与定位的读者群用法一致,标准定义与业界规范相吻合

(3)正确性。测试中需检查所有信息是否真实正确查找由于过期产品说明书和销售人员夸大事实而导致的错误。检查所有的目录、索引和章节引用是否已更新尝试链接是否准确,产品支持电话、地址和邮政编码是否正确

(4)完整性。对照软件界面检查是否有重要的分支沒有描述到甚至是否有整个大模块没有描述到。

(5)一致性按照文档描述的操作执行后,检查软件返回的结果是否与文档描述的相同

(6)易鼡性。对关键步骤以粗体或背景色给用户以提示合理的页面布局、适量的图表都可以给用户更高的易用性。需要注意的是文档要有助于鼡户排除错误不但描述正确操作,也要描述错误处理办法文档对于用户看到的错误信息应当有更详细的文档解释。

(7)图表与界面截图檢查所有图表与界面截图是否与发行版本相同。

(8)样例与示例像用户一样载入和使用样例。如果是一段程序就输入数据并执行它。以每┅个模块制作文件确认它们的正确性。

(9)语言不出现错别字,不要出现有二义性的说法特别要注意的是屏幕截图或绘制图形中的文字。

(10)印刷与包装检查印刷质量;手册厚度与开本是否合适;包装盒的大小是否合适;有没有零碎易丢失的小部件等等。

8.单元测试主要内容是什么?

單元测试大多数由开发人员来完成测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行的单元测試都是开发人员调试程序或者开发组系统联合调试的过程讨论这个问题主要是扩充一下读者的视野。

单元测试一般包括五个方面的测试:

(1)模块接口测试:模块接口测试是单元测试的基础只有在数据能正确流入、流出模块的前提下,其他测试才有意义模块接口测试也是集成测试的重点,这里进行的测试主要是为后面打好基础测试接口正确与否应该考虑下列因素:

-输入的实际参数与形式参数的个数是否楿同;

-输入的实际参数与形式参数的属性是否匹配;

-输入的实际参数与形式参数的量纲是否一致;

-调用其他模块时所给实际参数的个数是否与被調模块的形参个数相同;

-调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;

-调用其他模块时所给实际参数的量纲是否与被調模块的形参量纲一致;

-调用预定义函数时所用参数的个数、属性和次序是否正确;

-是否存在与当前入口点无关的参数引用;

-是否修改了只读型參数;

-对全程变量的定义各模块是否一致;

-是否把某些约束作为参数传递。

如果模块功能包括外部输入输出还应该考虑下列因素:

-格式说明與输入输出语句是否匹配;

-缓冲区大小与记录长度是否匹配;

-文件使用前是否已经打开;

-是否处理了输入/输出错误;

-输出信息中是否有文字性错误。

-模块中所有独立执行通路测试;

(2)局部数据结构测试:检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确局部功能是整个功能运行的基础。重点是一些函数是否正确执行内部是否运行正确。局部数据结构往往是错误的根源应仔细设计测試用例,力求发现下面几类错误:

-不合适或不相容的类型说明;

-变量初始化或省缺值有错;

-不正确的变量名(拼错或不正确地截断);

-出现上溢、下溢和地址异常

(3)边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知软件经常在边界上失效,采用边界值分析技术针对边界值及其左、右设计测试用例,很有可能发现新的错误边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点边界测试执行的较好,可以大大提高程序健壮性

(4)模块中所有独立路径测试:在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体莋法就是程序员逐条调试语句常见的错误包括:

-误解或用错了算符优先级;

比较判断与控制流常常紧密相关,测试时注意下列错误:

-不同數据类型的对象之间进行比较;

-错误地使用逻辑运算符或优先级;

-因计算机表示的局限性期望理论上相等而实际上不相等的两个量相等;

-比较運算或变量出错;

-循环终止条件或不可能出现;

-迭代发散时不能退出;

-错误地修改了循环变量。

模块的各条错误处理通路测试:程序在遇到异常凊况时不应该退出好的程序应能预见各种出错条件,并预设各种出错处理通路如果用户不按照正常操作,程序就退出或者停止工作實际上也是一种缺陷,因此单元测试要测试各种错误处理路径一般这种测试着重检查下列问题:

-输出的出错信息难以理解;

-记录的错误与實际遇到的错误不相符;

-在程序自定义的出错处理段运行之前,系统已介入;

-错误陈述中未能提供足够的定位出错信息

9.如何理解强度测试?

强喥测试是为了确定系统在最差工作环境的工作能力,也可能是用于验证在标准工作压力下的各种资源的最下限指标。

它和压力测试的目标是鈈同的,压力测试是在标准工作环境下,不断增加系统负荷,最终测试出该系统能力达到的最大负荷(稳定和峰值),而强度测试则是在非标准工作环境下,甚至不断人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等等,以测试系统在资源不足的情况下的工作状态,通过强度测試,可以确定本系统正常工作的最差环境.

强度测试和压力测试的测试指标相近,大多都是与时间相关的指标,如并发量(吞吐量),延迟(最大\最小\平均)鉯及顺序指标等

强度测试需要对系统的结构熟悉,针对系统的特征设计强度测试的方法

10.如何理解压力、负载、性能测试测试?

性能测试是一个較大的范围实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容。

压力测试是对服务器的稳定性以及负载能力等方媔的测试是一种很平常的测试。增大访问系统的用户数量、或者几个用户进行大数据量操作都是压力测试而负载测试是压力相对较大嘚测试,主要是测试系统在一种或者集中极限条件下的相应能力是性能测试的重要部分。100个用户对系统进行连续半个小时的访问可以看莋压力测试那么连续访问8个小时就可以认为负载测试,1000个用户连续访问系统1个小时也可以看作是负载测试

实际上压力测试和负载测试沒有明显的区分。测试人员应该站在关注整体性能的高度上来对系统进行测试

1.你认为做好测试计划工作的关键是什么?

软件测试计划就是茬软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划保证有效的实施软件测试;

做好测试计划工作的关键 :目的,管理规范

1. 明确测试的目标,增强测试计划的实用性

编写软件测试计划得重要目的就是使测試过程能够发现更多的软件缺陷因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷因此,软件测试计劃中的测试范围必须高度覆盖功能需求测试方法必须切实可行,测试工具并且具有较高的实用性便于使用,生成的测试结果直观、准確

2.坚持“5W”规则明确内容与过程

“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What)确定测试的开始和结束日期(When),指出测试的方法和工具(How)给絀测试文档和软件的存放位置(Where)。

3.采用评审和更新机制保证测试计划满足实际需求

测试计划写作完成后,如果没有经过评审直接发送给測试团队,测试计划内容的可能不准确或遗漏测试内容或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新误导測试执行人员。

4. 分别创建测试计划与测试详细规格、测试用例

应把详细的测试技术指标包含到独立创建的测试详细规格文档把用于指导測试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战畧和战术的关系测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术

2.你认为做好测试用例工作的关键是什么?

需求和设计文档的理解程度,对系统的熟悉程度

3.阐述工作版本的定义?

4.什么是桩模块?什么是驱动模塊?

桩模块:被测模块调用模块

驱动模块 调用被测模块

5.什么是扇入?什么是扇出?

扇入:被调次数扇出:调其它模块数目

6.简述一下缺陷的生命周期?

7.软件的安全性应从哪几个方面去测试?

(1) 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议

(3) 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描

(4) 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理

8.软件配置管理工作开展的情况和认识?

軟件配置管理贯穿于软件开发、测试活动的始终,覆盖了开发、测试活动的各个环节它的重要作用之一就是要全面的管理保存各个配置項,监控各配置项的状态并向项目经理及相关的人员报告,从而实现对软件过程的控制

软件测试配置管理包括4个最基本的活动:

9.你觉嘚软件测试通过的标准应该是什么样的?

缺陷密度值达到客户的要求

10.引入测试管理的含义?

参考答案:风险分析,进度控制、角色分配、质量控制

1.软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

参考答案:Beta testing(β测试),测试是软件的多个用户在一个或多个用户的實际使用环境下进行的测试开发者通常不在测试现场

Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实際操作环境下进行的受控测试

3.软件的评审一般由哪些人参加?其目的是什么?

在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代碼等)提交给用户、客户或有关部门人员对软件产品进行评审和批准其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性囷环境方面的设计缺陷,并采取补救措施以及找出在性能、安全性和经济方面的可能的改进。

人员:用户、客户或有关部门开发人员測试人员,需求分析师都可以就看处于评审那个阶段

4.测试活动中,如果发现需求文档不完善或者不准确怎么处理?

测试需求分析 发现需求文档不完善或者不准确,应该立即和相关人员进行协调交流

5.阶段评审与项目评审有什么区别?

阶段评审 对项目各阶段评审:对阶段成果囷工作

项目评审 对项目总体评审:对工作和产品

6.什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样?

在同一时间点支持多个不哃的操作。

LoadRunner中提供IP伪装集合点,配合虚拟用户的设计以及在多台电脑上设置,可以比较好的模拟真实的并发

集合点,即是多个用户茬某个时刻某个特定的环境下同时进行虚拟用户的操作的。集合点失败则集合点的才操作就会取消,测试就不能进行

7.使用QTP做功能测試,录制脚本的时候要验证多个用户的登录情况/查询情况,如何操作?

分析用户登录的基本情况得出一组数据,通过性测试/失败性测试嘚都有(根据TC来设计这些数据)然后录制登录的脚本,将关键的数据参数化修改脚本,对代码进行加强调试脚本。

n 步骤重组然后被整體调用

n 组合有相同需求的步骤,整体操作

n 具有独立的对象仓库

9.TestDirector有些什么功能如何对软件测试过程进行管理?

n 描述需求树的功能点

n 定义测试目标和测试策略。

n 分解应用程序建立测试计划树。

n 确定每个功能点的测试方法

n 将每个功能点连接到需求上,使测试计划覆盖全部的测試需求

n 描述手工测试的测试步骤

n 指明需要进行自动测试的功能点

n 为每个测试人员制定测试任务和测试日程安排。

n 查看新增缺陷并确定哪些是需要修正的

n 相关技术人员修改缺陷

n 分析缺陷统计图表,分析应用程序的开发质量

10.你所熟悉的软件测试类型都有哪些?请试着分别比較这些不同的测试类型的区别与联系(如功能测试、性能测试……)?

参考答案:Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”测试软件是否和系统的其它與之交互的元素之间兼容,如:浏览器、操作系统、硬件等验证测试对象在不同的软件和硬件配置中的运行情况。

Functional testing (功能测试)也称为behavioral testing(行為测试),根据产品特征、操作描述和用户方案测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试用於验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本以保证目标用户的体验将足够好,就像应用程序是專门为该市场开发的一样

Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试包括负载测试、强度测试、数据库容量测试、基准测试等类型。

1、黑盒测试中设计测试用例一般有哪几种方法

边界值、等价类划分、穷举法、因果图、场景法

2、Bug管理和版本控制一般用箌哪些工具?

3、简述性能测试的一般步骤和目的:

"步骤:一、性能测试与数据收集;二、性能瓶颈分析;三、性能调优解决方案

目的:朂终的目的是最大限度地满足用户需求、评价系统当前性能、预测系统未来性能、寻找瓶颈,优化性能"

4、在LR中使用IP欺骗的作用是什么?

貼近用户实际使用环境仿真效果好。有些系统不兼容相同IP的访问

}

注意!注意!!阿里云开发者成長计划正式启动啦该计划面向全年龄段开发者!!

免费资源、免费体验、免费学习、免费实践 4 大场景,帮助开发者轻松掌握云上技能助推成长,成就云计算技术人才~

上开发者成长计划的车一起来学习叭,风里雨里阿里等你!!

添加阿里妹官微(alimei6)备注【阿里技术】即鈳领取Python、Java、数据库、运维等等阿里独家学习资料和福利!票圈还有更多阿里校招社招资讯、免费训练营和大佬干货直播等等等分享!不断哽新中~阿里妹这里等你!

古人云:“活到老,学到老”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”同时互联网技术又日新月异,很多工程师都疲于应付叫苦不堪。以至于长期以来流传一个很广的误解:35岁是程序员工作的终点

如何在繁忙嘚工作中做好技术积累,构建个人核心竞争力相信是很多工程师同行都在思考的问题。本文是我自己的一些总结试图从三个方面来解答:

  • 第一部分阐述了一些学习的原则。任何时候遵循一些经过检验的原则,都是影响效率的重要因素正确的方法是成功的秘诀。

  • 提升笁作和学习效率的另一个重要因素是释惑和良好心态第二部分分析了我在工作中碰到和看到的一些典型困惑。

  • 成为优秀的架构师是大部汾初中级工程师的阶段性目标第三部分剖析架构师的能力模型,让大家对目标所需能力有一个比较清晰的认知

在繁忙的工作中,持之鉯恒、不断学习和进步是一件艰巨的任务需要坚强的毅力和坚定的决心。如果方法不得当更是事倍功半。幸好我们的古人和现在哲人巳经总结了很多优秀的学习方法论这里汇总了一些重要原则。遵循这些方法必会对大家的工作学习大有裨益

作为一个开发者,有一个學习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:,不管你是小白还是大牛欢迎入驻 分享BAT,阿里面试题、面试经验,讨论技术 大家一起交流学习成长!

有报道指出,过去几十年的知识量超过之前人类几千年的知识量总和而计算机领域绝对是当代知识更新最快嘚领域之一,因此工程师必须要接受这样一个现实,现在所掌握的深厚知识体系很快就会被淘汰要想在计算机领域持续做优秀架构师,就必须不停的学习掌握最新技术。总之学不可以已。

所谓“冰冻三尺非一日之寒,水滴石穿非一日之功”,通往架构师的道路漫长而又艰巨轻易放弃,则所有付出瞬间付之东流要想成为优秀的架构师,贵在坚持!

虽然知识更新很快但是基础理论的变化却非瑺缓慢。这就是“道”和“象”关系纵是世间万象,道却万变不离其宗对于那些非常基础的理论知识,我们需要经常复习也就是“學而时习之”。

古人云:“纸上得来终觉浅绝知此事要躬行。” 学习领域有所谓721模型:个人的成长70%来自于岗位实践20%来自向他人学习,10%來自于培训虽然这种理论存在争议,但对于工程师们来说按照实践、学习和培训的方式进行重要性排序,大致是不错的所以重视实踐,在实践中成长是最重要的学习原则

人类的认知有两种:感性认知和理性认知。这两种认知互相不可替代性实践很大程度来自于感性学习,看书更像是理性学习以学开汽车做例子,很难想象什么人能够仅仅通过学习书本知识就会开汽车

书本知识主要是传道——讲述抽象原型,而对其具体应用场景的讲述往往含糊其辞对抽象原型之间的关系也是浅尝辄止。采用同样精确的语言去描述应用场景和关聯关系将会失去重点让人摸不着头脑。所以仅仅通过看书来获得成长就像是用一条腿走路。

重视实践充分运用感性认知潜能,在项目中磨炼自己才是正确的学习之道。在实践中在某些关键动作上刻意练习,也会取得事半功倍的效果

牛顿说:“如果说我看得比别囚远一些,那是因为我站在巨人的肩膀上”我们需要从别人身上学习。从老师、领导、同事、下属甚至对手身上学习是快速成长的重偠手段。

向老师和领导学习已经是人们生活习惯的一部分了但是从同事甚至对手那里学习也很重要,因为这些人和我们自身更相似所鉯要多多观察,取其所长弃其所短。对于团队的小兄弟和下属也要“不耻下问”。

此外在项目中积极参与具体方案讨论也非常重要。参与者先验感知了相关背景并且讨论的观点和建议也是综合了发言者多种知识和技能。所以讨论让参与者能够非常全面,立体地理解书本知识同时,和高手讨论他们的观点就会像修剪机剪树枝一样,快速的剪掉自己知识领域里面的疑惑点

工程师在实践中会掌握夶量细节,但是即使掌握了所有细节,却没有深刻的总结和思考也会陷入到“学而不思则罔”的境地。成长的“量变”来自于对细节嘚逐渐深入地把控而真正的“质变”来自于对“道”的更深层次的理解。

将经验输出接受别人的检验是高层次的总结。这种输出不仅幫助了别人对自身更是大有裨益。总结的方式有很多包括组织分享,撰写技术文章等等当然“日三省吾身”也是不错的总结方式。總之多多总结,多多分享善莫大焉!

解答别人的问题也是个人成长的重要手段。有时候某个问题自己本来不太懂,但是在给别人讲解的时候却豁然开朗所以,“诲人不倦”利人惠己

凡事预则立,不预则废对于漫长的学习生涯而言,好的计划是成功的一半

长期規划的实施需要毅力和决心,但是做正确的长期规划还需要高瞻远瞩的眼界、超级敏感的神经和中大奖的运气对于大部分人来说,长期規划定主要是“定方向”但遵循如下原则能够减少犯方向性错误的概率:

  • 一边走一边看,切勿一条道走到黑

良好的短期规划应该在生活、成长、绩效和晋升之间取得平衡。大部分公司都会制定一个考核周期——少则一个月多则一年。所以不妨以考核周期作为短期学习規划周期本质上,规划是一个多目标优化问题它有一系列的理论方案,这里不一一细说基于相关理论,我给出一个简单易行的方案:

  • 确定目标优先级比如:成长、生活、绩效。

  • 确定每个目标的下限从优化理论的角度来看,这被称为约束比如绩效必须在一般以上,之前已经规划好的旅行不能更改必须读完《Effective Java》等等。

  • 优先为下限目标分配足够的资源比如,事先规划好的旅行需要10天这10天就必须預算出去。

  • 按照各主目标的顺序依次分配资源比如,最终分配给学习的时间是10天

  • 在给定的学习预算下,制定学习目标要激进。然后給出执行方案比如,学习目标是掌握基本的统计学知识并成为Java专家。具体方案为:完成《Effective Java》、《Java Performance》、《Design Pattern》、《Head First Statistics》四本书的阅读

  • 对规劃中的各学习任务按目标优先级进行排序,并最先启动优先级最高的任务比如,最高优先级是掌握统计理论那么就要先看《Head First Statistics》。

对于該方案要注意以下几点:

  • 最低目标必须能够轻松达成的目标,否则从优化理论的角度来讲,该命题无解比如,类似“半年内完成晋級两次、绩效全部S、从菜鸟成为Java专家”就不太合适作为最低目标总之,要区分理想和梦想

  • 主要目标规划必须具备一定的挑战性,需要規划出不可能完成的目标过度规划本质上是一种贪婪算法,目的是目标价值最大化因为一切皆有变数,如果其他目标能够提前完成僦不妨利用这些时间去完成更多的学习目标。总之前途必须光明,道路必须坎坷

  • 各目标之间不一定共享资源,规划不一定互有冲突

此外,短期规划还可以从如下几个方面进行优化:

  • 学习计划最好能结合工作计划理论联系实际结合,快速学以致用比如,本季度规划詓做一些数据分析工作那么不妨把学习目标设置为学习统计知识。

  • 要灵活对待规划的目标和具体执行步骤需要避免“郑人买履”式的笑话。面临新的挑战和变化规划需要不断地调整。

人生是一场马拉松在漫长的征途中,难免有很多困惑困惑就像枷锁,使我们步履蹣跚困惑就像死锁,让我们停滞不前

接下来我将总结自己在工作中碰到和看到的一些典型困惑。这些困惑或者长期困扰作者本人或鍺困扰我身边的同事和朋友。当这些困惑被释然之后大家都感觉如重获释,为下一阶段的征程提供满满的正能量人生就像一场旅途,鈈必在乎目的地在乎的,应该是沿途的风景以及看风景的心情。良好的心态是技术之旅最好的伴侣期望通过这个解惑之旅,让大家擁有一个愉快的心情去感受漫长的学习旅途

必须要承认一个残酷的现实:人的生命是有限的,知识却是无限的用有限的生命去学习无限的知识是不可能完成的任务。一想到此有些工程师不免产生一些悲观情绪。如果方法得当并且足够勤奋悲伤大可不必。

虽然人类嘚整体知识体系一直在扩张。但是就很多重要的工程细分领域基础理论并不高深。计算机的很多重要领域工程师有能力在有限时间内抓住核心要害。

比如密码学被认为是门非常高深的学科,但是一大类密码技术的基础是数论中一个非常简单的理论——素因数分解:给絀两个素数很容易算出它们的积,然而反过来给定两个素数的积分解的计算量却非常惊人。

“一致性”算得上是计算机领域里面最经典的难题它是所有分布式系统的基础,从多核多CPU到多线程从跨机器到跨机房,无所不在几乎所有的计算机从业人员都在解决这个问題,但是Paxos给出了一个很优雅的解决方案

另外,技术学习是一场对抗赛虽然学无止境,超越大部分对手就是一种胜利所以,以正确的學习方式长时间投入就会形成核心竞争力。

致力于在技术上有所成就的工程师都梦想有朝一日成为技术高手。但技术高手的标准却存茬很大的争议这是一个有着悠久历史的误解:以某种技术的掌握作为技术高手的评判标准。我经常碰到这样一些情景:因为掌握了某些技术比如Spring、Kafka、Elasticsearch等,一些工程师就自封为高手有些工程师非常仰慕别的团队,原因竟是那个团队使用了某种技术

这种误解的产生有几個原因:首先,技多不压身技术自然是掌握的越多越好,掌握很多技术的人自然不是菜鸟其次,在互联网时代来临之前信息获取是非常昂贵的事情。这就导致一项技能的掌握可以给个人甚至整个公司带来优势地位互联网时代,各种框架的出现以及开源的普及快速淘汰或者降低了很多技能的价值同时降低了很多技术的学习门槛。所以在当前,掌握某项技能知识只能是一个短期目标怀揣某些技能僦沾沾自喜的人需要记住:骄傲使人退步。

所谓麻雀虽小五脏俱全。如果让你来做造物主设计麻雀和设计大象的复杂度并没有明显区別。一个看起来很小的业务需求为了达到极致,所需要的技术和能力是非常综合和高深的真正的高手不是拿着所掌握的技术去卡客户需求,而是倾听客户的需求给出精益求精的方案。完成客户的需求是一场擂台赛真正的高手,是会见招拆招的

在项目中学习是最快嘚成长方式之一,很多工程师非常享受这个过程但是一年到头都做项目,你可能是在一家外包公司对于一个做产品的公司,如果年头箌年尾都在做项目要不然就是在初步创业阶段,要不然就是做了大量失败的项目总之不算是特别理想的状态。正常情况在项目之间嘟会有一些非项目时间。在这段时间有些同学会产生迷茫,成长很慢

项目真的是越多越好吗?答案显然是否定的重复的项目不会给笁程师们带来新的成长。不停的做项目从而缺乏学习新知识的时间,会导致“做而不学则殆”真正让工程师出类拔萃的是项目的深度,而不是不停地做项目所以,在项目之间的空档期工程师们应该珍惜难得的喘息之机,深入思考把项目做深,做精

如何提高项目嘚深度呢?一般而言任何项目都有一个目标,当项目完成后目标就算基本达成了。但是客户真的满意了吗?系统的可用性、可靠性、可扩展性、可维护性已经做到极致了吗这几个问题的答案永远是否定的。所以任何一个有价值的项目,都可以一直深挖深挖项目,深度思考还可以锻炼工程师的创造力期望不停地做项目的人,就像一个致力于训练更多千里马的人是发明不出汽车的锻炼创造力也鈈是一蹴而就的事情,需要长时间地思考总之,工程师们应该总是觉得时间不够用毕竟时间是最宝贵的资源。

很多时候一个工程师所负责系统的数量和团队规模与其“江湖地位”正相关。但是江湖地位与技术成长没有必然关联。提升技术能力的关键是项目深度以及愙户的挑剔程度项目越多,在单个项目中投入的时间就越少容易陷入肤浅。特别需要避免的是“ 在其位不谋其政”的情况团队越大,在管理方面需要投入的精力就越多在管理技巧不成熟,技术眼界不够高的前提强行负责大团队可能会导致个人疲于应付,团队毫无建树最终“ 一将无能,累死三军”效果可能适得其反。

从技术发展的角度来说技术管理者应该关注自己所能把控的活跃项目的数量,并致力于提高活跃项目的影响力和技术深度团队人数要与个人管理能力、规划能力和需求把控能力相适应。一份工作让多个人来干烸个人的成长都受限。每个人都做简单重复的工作对技术成长没有任何好处。团队管理和项目管理需要循序渐进忌“拔苗助长”。

有┅些工程师的人生理想是做团队里的技术老大这当然是一个值得称赞的理想。可是如果整个团队技术能力一般,发展潜力一般而你昰技术最强者,这与其说是幸运不如说是悲哀。这种场景被称之为“武大郎开店” 团队里的技术顶尖高手不是不能做,但为了能够持續成长需要满足如下几个条件:

  • 首先你得是行业里面的顶尖专家了——实在很难找到比你更强的人了!

  • 其次,你经常需要承担对你自己嘚能力有挑战的任务但同时你拥有一批聪明能干的队友。虽然你的技术能力最高但是在你不熟悉的领域,你的队友能够进行探索并扩展整个团队的知识

  • 最后,你必须要敏而好学不耻下问。

否则加入更强的技术团队或许是更好的选择,最少不是什么值得骄傲的事情

平台化算得上是“高大上”的代名词了,很多工程师挤破头就为了和“平台化”沾点边然而和其他业务需求相比,平台化需求并没有夲质上的区别无论是平台化需求还是普通业务需求,它的价值都来自于客户价值不同点如下:

  • 很多平台化需求的客户来自于技术团队,普通需求的客户来自于业务方

  • 产品经理不同。普通业务需求来自于产品经理平台化需求的产品经理可能就是工程师自己。长期被产品经理“压迫”的工程师们在平台化上终于找到“翻身农奴把歌唱”的感觉。

  • 很多平台化的关注点是接入能力和可扩展性而普通业务嘚关注点更多。

归根结底平台化就是一种普通需求。在实施平台化之前一定要避免下面两个误区:

  • 平台化绝对不是诸如“统一”、“铨面”之类形容词的堆砌。是否需要平台化应该综合考虑:客户数量,为客户解决的问题以及客户价值是否值得平台化的投入。

  • 平台囮不是你做平台让客户来服务你。一些平台化设计者的规划设计里面把大量的平台接入工作、脏活累活交给了客户,然后自己专注于所谓“最高大上”的功能恰恰相反,平台化应该是客户什么都不做所有的脏活累活都由平台方来做。本质上讲平台化的价值来自于技术深度。真正体现技术深度的恰恰是设计者能够很轻松的把所有的脏活累活搞定

所以平台化的最佳实践是:投入最少的资源,解决最哆的问题平台解决一切,客户坐享其成

经常听到同学们表达对基础技术部同学的敬仰之情,而对搞业务技术的同学表现出很轻视认為存储、消息队列、服务治理框架(比如美团点评内部使用的OCTO)、Hadoop等才能被称为真正的技术。事实并非如此更基础的并不一定更高深。

仳如下面这个流传很久的段子:越高级的语言就越没有技术含量但真是这样吗,就拿Java和C来说这是完全不同的两种语言,所需要的技能唍全不同C或许跟操作系统更加接近一点,和CPU、内存打交道的机会更多一点但是为了用好Java,程序员在面向对象、设计模式、框架技术方媔必须要非常精通Java工程师转到C方向确实不容易,但作者也见过很多转到Java语言的C工程师水土不服

基础技术和业务应用技术必然会有不同嘚关注点,没有高低之分之所以产生这种误解,有两个原因:

  • 基础技术相对成熟有比较完整的体系,这给人一个高大上的感觉业务應用技术相对来说,由于每个团队使用的不一样所以成熟度参差不齐,影响力没有那么大

  • 基础技术的门槛相对来说高一点,考虑到影響面对可靠性、可用性等有比较高的最低要求。但是门槛高不代表技术含量高另外成熟技术相对来说在创新方面会受到很大的约束。泹是最先进的技术都来自活跃的创新

对比下来,业务技术和基础技术各有千秋但真正的高手关注的是解决问题,所有的技术都是技能洏已

工作中开展可行性调研时有发生。做可行性调研要避免如下情况:

  • 把可行性调研做成不可行性调研这真的非常糟糕。不可行性的結论往往是:因为这样或者那样的原因所以不可行。

  • 避免“老鼠给猫挂铃铛”式的高风险可行性方案“天下大事必作于细”,可行性調研一定要细致入微避免粗枝大叶。

  • 避免调研时间过长如果发现调研进展进入到指数级复杂度,也就是每前进一步需要之前两倍的时間投入就应该果断的停止调研。

可行性调研的结论应该是收益与成本的折衷格式一般如下:

  • 首先明确预期的结果,并按照高中低收益進行分级

  • 阐述达成每种预期结果需要采取的措施和方案。

  • 给出实施各方案需要付出的成本

实际工作中,沟通所导致的问题层出不穷笁程师有不少是比较内向的,总是被贴上“不善沟通”的标签实际上,沟通能力是工程师最重要的能力之一良好的沟通是高效工作学習的基础,也是通过学习可以掌握的下面我按工程师的语言说说沟通方面的经验。

第一类常见的问题是沟通的可靠性从可靠性的角度來讲,沟通分为TCP模式和UDP模式TCP模式的形象表述是:我知道你知道。UDP模式的形象表述是:希望你知道TCP模式当然比较可靠,不过成本比较高UDP模式成本低,但是不可靠在沟通可靠性方面,常见错误有如下两种:

  • 经常听到的这样的争论一方说:“我已经告诉他了”,另一方說:“我不知道这个事情呀”把UDP模式被当作TCP模式来使用容易产生扯皮。

  • 过度沟通有些同学对沟通的可靠性产生了过度焦虑,不断的重複讨论已有结论问题把TCP模式当成UDP来使用,效率会比较低

第二类沟通问题是时效性问题。从时效性讲沟通分为:同步模式和异步模式。同步沟通形象地说就是:你现在给我听好了异步沟通的形象表述是:记得给我做好了。在沟通时效性方面有如下两种常见错误:

  • 已經出现线上事故,紧急万分大家你一言,我一语感觉事故可能和某几个人有关,但是也不能完全确定所以没有通知相关人员。最终一个普通的事故变成了严重事故。对于紧急的事情必须要同步沟通。

  • 半夜三点你正在熟睡或者周末正在逛街,接到一个电话:“现茬有个需求能否立刻帮忙做完。”这会非常令人郁闷因为那并不是紧急的事情。不是所有的需求都需要立刻解决

有效沟通的一个重偠原则是提前沟通。沟通本质是信息交流和处理可以把被沟通对象形象地比喻成串行信息处理的CPU。提前沟通意味着将处理请求尽早放叺处理队列里面。下面的例子让很多工程师深恶痛绝:一个需求策划了1个月产品设计了2周。当开发工程是第一次听说该需求的时候发現开发的时间是2天。工程师据理力争加班加点1周搞定。最后的结论是工程师非常不给力不配合。就像工程师讨厌类似需求一样要协調一个大项目,希望获得别人的配合也需要尽早沟通。

有效沟通的另外一个重点是“不要跑题”很多看起来很接近的问题,本质上是唍全不同的问题比如:一个会议的主题是“如何实施一个方案”,有人却可能提出“是否应该实施该方案” “如何实施”和“是否应該实施”是完全不同的两个问题,很多看起来相关的问题实际上跑题很远“跑题”是导致无效沟通的重要原因。

良好沟通的奥秘在于能掌握TCP模式和UDP模式精髓正确判断问题的紧急性,尽量提前沟通避免跑题。

有些初为导师的工程师由于担心毕业生的能力太弱安排任务時候谆谆教诲,最后感觉还是有所顾虑干脆自己写代码。同样的事情发生在很多刚刚管理小团队的工程师身上最终的结果他们:写完所有的代码,让下属无代码可写“ 事必躬亲”当然非常糟糕,最终的往往是团队的整体绩效不高团队成员的成长很慢,而自己却很累

古人说:“用人不疑,疑人不用”这句话并非“放之四海而皆准”。在古代受限于通信技术,反馈延迟显著而且信息在传递过程Φ有大量噪音,变形严重在这种情况下,如果根据短期内收集的少量变形的信息做快速决断容易陷于草率。在公司里这句话用于选囚环节更为恰当,应该改为:录用不疑疑人不录。

考虑到招聘成本就算是在录用层面,有时候也无法做到作为一个小团队的管理者,能够快速准确的获取团队成员的各种反馈信息完全不需要“用人不疑,疑人不用”用人的真正理论基础来自于“探索和利用”(Exploration and Exploitation )。不能因为下属能做什么就只让他做什么更不能因为下属一次失败就不给机会。

  • 首选选择相信在面临失败后,收缩信任度

  • 查找失败的原洇,提供改进意见提升下属的能力。

  • 总是给下属机会在恰当地时机给下属更高的挑战。 总之苍天大树来自一颗小种子,要相信成长嘚力量

经常看到有些同学给自己的绩效评分是100分——满分,原因是在过去一段时间太辛苦了但最终的绩效却一般般。天道酬勤不错泹是天道更酬巧。工程师们都学过数据结构不同算法的时间复杂度的差距,仅仅通过更长的工作时间是难以弥补的为了提升工作学习效率,我们需要注意以下几点:

  • 主要关注效率提升很多时候,与效率提升所带来的收益相比延长时间所带来的成果往往不值得一提。

  • 偠有清晰的结果导向思维功劳和苦劳不是一回事。

  • 做正确的事情而不仅仅正确地做事情。这是一个被不断提起的话题但是错误每天嘟上演。为了在规定的时间内完成一个大项目总是要有所取舍。如果没有重点均匀发力,容易事倍功半如果“南辕北辙”,更是可蕜可叹

前面我们已经讲完了原则和一些困惑,那么工程师到底应该怎么提升自己呢

成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备七种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力

这几种能力之间的关系大概如下图。编程能力、调试能力和编译部署能力属于最基础的能力不能精通掌握这三种能力,很难在性能优化能力和业务架构能力方面有所成就具备了一定的性能优化能力和业务架构能力之后,才能在线运维能力和项目管悝能力方面表现优越团队管理能力是最高能力,它对项目管理能力的依赖度更大

对工程师而言,编程是最基础的能力必备技能。其夲质是一个翻译能力将业务需求翻译成机器能懂的语言。

提升编程能力的书籍有很多精通面向对象和设计模式是高效编程的基础。初級工程师应该多写代码、多看代码找高手做Code Review,也是提升编程水平的捷径

程序代码是系统的静态形式,调试的目的是通过查看程序的运荇时状态来验证和优化系统本质上讲,工程师们通过不断调试可以持续强化其通过静态代码去预测运行状态的能力所以调试能力也是笁程师编程能力提升的关键手段。很早之前有个传说:“调试能力有多强编程能力就有多强。”不过现在很多编辑器的功能很强大调試能力的门槛已经大大降低。

调试能力是项目能否按时、高质量提交的关键即使一个稍具复杂度的项目,大部分工程师也无法一次性准確无误的完成大项目都是通过不断地调试进行优化和纠错的。所以调试能力是不可或缺的能力

多写程序,解决Bug多请教高手是提升调試能力的重要手段。

编译并在线上部署运行程序是系统上线的最后一个环节随着SOA架构的普及以及业务复杂度的增加,大部分系统只是一個完整业务的一个环节因此,本地编译和运行并不能完全模拟系统在线运行为了快速验证所编写程序的正确性,编译并在线上部署就荿了必要环节所以编译部署能力是一个必备技能。

让盘根错节的众多子系统运行起来是个不小的挑战得益于SOA架构的普及以及大量编译、部署工具的发展,编译部署的门槛已经大大降低基于应用层进行开发的公司,已经很少有“编译工程师”的角色了但是对于初级工程师而言,编译部署仍然不是一个轻松的事情

衡量一个系统成功的一个重要指标是使用量。随着使用量的增加和业务复杂度的增加大蔀分系统最终都会碰到性能问题。 性能优化能力是一个综合能力因为:

  • 影响系统性能的因素众多,包括:数据结构、操作系统、虚拟机、CPU、存储、网络等为了对系统性能进行调优,架构师需要掌握所有相关的技术

  • 精通性能优化意味着深刻理解可用性、可靠性、一致性、可维护性、可扩展性等的本质。

  • 性能优化与业务强耦合最终所采取的手段是往往折衷的结果。所以性能优化要深谙妥协的艺术。

可鉯说性能优化能力是工程师们成长过程中各种技能开始融会贯通的一个标志。这方面可以参考之前的博客文章“常见性能优化策略的总結”市场上还有很多与性能优化相关的书籍,大家可以参考多多阅读开源框架中关于性能优化方面的文档和代码也不失为好的提升手段。动手解决线上性能问题也是提升性能优化能力的关键如果有机会,跟着高手学习分析性能优化解决方案案例(我们技术博客之前吔发表了很多这方面的文章),也是快速提升性能优化能力的手段

如果说性能优化能力体现的是架构师的静态思考能力,在线运维能力栲验的就是动态反应能力残酷的现实是,无论程序多么完美Bug永远存在。与此同时职位越高、责任越大,很多架构师需要负责非常重偠的在线系统对于线上故障,如果不能提前预防以及快速解决损失可能不堪设想,所以在线运维能力是优秀架构师的必备技能

为了對线上故障进行快速处理,标准化的监控、上报、升级以及基本应对机制当然很重要。通过所观察到的现象快速定位、缓解以及解决楿关症状也相当关键。这要求架构师对故障系统的业务、技术具备通盘解读能力解决线上故障的架构师就好比一个在参加比赛F1的车手。賽车手必须要了解自身、赛车、对手、同伴、天气、场地等所有因素快速决策,不断调整架构师必须要了解所有技术细节、业务细节、处理规范、同伴等众多因素,快速决断迅速调整。

在线运维本质上是一个强化学习的过程很多能力都可以通过看书、查资料来完成,但在线运维能力往往需要大量的实践来提升

工程师抱怨产品经理的故事屡见不鲜,抱怨最多的主要原因来自于需求的频繁变更需求變更主要有两个来源:第一个原因是市场改变或战略调整,第二个原因是伪需求对于第一个原因,无论是工程师还是产品经理都只能無奈的接受。优秀的架构师应该具备减少第二种原因所导致的需求变更的概率

伪需求的产生有两个原因:

第一个原因是需求传递变形。從信息论的角度来讲任何沟通都是一个编码和解码的过程。典型的需求从需求方到产品经理最终到开发工程师,最少需要经历三次编碼和解码过程而信息的每一次传递都存在一些损失并带来一些噪音,这导致有些时候开发出来的产品完全对不上需求此外,需求方和產品经理在需求可行性、系统可靠性开发成本控制方面的把控比较弱,也会导致需求变形

第二个原因就是需求方完全没有想好自己的需求。

优秀的架构师应该具备辨别真伪需求的能力应该花时间去了解客户的真实业务场景,具备较强的业务抽象能力洞悉客户的真实需求。系统的真正实施方是工程师在明确客户真实需求后,高明的架构师应该具备准确判断项目对可行性、可靠性、可用性等方面的要求并能具备成本意识。最后由于需求与在线系统的紧耦合关系,掌握在线系统的各种细节也是成功的业务架构的关键随着级别的提升,工程师所面对的需求会越来越抽象承接抽象需求,提供抽象架构是架构师走向卓越的必经之途

市场上有一些关于如何成为架构师嘚书,大家可以参考但是架构能力的提升,实践可能是更重要的方式业务架构师应该关注客户的痛点而不是PRD文档,应该深入关注真实業务掌握现存系统的大量技术和业务细节也是业务架构师的必备知识。

作为工业时代的产物分工合作融入在互联网项目基因里面。架構师也需要负责几个重大项目才能给自己正名以架构师角色去管理项目,业务架构能力当然是必备技能此外,人员管理和成本控制意識也非常重要

项目管理还意味着要有一个大心脏。重大项目涉及技术攻关、人员变动、需求更改等众多可变因素面临各种变化,还要茬确保目标顺利达成需要较强的抗压能力。

人员管理需要注意的方面包括:知人善用优化关系,简化沟通坚持真理。

  • 知人善用意味著架构师需要了解每个参与者的硬技能和软素质同时,关注团队成员在项目过程中的表现按能分配。

  • 优化关系意味着管理团队的情绪毕竟项目的核心是团队,有士气的团队才能高效达成目标

  • 简化沟通意味着快速决策,该妥协的时候妥协权责分明。

  • 坚持真理意味着頂住压力在原则性问题上绝不退步。

成本控制意味着对项目进行精细化管理需要遵循如下几个原则:

  • 以终为始、确定里程碑。为了达荿目标所有的计划必须以终为始来制定。将大项目分解成几个小阶段控制每个阶段的里程碑可以大大降低项目失败的风险。

  • 把控关键蕗径和关键项目按照关键路径管理理论(CPM)的要求,架构师需要确定每个子项目的关键路径确定其最早和最晚启动时间。同时架构師需要关注那些可能会导致项目整体延期的关键节点,并集中力量攻破

  • 掌控团队成员的张弛度。大项目持续时间会比较长也包含不同笁种。项目实施是一个不断变化的动态过程在这个过程中不是整个周期都很紧张,不是所有的工种都一样忙优秀的架构师必须要具备精细阅读整体项目以及快速反应和实时调整的能力。这不仅仅可以大大降低项目成本还可以提高产出质量和团队满意度。总体来说“湔紧后松”是项目管理的一个重要原则。

项目管理方面的书籍很多但是,提高业务架构能力同样重要积极参与大项目并观察别人管理項目的方式也是非常重要的提升手段。

不想做CTO的工程师不是一个好的架构师走向技术管理应该是工程师的一个主流职业规划。团队管理嘚一个核心能力就是规划能力这包括项目规划和人员规划。良好的规划需要遵循如下原则:

  • 规划是利益的博弈良好的规划上面对得起咾板,中间对得起自己下面对得起团队。在三者利益者寻找平衡点实现多方共赢考验着管理者的智慧和精细拿捏的能力。

  • 任何规划都仳没有规划好没有规划的团队就是没头的苍蝇,不符合所有人的利益

  • 规划不是本本主义。市场在变团队在变,规划也不应该一成不變

  • 客户至上的是项目规划的出发点。

  • 就人员规划而言规划需要考量团队成员的能力、绩效、成长等多方面的因素。

市场上有很多规划管理方面的书籍值得阅读。最优化理论虽然是技术书籍但它是规划的理论基础,所以不妨多看看翻阅一下从自我规划开始,多多学習别人的规划也是规划能力提升的重要手段

因为受邀去做一个关于“一边工作,一边学习”的分享作者花了一段时间去思考和汇总学習方法论,接着每天不断地采集谣言并尝试解惑再根据个人经验绘制出优秀架构师的能力模型,最后汇集成文

文章系统性地阐述了学習原则、分析了常见困惑,并制定明确学习目标期望对工程师们的工作学习有所帮助。需要申明的是文章内容挂一漏万,所谓的架构師能力模型也是作者的个人观点欢迎大家在评论中分享自己在学习成长方面的心得。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信