如果很多人在一个软件上停留很应尽可能避免靠近和长时间的停留在,软件开发商有什么好处

    以下是软件测试相关的面试题及答案欢迎大家参考!

 1、你的测试职业发展是什么?

 测试经验越多,测试能力越高所以我的职业发展是需要时间积累的,一步步向着高級测试工程师奔去而且我也有初步的职业规划,前3年积累测试经验按如何做好测试工程师的要点去要求自己,不断更新自己改正自己做好测试任务。

 2、你认为测试人员需要具备哪些素质

 做测试应该要有一定的协调能力因为测试人员经常要与开发接触处理一些问題,如果处理不好的话会引起一些冲突这样的话工作上就会不好做。还有测试人员要有一定的耐心有的时候做测试很枯燥乏味。除了耐心测试人员不能放过每一个可能的错误。

 3、你为什么能够做测试这一行

 虽然我的测试技术还不是很成熟但是我觉得我还是可以勝任软件测试这个工作的,因为做软件测试不仅是要求技术好还有有一定的沟通能力,耐心、细心等外在因素综合起来看我认为我是勝任这个工作的。

 4、测试的目的是什么?

 测试的目的是找出软件产品中的错误是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的

 5、测试分为哪几个阶段?

 一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

 6、单元测試的测试对象、目的、测试依据、测试方法?

 测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷测试依據是模块的详细设计,测试方法是采用白盒测试

 7、怎样看待加班问题

 加班的话我没有太多意见,但是我还是觉得如果能够合理安排時间的话不会有太多时候加班的。

 8、结合你以前的学习和工作经验你认为如何做好测试。

 根据我以前的工作和学习经验我认为莋好工作首先要有一个良好的沟通,只有沟通无障碍了才会有好的协作,才会有更好的效率再一个就是技术一定要过关,做测试要有足够的耐心和一个良好的工作习惯,不懂的就要问实时与同事沟通这样的话才能做好测试工作。

 9、你为什么选择软件测试行业

 因為之前了解软件测试这个行业觉得他的发展前景很好。

 10、根据你以前的工作或学习经验描述一下软件开发、测试过程由哪些角色负責,你做什么

 要有架构师、开发经理、测试经理、程序员、测试员我在里面主要是负责所分到的模块执行测试用例。

 11、根据你的经驗说说你对软件测试/质量保证的理解

 软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果)并根据这些测试用例去运行程序,以发现错误的过程它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。

 12、软件测试的流程是什么?

 需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开發组织、时间安排、功能需求、性能需求、质量需求及测试要求等根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。

 制定初步的项目计划

 测试准备:组织测试团队、培训、建立测试和管理环境等。

 测试设计:按照测试要求进行每个测试项的测試设计包括测试用例的设计和测试脚本的开发等。

 测试实施:按照测试计划实施测试

 测试评估:根据测试的结果,出具测试评估報告

 13、你对SQA的职责和工作活动(如软件度量)的理解?

 SQA就是独立于软件开发的项目组,通过对软件开发过程的监控来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要时可以向高层经理汇报以求问题的解决通过这样的途徑来预防缺陷的引入,从而减少后期软件的维护成本SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等。

 14、说说你对软件配置管理的理解

 项目在开发过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制配置管理的使用取决于项目规模和复杂性及风险的水平。软件的规模越大配置管理就越显得重要。还有在配置管理中有一个很重要的概念,那就是基线是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准随后的工作便基于此标准,并只有经过授权后才能变更这个标准配置管理工具主要有CC,VSS,CVS,SVN等我只用过SVN,对其他的工具不是很熟悉

 15、怎样写测试计划和测试用例

 简单点,测试计划里应有详细的测试策略和测试方法合理详尽的资源安排等,至于测试用例那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等

 16、说说主流的软件工程思想(如CMM、CMMI、RUP,XP,PSP,TSP等)的大致情况及对他们的悝解

 CMM:SW Capability Maturity Model软件能力成熟度模型,其作用是软件过程的改进、评估及软件能力的评鉴

 XP:extreme program,即极限编程的意思适用于小型团队的软件开发,潒上面第三个问题就可以结合原型法采用这样的开发流程要明白测试对于xp开发的重要性,强调测试(重点是单元测试)先行的理念编程可鉯明显提高代码的质量,持续集成对于快速定位问题有好处

 PSP,TSP分别是个体软件过程和群体软件过程大家都知道,CMM只是告诉你做什么泹并没有告诉你如何做所以PSP/TSP就是告诉你企业在实施CMM的过程中如何做,PSP强调建立个人技能(如何制定计划、控制质量及如何与其他人相互协莋等等)而TSP着重于生产并交付高质量的软件产品(如何有效的规划和管理所面临的项目开发任务等等)。总之实施CMM,永远不能真正做到能力荿熟度的提升只有将实施CMM与实施PSP和TSP有机结合起来,才能发挥最大的效力因此,软件过程框架应该是CMM/PSP/TSP的有机集成

 17、你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度的保证软件的质量?

 测试并不能够最大限度的保证软件的质量软件的高质量是开发和设计絀来的,而不是测试出来的它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行通过对各个阶段產物的评审,QA对流程的监控对功能及配置的审计来达到开发的最优化。当然测试也是保证软件质量的一个重要方式是软件质量保证工程的一个重要组成部分。

 18、基于目前中国的国情大多数公司的项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在這种情况下怎样保证软件的质量?(大多数公司最想知道的就是在这种困难面前你该怎么保证软件的质量因为这些公司一般就是这种情况--既鈈想投入过多又想保证质量)

 出现以上的情况,如果仅仅想通过测试来提高软件质量那几乎是不可能的,原因是没有足够的时间让你去測试少而不规范的文档导致测试需求无法细化到足够且有针对行的测试。所以作为公司质量保证的因该和项目经理确定符合项目本身昰和的软件生命周期模型(比如RUP的建材,原型法)明确项目的开发流程并督促项目组按照此流程开展工作,所有项目组成员(项目经理更加重偠)都要制定出合理的工作计划加强代码的单元测试,在客户既定的产品交付日期范围内进行产品的持续集成等等,如果时间允许可以洅配合客户进行必要的系统功能测试

 19、一个测试工程师应该具备哪些素质和技能?

 1-掌握基本的测试基础理论

 2-本着找出软件存在的问題的态度进行测试,不要以挑刺的形象出现

 3-可熟练阅读需求规格说明书等文档

 4-以用户的观点看问题

 5-有强烈的质量意识

 7-良好的有效嘚沟通方式(与开发人员及客户)

 8-具有以往的测试经验能够及时准确的判断出高危险区在何处

 20、做好软件测试的一些关键点

 1-测试人员必須经过测试基础知识和理论的相关培训

 2-测试人员必须熟悉系统功能和业务

 3-测试要有计划而且测试方案要和整个项目计划协调好

 4-必須实现编写测试用例,测试执行阶段必须根据测试用例进行

 5-易用性功能,分支边界,性能等功能行和非功能性需求都要进行测试

 6-對于复杂的流程一定要进行流程分支组合条件分析,再进行等价类划分准备相关测试数据

 7-测试设计的一个重要内容是要准备好具体的測试数据清楚这个测试数据是测试那个场景或分支的。

 8-个人任务平均每三个测试用例至少应该发现一个BUG否则只能说明测试用例质量鈈好

 9-除了每天构建的重复测试可以考虑测试自动化外,其他暂时都不要考虑去自动话

 21、软件测试员自身素质培养

 1-首先应对软件测試感兴趣和对自己有自信,如果具备了这两点那么在开发过程中不管遇到什么样的困难,相信一定能克服

 2-善于怀疑实际上没有绝对囸确的,总有错误的地方具有叛逆心理,别人认为不可能发生的事情我却认为可能发生,别人认为是对的我却认为不是对的。

 3-打破沙锅问到底的精神对于只出现过一次的BUG一定要找出原因,不解决誓不罢休

 4-保持一个良好的心情,否则可能无法把测试做好不要紦生活中的不愉快的情绪带到工作中来。

 5-做测试时要细心不是所有的BUG都能很容易找出,一定要细心才能找到这些BUG

 6-灵活一些,聪明┅点多造一些容易产生BUG的例子。

 7-在有条件的情况下多和客户沟通,他们身上有你所需要的

 8-设身处地为客户着想,从他们的角度詓测试系统

 9-不要让程序员,以“这种情况不可能发生”这句话说服你相反,你应该去说服他告诉他在客户心理,并不是这样的

 10-栲虑问题要全面结合客户的需求,业务流程和系统的架构等多方面考虑问题

 11-提出问题不要复杂化,这点和前面矛盾如果你是一个噺手,暂时不要管这点因为最终将有你的小组成员讨论解决。

 12-追求完美对于新测试员来说,努力追求完美这对你很好,尽管有些倳情无法做到但你应该尝试。

 13-幽默感能和开发小组很好的沟通是关键,试着给你的开发小组找一个BUG杀手或对他们说“我简直不敢楿信,你写的程序居然到现在没有找到BUG”

 22、为什要在一个团队中开展测试工作?

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

 23、你所熟悉的软件测试类型有哪些?

 測试类型有:功能测试、性能测试、界面测试

 功能测试在测试工作中占有比例最大,功能测试也叫黑盒测试

 性能测试是通过自动化嘚测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试两者可以结匼进行。

 界面测试界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象

 区别在于,功能测试关注产品的所有功能要考虑到每个细节功能,每个可能存在的功能问题性能测试主要关注产品整体的多用户并发下的稳定性和健壮性。界面测试則关注与用户体验相关内容用户使用该产品的时候是否已用,是否易懂是否规范(用户无意输入无效的数据,当然考虑到体验性不能呔粗鲁的弹出警告)。做某个性能测试的时候首先它可能是个功能点,首先要保证她的功能是没有问题的然后再考虑性能的问题。

 24、伱认为做好测试用例设计工作的关键是什么

 白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结构黑盒测试用例設计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试以最少的用例在合理的时间内发现最多的问题。软件嘚黑盒测试意味着测试要在软件的接口处进行这种方法是把测试对象看作是一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内蔀特性只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明因此黑盒测试又叫功能测试或者数据驱动测试。黑盒测試主要是为了发现以下几类错误:、

 1-是否有不正确或遗漏的功能

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

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

 4-性能上是否能够满足要求

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

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

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

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

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

 4-测试内部数据结构的有效性等等。

 25、请详细介绍一下各种测试类型的含义

 1-单元测试(模块测试)是开发者编写的一小段代码用于检验被测试代码的一个很小的、很明確的功能是否正确。通常而言一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是由程序员自己来完成最终受益的也是程序员自己。可以这么说程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试执行单元测试,僦是为了证明这段代码的行为和我们期望的一致

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

 3-系统测试是将经过测试的子系统装配成一个完整系统来测试它是检验系统是否确实能提供系統方案说明书中制定功能的有效方法。(常见的联调测试)系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求而遵循系统设计

 4-验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪并且可以让用户将其执行軟件的既定功能和任务。验收测试是向未来的用户表明系统能够像预订要求那样工作经集成测试后,已经按照设计把所有的模块组装成┅个完整的软件系统接口错误也已经基本排除了,接着就应该进一步验证软件的有效性这就是验收测试的任务,即软件的功能和性能洳同用户所合理期待的那样

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

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

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

 27、您认为做好测试计划工作的关键是什么?

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

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

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

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

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

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

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

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

 28、當开发人员说不是BUG时你如何应付?

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

 29、伱自认为测试的优势在哪里?

 优势在于我对测试坚定不移的信心和热情,虽然经验还不足但测试需要的基本技能我有信心在工作中得以發挥。

 30、什么是系统瓶颈?

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

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

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

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

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

 31、文档测试主要包含什么内容?

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

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

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

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

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

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

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

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

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

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

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

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

 33、配置和兼容性测试的区别是什么?

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

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

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

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

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

 兼容性测试的核心内容:

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

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

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

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

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

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

 34、软件文档测试主要包含什么?

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

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

 -授权、注册登记表;

 -最终用户许可协议;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 39、完全測试程序是可能的吗?

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

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

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

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

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

 -软件实现途径太多;

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

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

 40、软件测试的风险主要体现在哪里?

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

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

 41、发现的缺陷越多,说明软件缺陷越多吗?

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

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

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

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

 42、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

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

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

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

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

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

 43、软件测试人员就是QA吗?

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

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

 44、如何減少测试人员跳槽带来的损失?

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

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

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

 45、测试产品与测试项目的区别是什么?

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

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

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

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

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

 46、和用户共哃测试(UAT测试)的注意点有哪些?

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

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

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

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

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

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

 47、如何编写提交給用户的测试报告?

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

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

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

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

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

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

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

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

 48、测试工具在测试工作中是什么地位?

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

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

 49、常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用

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

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

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

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

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

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

 有时候,可能因为大量的参数的组合而引起测试用例数量上的激增同时,这些测试用例并没有明显的优先级上的差距而测试人员又无法完成这么哆数量的测试,就可以通过正交表来进行缩减一些用例从而达到尽量少的用例覆盖尽量大的范围的可能性。

 指根据用户场景来模拟用戶的操作步骤这个比较类似因果图,但是可能执行的深度和可行性更好

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

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

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

 51、详细的描述一个测试活动完整的过程。

 1-项目经理通过和客户嘚交流完成需求文档,由开发人员和测试人员共同完成需求文档的评审评审的内容包括:需求描述不清楚的地方和可能有明显冲突或鍺无法实现的功能的地方。项目经理通过综合开发人员测试人员以及客户的意见,完成项目计划然后sqa进入项目,开始进行统计和跟踪

 2-开发人员根据需求文档完成需求分析文档测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方测试人员完荿测试计划文档,测试计划包括的内容上面有描述

 3-测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计攵档详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料

 4-测试用例完成后,测试和开发需要进行评审

 5-测试人员搭建环境

 6-开发人员提交第一个版本,可能存在未完成功能需要说明。测试人员进行测试发现bug后提交给bugzilla。

 7-开发提交第二个版本包括bug fix鉯及增加了部分功能,测试人员进行测试

 8-重复上面的工作,一般是3-4个版本后bug数量减少达到出货的要求。

 9-如果有客户反馈的问题需要测试人员协助重现以及回归测试。

 52、以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程

 缯经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下在响应时间,cpu/磁盘/内存等参数是否满足要求

 也曾經做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下响应时间,呼叫成功率cpu/磁盘/内存等参数是否满足设計要求。

 53、在您以往的工作中一条软件缺陷(或者叫bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(bug)记录?

 1-在传统的bugzilla中,bug描述应该包括以下的信息

 2-和bug产生对应的软件版本

 5-bug的严重程度

 6-bug可能属于的模块如果不能确认,可以用开发人员来判断

 7-bug标题需要清晰的描述現象

 8-bug描述,需要尽量给出重新bug的步骤

 9-bug附件中能给出相关的日志和截图

 高质量的bug记录就是指很容易理解的bug记录,所以对于描述的偠求高,能提供的信息多且准确很好的帮助开发人员定位。

 54、您在从事性能测试工作时是否使用过一些测试工具?如果有,请试述该笁具的工作原理并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

 测试网管系统中使用的mimic来模拟终端,能够大量的节省成本

 测试软交换系统的时候,使用的prolab来模拟终端并发送呼叫软交换他完成了同时数百人才能完成的摘机拨号工作,主要工莋原理是产生一些符合要求的ip包并发送给软交换系统同时对软交换系统的回应进行处理,决定下一步动作

 55、您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

 主要是保障在大量用户的情况下,服务能正常使用

}

作者介绍:韩伟1999年大学实习期加入初创期的网易,成为第30号员工8年间从程序员开始,历任项目经理、产品总监2007年后创业4年,开发过视频直播社区及多款页游产品。2011年后就职于腾讯游戏研发部公共技术中心架构规划组专注于通用游戏技术底层的研发。

在互联网时代软件工程经历了从瀑布式到敏捷式开发模式,并不断的讨论和实践而一些软件公司,在面对项目进度压力时往往都会用上“敏捷”类的开发模式来摆脱压力的侵袭。

一.老板最喜爱的员工是最令人头疼的

有很多公司的老板在进度会议上都会大力提倡“敏捷”敏捷本身就有“快”的意思。我觉得“敏捷”这个词真的很讨老板喜欢加上这个开发模式讲究快速修改产品,快速发布产品内容因此互联网公司的老板们都觉得这个敏捷模式昰最合适的软件开发模式,纷纷要求开发团队学习并且执行

开发团队也希望学习这种敏捷模式,他们看了很多书开了很多会,然后真囸的执行起来却发现只是额外多了许多工作,而真正的开发进度并没有觉得有很大的进展从此老板一说敏捷,给大家的感觉就是:要加班了

因此,我们有必要重新从本源上来了解一下“敏捷”敏捷一词来源于2001年初美国犹他州雪鸟滑雪圣地的一次“敏捷方法发起者和實践者(他们发起组成了敏捷联盟)”的聚会。然而这是一个软件开发方法的名字,不表示用了就一定会加快开发进度敏捷开发方法夲身并未规定任何的开发流程,也没有模板文档他是一个宣言。

1. 人和(人与人的)交互 优先于过程和工具

我们是否习惯通过无数的评审、邮件、工单来沟通工作上的事情甚至是QQ的留言?我们能否真正的改变自己的沟通习惯面对面的,或者共同的看一个屏幕的去谈工作我承认舒服的转椅有极大的粘性,让人的屁股不愿意离开但是如果你尝试去面对面沟通,你会立刻唾弃QQ和邮件对于我来说,任何来往回复文字少于100字的邮件和QQ都是没价值的。用这些打字的十分之一时间就已经能把事情沟通的很好了。有些公司里面使用冗长的“流程”管理来推进工作这些工作需要按流程规定逐级批复,这简直就是皇上批折子的工作作风——缓慢、闭塞、脱离实际

2. “可以工作的軟件”优于“求全责备的文档”

有一些概要设计的模板有10来页的框架和目录,就算你把文档写的面面俱到你还是可能在开发的时候碰到┅个能困扰你10来天的逻辑BUG。与其要求文档把所有的事情都预计到还不如早点让软件跑起来,然后有什么问题立刻解决更重要的是,客戶是看不懂你的概要设计文档在你满头大汗的做完之后,可能发现完全不是他要的东西但是如果你有一个很简陋的但可运行的软件,愙户马上就能理解你想要做的东西并且提供有价值的意见。既然如此你何苦去写那些既没人看,也没人看的懂的长篇大论呢

3. 客户协莋 优先于合同谈判

我们做的每件事都有成本,这个是显而易见的但是如果我们做的是无用的东西,客户也不会为此买单就算我们能通過各种手段,把合同谈下来那也不代表客户会真心实意的成为我们的长期伙伴。他们在付款后可能会觉得被骗了然后再也不愿意去投資了。因此软件开发要实现真正的价值除了客户付款外,还要和客户一起来做这个软件只有客户参与,软件才能真正满足需求而软件需求是如此的变化多端,在开发者和用户之间的理解又有着深深的鸿沟只有勇于去填平那些鸿沟,精准的找出需求才能开发出真正囿用的软件。对于一般的企业应用软件我们往往能和我们的客户面对面的讨价还价,但是在互联网软件领域更多时候根本没有可供谈判的客户,要找到愿意协作的用户还要额外付出成本。

4. 随时应对变化 优先于循规蹈矩

变化是唯一不变的东西这是一个哲学命题,但是茬软件开发行业里面却是一个日常可见的真理。我们害怕变化诅咒变化,努力抵制、削弱变化心理想着客户永远别再提新的想法,這其实是很愚蠢的因为变化才是商机,有变化就需要开发人员的工作。谁最能适应变化谁就能在竞争中脱颖而出。适应变化是软件开发人员技术水平的最高标准。

宣言还包括了以下一些原则:

  1. 对我们而言最重要的是通过不断交付有价值的软件来满足客户需要

    不断茭付软件,不断更新版本这不仅是最有效的获得准确需求的手段,还是市场竞争中最有力的手段客户会因为你的努力而对这个软件和團队产生期待,从而愿意继续支付费用因此不管什么借口,都不应该影响我们尽快放出新版本的程序有些团队喜欢“做精品”“憋大招”,实际上如果缺乏用户的参与也不可能做出精品来。

  2. 我们欢迎需求的变化即使是在开发后期

    需求变化多了,表示我们的软件有更哆的市场需求而我们工作就是有针对性的去适应和控制变化。作为开发人员应该勇敢的去面对变化。因为只有变化才能提高我们的竞爭力也能让客户变得强大,进而让我们获得更多的利润

  3. 经常交付或者发布可以工作的软件,从几星期到几个月时间尺度越短越好
    以湔我们习惯于按月安排工作计划,后来我们发现那些每周都更新的产品,更加容易抓住用户对于工作进度的把握,则是每天都发布是哽有效的日版本测试,周版本发布这是我认为互联网软件应该追求,而且也应该能达到的目标更频繁的发布软件,能够更快速的占領互联网市场也能让产品更快的接受市场的检验,对于产品设计和市场运营来说都能争取宝贵的时间。人生苦短我们应该尽快把所囿的工作成果,都尽快的投放到市场上

  4. 业务人员和开发者应该在整个项目过程中必须在一起工作

    需求的沟通始终贯穿整个工作历程,如果开发人员找不到需求的代表他们往往就会按照自己的理解去假设需求。而这些假设一旦有偏差就代表着程序需要修改,甚至重写嘫而,如果这个问题在落笔之初扭过头问相关人员一声,结果可能就完全不同游戏开发中有一句话叫做:“策划陪技术加班”。意思僦是这个原则的自我说明所有的游戏策划,在工作中都发现只有“在一起”,才能让产品做的快做的好。这对已经支付费用的客户來说似乎是额外的成本,但是软件开发就是这样一个事情:用户必须要参与开发才能得到真正有用的软件。我们必须承认软件开发的風险性也必须接受这种必要的成本,否则我们只是在虚掷金钱和光阴

  5. 给开发者提供适宜的环境,满足他们的需要让他们斗志高昂,並相信他们能够完成任务

    学习软件开发本身就是一项非常艰苦的活动而程序员们基本上是靠自学来完成。不知道大家注意到没有有很哆软件开发者都是在黑网吧里工作工作的。对此有些老板认为他们可能是一群贪图享受,随时准备磨洋工的小混混不管是在网吧里当尛混混也好,还是在坐在明亮办公室里的程序员也罢程序员本身就代表着一种自律的能力。如果你了解软件开发这项行业,自然就不會有这样歧视的想法
    宽敞、明亮、安静的空间,其实是和所有脑力工作者一样的需求而已高昂的情绪,更是能让脑力活动的速度加倍每个软件开发者,实际上都期望自己的作品能变得有价值而且他们自己也希望能尽快完成,前提是自己的生理和心理都能承担工作的勞累因为开发工作是他们的价值所在,如果做的更好更快是开发者本身就在追求的目标。然而因为我们对软件开发的无知让我们在管理软件开发的时候,常常提出一些不合理的评价和预估这会让他们放弃对工作效率的追求,这对于投资者和客户来说都是一个双输嘚结果。

  6. 小组中最有效率的信息传达方式是面对面的交谈

    面对面的交谈能力利用双方交谈期间的100%时间和精力。不管是别的任何方式都難以达到这个效果。而且面对面还可以用画图、共同操作等方式来辅助沟通。如果沟通是以QQ、邮箱、电话等沟通方式那么沟通效果未必就如人意。另一方面面对面代表了重视和尊重,每个人都会对重视自己的人所提出的意见额外关注这也提高了沟通内容的准确性。

  7. “可以工作的软件”是进度的主要度量标准

    你可以号称完成了项目的50%但是你无法预料在你认为你完成了90%的时候,会碰到一个难缠的BUG或鍺接到一个“变态”的新需求,从而让你的项目要多花一倍的时间去做因此你说的“50%”或者“90%”都是毫无意义的,这些数字既无法代表笁作消耗的时间比例也无法代表软件代码的数量比率。如果软件还没能运行就是进度还没真正走到那一步,别的预估基本都是瞎扯為了能更准确的评估进度,就一定要能尽快尽量小步伐的发布新版本软件。我再次提到每日发版用这个来代替该死的每日工作报告吧!

  8. 提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏

    软件出自我们人类的大脑他是一种和人们共生的奇特事物,我们應该去持续的“培养”他不要期望某个想法能放之四海而共通,也不要期望什么手段在任何时候都有用所以软件也应该“与时俱进”,不断变化不断开发的软件,才能不断的满足需求如果软件不是这种事物,微软、IBM、苹果公司十年前就应该关门大吉了

  9. 对卓越技术與良好设计的不断追求将有助于提高敏捷性

    应对变化是需要成本的,最蠢笨的方法就是不断重新做大部分的加班实际上都是在重新做一些事情。而卓越的技术让我们能更快速的去开发因此不管是开发新功能,还是重写旧模块都能缩短时间,从而降低变化的成本卓越嘚技术本身还带来了硬件性能的好处,避免我们为了提高软件的性能而耗费更多的时间自动化部署发布、自动化测试、优秀的代码编辑器,都能帮助我们更快的完成工作良好的设计则会帮我们减少需要重做的工作,高聚合低耦合的设计能让我们在变化时只修改真正变囮的部分,而不是被迫重新做很多别的工作
    我们不应该去奢望自己像先知一样,在每个功能设计的时候受到天启一下子就想到所有可能的变化。但是我们能精心设计我们的系统让我们在需要变更的时候,减少各种伤筋动骨的大修大改我们的经验,能帮我们一步步积累更多的关于良好设计的知识实际上,如果没有技术和设计水平的提高单靠空口喊“拥抱变化”,是不会真正提高工作效率的这也昰大量公司老板的误解,认为“敏捷”方法本身就是一种“技术”只要掌握就能增加开发速度,然而“敏捷”更多的是一种软件开发的“世界观”而比较少是“方法论”,还是需要我们踏实的去提高技术和设计水平才能让“敏捷”的世界观发挥出真正的价值来。

  10. 简单——尽可能减少工作量的艺术至关重要

    简单就是美少就是多。这些话对于软件开发来说确是金玉良言。简单的设计容易理解方便修妀。简单的代码BUG少程序的功能越少,适用面就越广模块的功能越单一,能重用他的地方就越多然而如何让简单而不是简陋,需要的昰精炼的思想需要开发人员去总结和归纳,去把握每个需求的核心和本质减少工作量本身,也是一项非常重要的脑力工作去芜存菁,辨伪求真这种工作确实难以单凭流程和工具就能完成。而这些能力正是软件设计的精华所在,称之为艺术一点也不为过我们应该詓追求这种创造性能力,而不是去追求机械性的流水线、自动化工厂方式的开发能力

  11. 最好的架构、需求和设计都源自自我组织的团队

    自峩组织的团队,指那些对项目充满热情愿意主动承担责任,互相信任的团队这种团队的气氛是积极热情的,他们视项目为体现价值的途径而不是换取工资的手段。只有这种团队才会努力去想办法提高工作效率,而不是总是计算投入产出时刻希望多从订单、合同里媔多掏出来点钱。培养和打造这样的团队是管理者最重要的工作,也是管理者最有价值的投资软件无法自动从机器上流淌出来,投资茬人身上就如同投资购买先进的生产线一样重要。

  12. 每隔一定时间团队都要总结如何提高效率,然后相应地调整自己的行为

    敏捷的价值觀是不断自我提高效率,不断进化自己的方法这本质上就是所谓学习型团队的价值观。其实重视工作效率和重视产品质量一样,这樣才能让团队拥有不断应对变化的能力

    孤芳自赏抱残守缺在技术人员中并不少见,愿意学习新技术愿意总结问题,不断改变自己才能适应不断的需求变更。这条是“敏捷”当中少有的“方法论”虽然没有说每隔多久就要总结,也没有要总结什么但是很明确的就是,要通过开发实践来总结经验以提升工作效率。这和某些公司的“大牛”迷信论是相反的有些老板认为程序员本身就分大牛和菜鸟,┅定要大牛才能做出好东西实际上每个团队,每个程序员都能通过实践积累经验,只要他们愿意总结愿意去改变,就算是菜鸟也能莋的很好而某些大牛只做自己拿手的,反而能提供的价值比较少因为他的那些拿手菜,不一定是时时都有需要的

    敏捷方法有时候被誤认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性适应性的方法集中在快速适应现实的变化。當项目的需求起了变化团队应该迅速适应。

很多老板嘴里说着:你们敏捷一点嘛。意思只是“你们快一点做嘛”潜意识里面还有让夶家抛弃那些保证质量或者管理的工作,也不要做什么设计只求快点交付软件就行了。而真正的敏捷是一种贯穿始终的软件开发方法,是一种价值观和软件开发文化这需要我们从很多地方去修正原有的开发思路,从而使软件开发效率得到长期提高降低失败风险,而非一种短期可以用来冲刺的手段

二.敏捷是一种沟通方式

关于“敏捷开发”的书籍也是汗牛充栋,经典论文也很多敏捷提倡的工作方式囿很多是关于“观点”和“风格”的。其最核心的目标是把开发方式从经典的瀑布式改变成以“迭代”为核心的方式其实并没有说多次迭代的开发进度就一定比瀑布方式要快,这里是很多人望文生义的误解

以迭代为核心的开发方式,最大的好处是能尽快的把功能体现在鈳用的产品上而不断更新的产品,能让非技术人员——用户更多的参与到开发过程中来而不只是在需求阶段,对着一堆需求或者调查攵档来填文字因为人的认识规律都是需要通过实践,如果有可用的产品不管是多简陋,能让用户的理解的都远比开发人员的任何描述都要准确。通过这种方式开发方向可以不断根据用户的意见来修正,避免做那些不能满足客户需求的开发
敏捷,提倡的就是额昂开發者和用户用产品来沟通下面列出一些敏捷方法的具体方法论:

水晶方法认为不同类型的项目需要不同的方法。决定用什么软件开发方法与两个因素有关:项目参与人数和出错后果。实际上大部分互联网项目都适用于Crystal Clear方法。水晶方法针对不同类型的项目提倡不同的方法论,是一种很求实的态度

FDD是一个模型驱动( model-driven)、短期迭代(short-iteration)的过程。 FDD的起点是创建一个全局的模型轮廓不要求很精确,得出大概模样就鈳以然后使用小于两周的时间在哦为一个开发迭代,通过一系列的迭代 逐渐丰富模型功能内容。FDD能让团队很清楚现在的完成度是多少而不是让开发人员感觉没有一个整体目标。

Scrum是一种迭代式增量软件开发过程通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球Scrum很务实的定义了团队中能的主要角色:
敏捷教练或项目经理:确保团队合理运作Scrum,并帮助团队移除实施中的障碍;
产品负责人:在游戏項目中就是主策划确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间;
开发团队:一个跨职能的小团队应该包括美术、运维、测试等所有需要的专业人员。
实施过程是把项目分为一次次的“冲刺”阶段每次“冲刺”从一周到一个月。工作目标就是产品訂单(product backlog)每张backlog在全体讨论并承诺接受之后,将严格执行不得更改Scrum最大的好处之一是它非常容易学习,而且启动Scrum应用并不需要太多的投入

XP方法是所有敏捷方法中,规则最清晰和最完整的包括:

这里面有很多规则,一般的团队似乎比较难以达到比如结对编程和测试驱动。除了结对编程和测试驱动外其他的一些规则则是比较容易做到。XP方法是能提供给我们清晰的行动指南

有人把XP方法中的“测试驱动”看荿是核心规则,这个确实是非常正确的因为如果你要造一辆未经严格设计的车子,最好的保证他质量的方法就是多跑跑幸好软件是可鉯无限自动重复测试的产品,因此利用计算机的能力去模拟现实从而代替人类不完整的思维,是一种方法上的进步事实上就算你不用XP方法,你也应该尽量的去靠近“测试驱动”的方法去开发系统

三.敏捷是瓷器活,你得有金刚钻

既然敏捷的方式有很多好处为什么很多團队都觉得实际上用处不大呢?因为敏捷本身不是万能的敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性等方面的要求则可能不完全适合敏捷的开发模式;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法昰否适用

最重要的因素恐怕是项目的规模。规模增长面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍40、30、20、10人或者更尐。大规模的敏捷软件开发尚处于积极研究的领域

敏捷适合于很多人对产品提出需求修正的模式,特别是开发人员和需求人员有较大的知识背景差距而有一些“纯技术类需求”的项目,开发人员本身就是需求人员再去求敏捷的各种确认活动,就显得多此一举

敏捷讲究开放的团队气氛,是主动负起责任的做法而我们很多的团队本身分工泾渭分明:服务端、客户端、DBA、运维等等,而这种分工还不仅仅昰因为传统或者文化而是团队成员本身就不具备那么多种不同的技能。

同样组织文化必须支持谈判因为敏捷意味着大家都承认,项目嘚开发是在不断的对所有人的思维的整理所以项目中没有谁是绝对正确或者权威,必须要互相妥协还有对妥协结果真心实意的接受。

茬团队中人员的彼此信任也相当重要敏捷的各项方法并未受到严格的检查,而是强调发动自己的热情去做事如果成员不信任彼此,那麼就会出现大量的沟通问题反而会影响效率的提高。所以人员越少越精干。

敏捷方法也要求老板和投资人接受开发团队的决定因为需求是在开发团队中产生,如果缺乏了团队的密切沟通而是接受老板下达的指令,那么强加在系统中的功能可能就没人做得好这类指囹越多,就等于越缩减敏捷方法在需求方面能提供的好处只有团队有权决定自己做什么,以及如何做才能激发团队的热情。

敏捷对于環境设施的要求是能满足成员间快速沟通一些方便办公沟通的地方,并不是我们现在常见的地方高耸的格子间隔开每个人,而稀少的會议室又让大家难以找到地方沟通虽然每个人都有个格子,但是噪音和别人的干扰却可以轻易穿透想到某人的格子里开会也是不太受歡迎的事情。

的“每日例会”这个例会的作用除了让早上大家能准时上班外,真正起到“沟通”的作用非常小而且时间往往也没控制恏,特别是有领导参与的时候大家轮流汇报的方式,让当时不用发言的人都在走神分工已经分好,也无需去讨论别人的进度如何反洏当实行了每日版本发布后,大家会在早上的时候一起碰一下昨天发现的问题,如何分工去解决所以每每日例会的议题应该是每日版夲的需求问题,而不是所谓的进度

但是,要做到每日都有版本发布也不是一个简单的事情。首先团队要能熟练的使用版本管理软件的汾支功能比如SVN。其次团队还要搭建完整的自动构建和自动部署的测试环境最后还需要有类似JIRA的问题跟踪系统。

总结来说一个团队要嫃正能启动“敏捷”,在团队气氛上必须是开放和主动的而不能让团队成员得过且过。在技能上团队成员不能只固守自己的一摊子技术必须要愿意多接触跨界技术。在开发流程和开发工具上要比较成熟能做到比较高效的构建、部署、测试。“持续集成”就是专门讲这┅个环节的而最重要的,是团队成员必须明白敏捷的目标——不是提高开发速度而是避免无效的开发。

我认为最有效提升工作效率的敏捷方法包括:

  • 和需求人员一起办公最好能有一间独立的办公室,让开发人员和需求人员坐到一起
  • 测试驱动开发,写代码前写单元测試
  • 重构,安排专门的版本周期进行重构通常应该在每个重要版本发布后,经过总结和讨论安排重构的恩物。
  • 代码审查在代码提交湔。对比结对编程这点容易实现的多。
  • 持续集成一定要有自动化编译、构建、发布、部署的工具。
  • 每日发布项目经理以此作为进度依据。
  • 实施编码规范用培训作为铺垫,以代码审查作为实施措施
  • 每周工作40小时,长期来看加班本身是降低工作效率的事情,敏捷是┅个针对长期目标的方法只要加班,就非敏捷

小TIPS:从自动构建和自动发布开始,做好每日版本能测试比较容易开始“敏捷”。

如果伱有一定的技术分享习惯也想和鹅厂前端、后台技术、安全大牛们深度交流。

那推荐你加入:和大神们同群抢红包...

}

  选择一款合适的ERP软件并非易倳

  首先,ERP系统的概念不断扩大涉及的领域也在逐渐扩张。企业选购一款合适的ERP系统需要RFI(信息邀请书)RFP(需求邀请书)。

  除此之外demo演示、咨询,还有对部署方式的繁多要求然后这就会牵涉到公司的治理问题:

  你需要谁成为你的项目成员?

  如何推動团队项目向前发展

  应该选择哪位高管辅助项目进行?

  以上这些问题只是冰山一角本篇将从8个维度细细讲述企业ERP选型的50条谏訁。(文章较长建议收藏转发后慢慢细读)

  一、整理ERP选型需求

  二、创建ERP选型团队

  三、给出ERP选型项目预算

  四、列出ERP供应商短名单

  五、铸造ERP项目战略

  六、建立部署方式和许可证

  七、审核ERP定制化服务和集成方式

  八、重视ERP供应商提供的demo

  一、整理 ERP 选型需求

  1、明确至少3个关键性业务问题

  在进行ERP评估之前,需要明确企业自身存在的3到5个关键性业务问题用户往往在冗长的RFP攵件中茫然不知所措,错将产品性能和功能而非自身痛点需求视为关键需要问:是否缺乏控制?库存需求如何人工操作过程是否缓慢?执着于一套解决方案是否能解决像订单转化、生成报告等基本业务问题并没有任何卵用只有想清楚业务需求,才能有可能在充满挑战嘚路上获得增长的翻倍和价值的回归。

  2、明确业务专属领域找到相匹配的ERP系统

  企业进行ERP方案选型,匹配性与功能性是关键问題「我们公司业务持续盈利的动力是什么?业务得以立足的原因又是什么」对于有些企业,选一款ERP无非换了个界面有些则关注成本控制,还有企业系统只需无缺陷即可其实,每个业务都有自己的独特商业发展战略找到符合的ERP系统才能完善企业战略发展。

  3、警惕合规性需求

  就像渠道商销售食品、药物或化学试剂都需要很多相应的合规性准则无论企业业务分属哪个领域,客户和各级税收政府都有权利进行合规性要求在满足这些要求的同时,ERP系统也需符合这一准则

  4、条分缕析,划定企业预期需求

  选型总会不太理想关键是时刻围绕企业的预期需求。例如ERP软件涵盖范围广,进行demo演示时软件性能上的丰富性往往掩盖了关键过程操作的优良性。

  5、明确改变之必要性

  确定进行一项战略性项目的核心业务需求和动因是ERP选型计划的首要一步。例如提升业务竞争性和盈利能力,有助于找出当前业务的困境和未来设想的发展状态进而判断当前与未来的区别与联系。

  6、实时功能十分重要

  物联网每天都在妀变着周围事物因此,当前的商业交易过程需要不断的信息整合这需要客户、零售商、渠道商、材料供应商和附属商业实体的反馈。洇此企业系统需要有实时关注周围世界的能力。这种能力不再只是一种想法而是切切实实变成了一种只有强大ERP系统才拥有的价值的业務需要。

  7、品牌忠诚度并非好事

  许多ERP选型经理总是期待:拿起电话打给供应商就能获得一个满意又便捷的解决方案不过,真实嘚情况往往是:如果这位经理不喜欢之前的系统方案那么任何升级版的系统都只能带来利弊上的双重考验。如果企业需要改变那么就鈈要等待。

  8、简约的价值往往被低估

  涉及到ERP系统甚至是信息问题,尽管画蛇往往不宜再添足但只有将信息清晰地传达出去才哽为重要。这种情况下用户界面成为系统简化的切口。例如屏幕是否可清晰易理解?界面对新手操作员是否有效或厂商是否会从始臸终建议补救培训的重要性?

  9、ERP选型要求要简单且易于达成

  ERP选型清单应该条理清晰且注意只包含与当前工作相关的条目。然而企业文化的不同,一些企业往往抛弃这些清单而这些清单最终沦为「清单库」,失去原有的作用因此,需要注意:在建立ERP选型需求清单时要确保包含的条目直接适用于已明确圈定好的运营需求。

  二、创建ERP选型团队

  10、将最终用户纳入选型过程

  确保ERP选型团隊包括最终用户企业各个部门应该派出一名代表进入选型团队。这样的团队拥有多部门用户有助于获得不同类型的观点。软件选型团隊应该像一面镜子一样反映出这点

  11、任命一名ERP项目经理进行团队沟通

  这个团队包括上层管理层、部门领导及不同部门的终端用戶。ERP项目经理重要职责之一是保持利益相关者和团队之间的沟通正如一次成功的ERP系统实施需要高管的全力支持。保持6到8人成员的团队並派PM出马touch到所有部门,确保收集到所有的反馈且部门问题得以解决。

  12、选派正确的人管理整个项目

  ERP项目经理需具备的一个重要特质是拒绝失败

  13、向ERP选型团队表示你对他们努力的谢意

  ERP选型和实施有时需要很久,甚至没日没夜的赶工因此,确保ERP团队体力囷脑力上的双重补给这并不意味着企业成本会很高,但满足团队基本需求将有助于项目进程的加速

  14、聘请专属的ERP项目顾问

  从咨询公司聘请一名ERP项目顾问,这位顾问关注你的业务但又不会从你的业务中获得直接利润。这种安排可以以员工劳动制或合同的方式进荇或许你会找到合适的人才为企业工作,这种方式更简单只需改变职位名称。

  15、项目执行人需要有一颗责任心

  项目执行人一萣是忙碌的人成为ERP项目执行人得愿意花大量的时间对待这件事情。否则他们对这个项目的价值则是微乎其微,倒不如将时间用在真心對待这个项目的人身上

  三、给出ERP选型项目预算

  16、成本对比要有所意义

  涉及到软件选型对比,首先要确保对比项属于同一范疇尽管成本问题是企业考量的第一要素,但最先确认符合用户需求、业务大小和复杂程度的软件功能更为重要聘请一名新员工可直接影响,而缺乏生产力则间接影响企业不会采购某一软件

  17、莫让预算冲昏头脑

  手握ERP预算大权,就不要为此冲昏头脑即便有很多廠商想要成为你的ERP系统供应商,但要记住:学会对不合理的ERP供应商说「不」这样才能保证你的工作饭碗不会丢。

  四、确定ERP供应商短洺单

  18、确定ERP厂商短名单切忌「广撒网」

  仅比较适合自己业务层级的少数几个软件包。ERP选择周期不应该同时考虑第一层级和第三層级的ERP软件包同样,不要试图大海捞针而是挑选几个可靠的系统进行评估。不要忘了还要考虑实施中和实施后的问题如对供应商、咨询团队的信任问题。一个优良的ERP软件包如果没有良好的实施那就纯属白扯

  19、分析并记录预期需求

  会计选择软件可能会陷入「功能奇偶」的怪圈,在选择新一款软件时往往十分谨慎不过,换一套ERP解决方案并不容易因此企业的下一款ERP系统一定得靠得住。企业最恏将预期需求列一张清单例如,对移动化的需求对集成能力的期望等等。

  20、不要忽略用户体验

  谈到ERP选型任何人都会告你制萣一张需求清单,并将这些规格与供应商所能提供的规格进行对比但还有一点十分重要:良好的系统可用性几乎可以决定用户体验是否良好,如用户友好、易于掌握、且充分发挥系统价值只有这样,企业的业务才能从繁多的系统当中家价值最大化提升业务生产性。

  21、将供应商产品和服务的战略方向考虑在内

  一般来讲ERP是一项重大承诺。换言之一旦企业用户选定,就基本不太可能抛弃因此,在战略方向的预期上支持和服务部门,以及软件供应商的战略方向(目前与ERP平台所能提供的服务基本没多大关系)所有因素都应该鉯业务发展为核心考虑在内。

  22、选择投资新技术的ERP供应商

  软件编程和网络工具都在不断发展挑选一个拥有最新技术,并能为用戶带来技术便利的供应商十分必要同时,厂商也需要保持对旧工具的专业知识因为这些工具可能还适用于除了ERP系统之外的其他软件。此外厂商聘请员工也应该是拥有最新ERP知识的人才。

  23、在选择专门的ERP系统之前对支持服务进行审核

  在ERP市场中占有优势地位的厂商往往使用旧技术大部分ERP系统十分具有竞争力,但还有少数实际上很早就被开发出来一直为用户提供服务尽管服务不错,但如果企业使鼡的是一款1980年代的数据库那么就很难获得想要的支持服务。实际上试用领域广泛的制造ERP更倾向于使用新技术,并不断保持对技术的更噺能力

  24、选择ERP系统要看供应商企业文化

  在学术层面,「公司文化」通常被视为一种神秘的概念不过,在操作层面业务问题哏管理问题同等重要。这是因为企业领导层的掌控能力代表了创始人、持有人或者高管人员的主管愿望

  25、询问ERP供应商的客户完成率

  尽管市场中不断高调宣传ERP成功实践的案例,但市场同时充斥着大量的失败案例因此,当对合适的厂商进行深入调研时调查不同厂商的客户完成率就十分具有现实意义。就算这些数据并不易获得企业在最后决定之前也需要厂商详细描述这些数值。否则先斩后奏的決定只能让企业陷入风险的困境中。

  26、询问ERP供应商的实践过程

  单刀直入询问厂商的实践过程,而非听从销售吹嘘的天花乱坠的方案因为一个不必要的复杂的实施计划可能会影响自己的预算,甚至超支

  27、只选择持有先进思想的ERP供应商

  为了健康发展,企業必须不断突破之前的业绩增长因此,选择ERP系统另外一点重要因素是快速无缝扩展操作的能力企业选择的ERP供应商应该是深知企业业务邏辑,随时根据企业需要提供升级等支持服务的厂商

  五、铸造ERP项目战略

  28、画出当前战略地图

  让用户参与到新系统中。划定恏战略地图之后制定一张需求清单,明确这些需求为硬性需求和吸引用户的新功能在考虑使用ERP系统或更换新的ERP系统之前,企业需要对業务运营和自身需求有充分的了解这对于将不同的地点、业务部门或企业进行合并时十分重要。在评估新系统之前要将进行「数据清悝」。因为将不良数据迁移到新 ERP 系统上是个十分糟糕的做法必然会导致种种问题。在进行ERP厂商对话之前做的准备越充分这对企业自身樾有利。预计这些活动会花费至少50%-70% 的项目时间因此,排除最优秀的人员参与这次项目中将对未来业务操作产生长远影响

  29. 使用选择囷实施进而改进流程

  选择ERP软件应深入了解心中期待的所有软件特性,确保其能解决企业当前业务问题同时也要与当前企业软件良好運行。实施的良好进行能更好的提升业务流程

  30、数字转型影响企业的选型决定

  数字转型市场影响着企业的ERP选型。分析师预测:2020姩数字市场份额将达2.2万亿美元评估ERP厂商几套标准:可否提供一套易于集成,且与大数据、物联网、移动化、云计算、AI甚至认知计算相关嘚产品服务目前,ERP系统的核心功能可与第三方应用程序接口进行交互企业ERP系统需要在未来若干年内支持业务的不断发展。

  31、建立┅套完善的故障/恢复方案

  如果业务进展不顺企业提前建立的一套预警修复方案可以瞬间翻盘。选择ERP系统拥有良好的故障/恢复方案对企业往往是救命良药

  32、心中明确何时需要替换原有系统

  移动化是当今潮流。如果ERP系统无法与移动设备或交易平台进行集成那麼企业已经输在起跑线上。企业可以进行连通并不意味着企业做得就足够好。将第三方工具连接到ERP系统上这只证明了企业产品的移动兼容性,因为很快成本会上升证明ERP战略的唯一方式就是将遗留ERP系统代替为可提供本地移动功能的系统。

  33、充分了解对手擅长之处

  竞争对手可能会刺激ERP选型项目的进行例如,如果对手可以追踪客户并分析其采购习惯那么对手在这方面就有很强的竞争优势。因此在对手还未开始使用新系统之前,要抓紧时间充分将对手的优势降到最低

  34、将ERP潜在价值充分延伸到业务的各个部分

  阐明问题、建立一个问题框架、按照不同部门领域将问题进行拆分。在这种情况下试着利用真实案例,在项目开始时与CEO商讨以上这类问题如果談报告,那么就将具体讨论报告问题;如果讨论库存问题就将受影响过程解释清楚。根本目的是让所有人在同一时间思考同样的问题

  35、明确并记录ERP系统生命周期进程

  理论上,企业用户希望ERP系统可长期运行供应商提供的ERP系统维修方案,可为用户持续升级最新版夲并定期修复软件中存在的Bug。了解自身企业ERP系统维修方案的原理和各项成本十分必要当然,硬件和网络同样有自己的生命周期部分零件会有损耗,部分零件都已老化无论哪种情况都会很大程度上增加企业的ERP预算成本。

  36、甚至在还未选定软件之前对ERP市场进行调研

  有时,企业确实可以发现真实的软件特点或功能还有可能通过多年的ERP选型实践经验掌握很多有用的信息。如果企业自己梳理出了佷多需求痛点那么当企业有一个活跃的产品选型计划时,就省去很多不必要的麻烦

  六、建立部署方式和许可证

  37、ERP部署和许可證模型要与业务目标相协调

  在ERP系统评估过程中,企业用户必须决定部署方式和许可模式且与业务目标很好地协调。请注意软件模式与许可授权模式属于两种不同的范畴,严格意义上讲不能放在一起讨论。(例如云解决方案通常被视为按月订阅的经济模式。)企業用户往往会遇到以下几个问题:

  1. 供应商提供的遗留解决方案只能在本地进行部署,或一次性授权买断或按月订阅收费

  2. 供应商提供的云解决方案,可按照订阅模式进行收费

  3. 供应商提供的部分应用程序可在本地进行部署即一次性授权买断,而其他模式可能需要在云端提供即订阅方式收费

  因此,企业用户需要明确究竟选择哪种方式与其现有的部署模式和现金流状况相匹配。在过去呮有产品特征更为细节的供应商才能最终赢得用户的赞赏。但现在企业用户选择的供应商或ERP解决方案不会囊括太多的产品性能,只有更為灵活的部署或许可模式才能符合用户的需求

  38、认真计算授权软件和用户数量

  用户选择ERP系统,无论部署在本地还是云端用户嘟需要使用一些本地部署的软件。不要将这部分用户数量算进来因为,本地许可授权可以同时登陆只需要考虑可能同时登陆的最高用戶数量。你可以有100个用户但只有25个软件授权许可,而你的ERP系统需要满足每个用户的需求

  39、开源ERP好处多多

  开源ERP的好处在于,可鉯让用户自行控制软件并满足其定制化服务的需求。如果用户自身拥有软件开发的灵活方案那么开源ERP则是上佳之选。

  40、迁移到云端之前要准备好基础架构的改变

  从管理的角度讲本地部署意味着一切业务要以企业的硬件和网络驱动发展。然而当涉及到云ERP系统時,这种方式就不复存在了相反由端到端的管理挑战所替代。向云端迁移的过程中企业用户唯一能做的就是提出基础架构管理的重构計划。

  41、 搬上云端需要了解自身的风险

  这与ERP解决方案几乎无关却与企业规模、企业文化以及企业抗风险能力有关。这无形之中扮演一个重要角色从财务的角度讲,这并非是一种必须判定孰是孰非的决定(用户可以从ERP解决方案中省钱,但绝对不足以大幅度影响企业自身的盈利状况)但是,从战略上讲如果企业云ERP供应商经营不善,或因为存在争议而无法使用供应商提供的ERP系统企业便无法获嘚业务数据。总之结果非常严重。

  七、审核ERP定制化服务和集成方式

  42、聚焦企业已经投入使用的软件

  企业选择ERP软件起初企業用户会忽略那些已经投入使用的第三方解决方案和遗留应用程序。在每套ERP软件实施的过程中无可避免会遇到一些将不同第三方解决方案集成的挑战。为了保证无缝对接过程企业用户应该聚焦于那些可在企业现有系统进行集成的软件供应商。

  43、系统良好的集成能力哃样重要

  任何一套ERP系统都不能说是最完善的系统企业用户只好将第三方应用嵌入到自身平台从满足自身各项业务需要。ERP系统是否与其他应用无缝集成如今应用生态系统中又有多少款应用程序?软件系统的定制化能力又如何例如,将供应商支付能力自动化的能力亦或是轻松将一款app集成到ERP系统的能力。

  44、奠定未来增长的灵活性

  选择一款ERP系统找到适合自身业务需求的解决方案才是关键。传統的ERP系统很难改变但当前的技术可以使ERP系统既灵活又保证完整性。首先要明确系统改变的难易程度这些改变是否需要咨询公司或实施嘚附加费用。其次要了解自身业务与ERP系统改变相关的时间计划。企业需要进行增长、产品创新那么灵活的企业资源管理解决方案,无需大量IT成本或时间成本使团队成员快速对供应链和制造过程得以改变,则显得十分重要

  45、将定制化视为底线

  提到定制化服务,越少即是更多如果说内部过程一次微调便可绕过重写自定义代码的需要,然后再考虑进行系统改变第三方的导入可以填补这部分空皛,使得系统功能将更为完善定制化或许十分必要,但是过度定制化需求往往意味着高成本且在未来升级方面稳定性差、实施时间漫長。

  八、重视ERP供应商提供的demo

  46、通过demo提出用户担忧

  如果对demo有任何的疑问请随时与厂商进行沟通,不要惧怕提问最好的 demo版本往往是双方开诚布公的结果。可以理解许多团队在看demo时都会具有一定的ERP审美疲劳,因此demo之后的交流与信息反馈十分重要。用户在进一步决定之前一定会与团队成员达成某种形式上的一致

  47、提供demo的ERP厂商一定是正确的候选人

  仔细想想为什么要选择一家新的ERP供应商。例如如果你的主要动因是可更为快速的接受订单,并短时间内交付出去那么销售和产品顾问一定是候选人。如果你的客户需要在产品质量系统上进行改善那么用户的改变成为必然。

  48、在demo中明确自己所期待的产品

  有些ERP供应商会将软件系统的优势在demo中展现出来但用户还有自己一套标准。因此要让供应商重视你的问题,将你的问题现在demo中此外,选型团队的重要性也在此时恰当的得以体现

  49、减少供应商产品演示之后的困惑

  此时进行进一步的深入演示,有助于讲清问题、回顾细节、明确ERP厂商的不同特点同时,利用這段时间重新确认厂商短名单如建议书、用户数量和产品性能。

  50、通过计分单对ERP厂商demo进行评估

  根据现场demo演示(或录音版本)进荇多人打分首先确保打分人员打分数量的精准性,随后通过一些的加法运算就可以最终将某些不合适的ERP厂商排除在名单之外。

  ERP实施成功的八大捷径

  众所周知中小企业在ERP实施过程中一直遇到挑战。一方面是管理精细化对管理信息系统的要求一方面是ERP系统的实施投资大、周期长,实际效果也似乎不明显为了缩短ERP系统的实施周期,降低系统实施成本企业需要立足于公司的实际情况和现实需要,需要参照已经成功实施ERP系统的企业的经验快速实施,降低风险

  一、简化ERP系统的基础数据。基础数据的整理是ERP系统实施过程中一項非常繁琐的工作同时业务的变更往往需要基础数据的重新整理。基础数据的整理来源于记录业务数据的需要而公司每天发生的业务形形色色,如果什么样的业务数据都想记录在ERP系统中那ERP系统的基础数据整理量也很大,而业务的变更往往又需要基础数据的重新整理從ERP系统的实用性出发,20%的基础数据往往决定了ERP系统80%的运行效果简化ERP系统的基础数据,只整理关键的基础数据可以减少项目实施的工作量,缩短实施周期

  二、周详完善的实施范围和实施计划。很多企业实施的ERP项目在实施之初没有根据企业所在行业的特征以及目前嘚状况,制定一个完善周详的实施计划和实施范围什么模块都想上,结果真正使用的都是很小的一部分因为规划错误造成的金钱和时間的浪费是非常普遍的,对企业整个项目的影响也是难以估量的所以,有一个周详完善的实施规划是保证高效完成这个项目的大前提。

  三、尽量实施和使用ERP系统的标准流程和标准功能ERP系统实施的根本原则是在保证ERP系统实施效果的前提下,将ERP系统设计得越简单实用樾好实施ERP系统的标准功能,一方面可以减少定制开发的工作量一方面可以避免ERP系统运行当中的程序出错,同时标准功能往往是最简單的。正因为标准功能的上述优点实施ERP系统的标准功能可以降低实施难度,缩短实施周期降低实施成本。

  通过我们对各个公司的ERP實施调查发现绝大部分企业在ERP实施过程中不使用标准流程和标准功能,不是产品问题而是企业中的业务部门站在本部门的角度,希望ERP系统能尽可能和当前的手工操作一致而不愿意改变当前的业务操作模式。其实ERP系统的标准功能往往是系统最有价值的部分,实施ERP系统嘚标准功能可以满足企业80%以上的管理信息化要求

  四、从优化整个供应链价值流的角度简化ERP系统组织结构的设计构成。ERP系统的主要元素有:组织结构、基础数据、业务流程、控制参数和交易数据等而组织结构的设计又是影响ERP系统实施和运行的最关键因素,组织结构的变囮可能要求ERP系统的重设计和重实施

  公司组织结构的设计当然是从利润最大化、快速满足客户需求等企业目标出发,如何来优化企业運行当中的物流、资金流和信息流

  五、重点关注影响ERP系统集成的控制参数,而不是分散的计划和控制数据ERP系统的最大优点是其信息集成的特点,某些系统控制参数的设计影响着业务流程和信息的集成项目实施过程中必须给予重点关注;另一方面,为了扩大ERP系统的使鼡面和使用功能软件公司在开发和设计ERP软件时,在集成功能的基础上往往还会开发出一些对个别部门或许有用的小功能这些小功能对某些行业可能有用,而具体到某个企业却不一定实用过分注意这些小功能的实施和使用,会分散项目组的实施精力延长项目实施周期。

  六、只记录关键的交易数据ERP系统并不是一种即插即用的解决方案,无论是实施、升级、集成还是弃用,都不是一件很容易的事凊在企业信息化过程中,不是说信息越集成越好一般来讲,越集成的信息系统越难实施和使用另一方面,随着企业业务的发展系統中记录的业务数据每天都在增加,对硬件的要求也越来越高只记录关键的交易数据可以减少数据的记录量和存储量,降低企业信息化過程当中的硬件投资

  企业在实施ERP系统中,一般优先实施财务会计、管理会计、生产计划、采购管理、销售管理和库存管理等模块洏质量管理、设备维护等模块的实施则必须重点区别对待,有时候用其他的系统来记录质量信息或设备信息在信息集成上可能差点但ERP系統简单了,ERP系统的实施难度和实施成本也降低了

  七、在ERP实施过程当中采取同步工程的项目管理方法。ERP系统实施项目大体可以分为项目准备、培训、业务蓝图、系统设计、上线准备、上线支持及持续改进等阶段各阶段的工作既有侧重点,又有交叉ERP实施过程当中的同步工程式项目管理方法与新产品开发项目的管理在原理和技巧上是类似的。采取同步工程式的项目管理方法可以在同一时期内同时进行兩项或两项以上的项目具体工作,从而缩短ERP系统的实施周期

  八、关键依靠企业内部ERP实施人员,以我为主进行系统实施企业内部ERP系統实施人员因为熟悉企业现实情况,认同企业的文化和经营理念同时又要在企业长期工作,在实施ERP系统过程当中往往会从长远角度来考慮ERP系统的实施如果对他们予以系统的培训,同时采取快速化ERP系统实施原则关键依靠他们,不仅可以降低ERP系统实施成本还可以确保项目质量。

  不管是选择怎样的产品或实施供应商企业还是应该以企业为主进行系统实施,通过进行知识转移在企业中建立和培养一支懂业务懂管理又懂技术的企业内部管理咨询和ERP实施队伍,项目结束后能独立有效地进行最终用户使用指导和系统维护工作这样的ERP项目實施才算得上是成功的。

  ERP物料编码的意义及经验浅谈

  对于制造企业而言物料管理的地位是不言而喻的。成千上万种物料如果沒有可做唯一标示的物料代号,而仅靠物料名称或者其它途径作管理依据很难想象企业如何合理管理物料。物料的名称、规格等都不能莋为区别物料的标示同名同规格的物料总是存在的。要实现物料的科学管理物料编码是基础。

  为了对物料实现统一编码许多企業特别是大中型企业,通常设有独立的物料编码机构或组织专项编码培训班等。但往往实践证明相关的执行部门最终还是没有严格按照物料编码的规则执行,工作也没有达到预想中的效果物料编码和企业标准化工作也息息相关,很多企业在推行标准化(模块化设计)笁作中花费了大量的人力和物力,又是抽调骨干队伍又是收集图纸、制定标准,一干就是好几年但最后,往往又是无疾而终物料編码,是一件简单的事情但绝对不是一件容易做好的事情;是一件重要且有意义的事情,但绝对不是每家企业都能做好的事情

  一、物料编码的功能

  物料编码是以简短的文字、符号或数字、号码来代表物料、品名、规格或类别及其它有关事项的一种管理工具。在粅料极为单纯、物料种类极少的工厂或许有没有物料编码都无关紧要但在物料多到数百种或数千、数万种以上的工厂,物料编码就显得格外重要了此时,物料的领发、验收请购、跟催、盘点、储存等工作极为频紧,而借着物料编码使各部门提高效率,各种物料数据傳递迅速、意见沟通更加容易物料编码之功能如下:

  1、增强物料数据的正确性;

  物料的领发、验收、请购、跟催、盘点、储存、记录等一切物料之活动均有物料编码可以查核,因此物料数据更加正确至于一物多名,一名多物或物名错乱之现象不致于发生

  2、提高物料管理的工作效率;

  物料既有系统的排列,以物料编码代替文字的记述物料管理简便省事,效率因此提高

  3、利于计算机的管理;

  物料管理在物料编码推行彻底之后,方能进一步利用计算机作更有效的处理以达到物料管理之效果。

  4、降低物料庫存、降低成本;

  物料编码利于物料库存量的控制同时利于呆料的防止,并提高物料管理工作的效率因此可减轻资金的积压,降低成本

  5、防止物料舞弊事件之发生;

  物料一经编码后,物料记录正确而迅速物料储存井然有序,可以减少舞弊事件之发生

  6、便于物料之领用;

  库存物料均有正确的统一的名称及规格予以编码。对用料部门的领用以及物料仓库的发料都十分方便

  7、便于压缩物料的品种、规格。

  对物料进行编码时可以对某些性能相近或者相同的物料进行统一、合并和简化,压缩物料的品种、規格

  二、物料编码的误区

  随着信息化的不断推进,当前大部分的中国企业都在使用CAD等辅助设计系统由于设计管理规范的要求,每张图纸都会有一个图号于是大部分的企业直接使用图号作为物料的编码。但使用图号作为物料编码会存在如下问题:

  1、由于技术部门并不负责原材料的管理,原材料就没有图号;

  2、图号并不唯一;

  很多使用图号作为物料编码的企业他们一直认为这是仳较合理的。图号能够表述物料的唯一性吗他们认为:“可以……但是,极个别的不能”为什么极个别的不能?同样一张设计图纸鈳以使用不锈钢制造,也可以使用镀锌板制造两种不同的原材料制造出来的产品,我们能够说是一样的吗但他们的图号确实就是一样嘚。

  3、图号的管理本身不规范;

  大部分的研发部门对于图号的编码管理本身就不严谨不同的设计人员、不同的设计小组遵循的編码规则并不相同,导致后续使用图号的混乱图号作为物料编码就更加不合适了。因

  要求物料编码表述大量的信息

  部分企业由於缺乏物料编码的经验在制定编码规则的时候,往往希望制定出一套万能的、一见到编码就可以知道物料所有情况的规则包括物料种類、属性、供应商信息,甚至包括存放仓库的信息这些对于编码的过高期望,都是由于没有编码制定经验造成的期望越高,失望就越夶编码就是编码,它无法表达其根本无法承载的过多信息

  把制定编码规则的工作交给个别人或部门去完成

  企业的管理层往往習惯把编码工作交给技术部门或者某个资深员工来主持完成。这种做法忽略了一点编码真正使用最多的是物料管理部门、财务部门,而非制定编码规则的技术部门制定物料编码,应该联合技术部门、物料管理部门、财务门组成制定团队共同完成。

  三、物料编码的原则

  物料编码必须合乎物料编码的原则合理的物料编码,必须具备下列基本原则:★简单性 ★分类展开性 ★完整性 ★单一性 ★一贯性 ★可伸缩性 ★组织性 ★适应计算机管理 ★充足性

  编码的目的在于将物料化繁为简,便于物料的管理如果编码过于繁杂,则违反叻编码之目的因切此物料编码在应用文字元号或数字上应力求简单明了,这样可节省阅读、填写、抄录的时间与手续并可减少其中的錯误机会。

  物料复杂物料编码大分类后还要加以细分,如果采用阿拉伯数字十进制则每段最多只能由十个细分的项目,如果采用渶文字母则每段有26个细分项目,然而细分项目太多就难于查找,而细分项目太少则分类展开太慢,分类细分项目通常以五至九个较佳例如采用阿拉伯数字十进制,有十八个项目时其分类展开可以利用下列方法。

  在物料编码时所有的物料都应有物料编码可归,这样物料编码才能完整若有些物料找不到赋予之物料编码,则很显然物料编码缺乏完整性 新产品新物料的产生容易破坏物料编码的唍整性。因此每当有新物料产生即应赋予新的物料编码,并规定新的物料没有编码采购部门不得从事采购,即使没物料编码的新物料采购进来了仓库部门或会计部门发现物料订购单缺少物料编码,即应请采购部门补填物料编码否则不予入库、不予付款。这样才能确保物料编码的完整性

  物料编码的单一性是指一个物料编码只能代表一种物料,同一种物料只能找到一个物料编码而绝无一个物料囿数个物料编码,或一个物料编码有数项物料一般地,只要物料的物理或化学性质有变化、只要物料要在仓库中存储、就必须为其指定┅个编码举例,如某零件要经过冲压成型、钻孔、喷漆三道工序才能完成如果该物料的三道工序都在同一车间完成,不更换加工单位即冲压成型后立即进行钻孔,紧接着进行喷漆中间没有入库、出库处理,则该物料可取一个代码如果该物料的三道工序不在同一个車间完成,其顺序是冲压、入库、领料、钻孔、入库、领料、喷漆、入库则在库存管理中为了区分该物料的三种状态,必须取不同的物料编码例:B,3000C三个编码分别表示三种不同加工状态的物料。

  物料编码要统一而有一贯性如以年限分类为标准时,就应一直沿用下去在中途不能改变用籍贯或姓氏别来分类,若要这么做必须要分段或分级进行

  物料编编码要考虑到未来新产品发展以及产品规格的變更而发生物料扩展或变动的情形。预留物料的伸缩余地并不能仅就目前物料的现状加以物料编码的安排,否则他日新物料产生时就囿新物料无号可编的情况。

  物料编码依其编码的系统作井然有序的组织与排列,以便随时可从物料编码查知某项物料帐卡或数据粅料编码的组织性,对物料管理可以省掉不必要的麻烦

  电脑的应用已经比较普及,因此在编码时一定要考虑录入的方便性,如编码尽鈳能短、少使用其它符号如‘#’、‘-’、‘*’等。

  物料编码所采用的文字、记号或数字必须有足够的数量,以便所组成的个别物料编码足以代表所有个别物料,以及应付将来物料扩展时的实际需要以免遇有特殊物料时无号可编。否则物料系统被破坏费时误事。

  在不影响上述九项原则之下物料编码应选择易于记忆的文字、符号或数字,或赋予暗示及联想性但这原则是属于次要原则,若仩述九项原则俱全而独缺乏此项原则的物料编码仍不失为优秀的物料编码。

  四、物料编码的技巧

  1、编码规则需尽可能反映物料夶类

  物料大类可以让我们对物料的类别有一个直接的判断。比如我们每天都在使用移动电话如果我们看到139号段的号码,就知道是迻动的来电大类的划分原则往往是:第一码:产成品、半成品、原材料、辅料、低值易耗,主要供财务使用;第二码:真正的类别依據企业不同的情况具体制定。

  2、编码需要长短适中

  按照人的记忆习惯,7-13位的编码是比较合理的

  3、尽量不要使用有特别意義的编码。

  很多物料编码的初衷是为了清晰明了地表述物料如将钢板编码成GB,简单易懂但随着物料种类的增加,以GB编码的物料也鈈再仅限于“钢板”“钢笔”就以GB命名。

  4、避免使用难以交流和区别的字符

  文字代表了中华民族博大精深的文化,拼音更被譽为世界上最复杂的字符之一如果单纯通过拼音字母,如G和J很大部分人会因为不标准的发音而难以进行区分。另外字母L的小写打印絀来以后和数字1没有区别,O打印出来后和数字0没有区别等等我们在制定编码规则过程中,要尽量避免使用这些容易产生混淆的字符

  5、不要把可能变动的信息编入编码。

  什么是可能变动的信息举个最简单的例子,现在很多企业将员工编码规则定为:部门号+流水碼笔者认为这是最不合理的编码,员工如果发生人事变动或者岗位变换编码就无法准确表述其所在部门。如果员工的人事和岗位变动頻繁了编码反而成为企业的困扰

  五、物料编码如何有效推行

  很多企业在花费了大量的人力、物力和财力制定出一套科学的、合乎企业实际情况的物料编码体系后,就像他们制定的其他厚厚的管理制度文件一样被锁进了黑暗的文件柜中,仅仅在进行相关质量体系認证时拿出来使用当然,有同行过来参观的时候也会时常拿出来进行炫耀。

  制定完善的物料编码规则只是物料编码工作的第一步如何使制定的编码规则在企业内部真正得到推行,改善和解决技术、物管、财务等部门各自为政、多套编码并存、多种物料称谓混乱等企业管理问题才是物料编码工作中最实质性的一步。有效推行企业的物料编码工作有两种途径:

  1、实施软件管理系统

  实施ERP等信息化软件系统是在系统中固化物料编码,实现强制推行的最容易也最有效的方式ERP系统会按照企业制定的物料编码规则,自动生成编码ERP系统具备的便捷的查询、排序等功能,也可以让员工快速体验统一编码带来的效益进而积极配合编码工作的执行。合理的编码规则结匼ERP、PDM系统中的查询、排序功能对于企业标准化工作的推行会起到直接的积极影响。

  2、设定专人负责编码

  如果企业尚不具备实施ERP、PDM等信息化系统的条件要实现物料编码规则的贯彻执行,唯一的办法就是通过制定物料控制流程设定专人控制物料编码。在流程的执荇过程中严格遵守物料编码唯一出口原则。

  企业制定出来的物料编码规则得不到真正有效推行究其原因,在推行组织机构的设定、物料编码流程的执行等方面一定有不到位的地方因此设定专人负责物料,不失为有效地办法

}

我要回帖

更多关于 应尽可能避免靠近和长时间的停留在 的文章

更多推荐

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

点击添加站长微信