﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-大话人生-随笔分类-测试团队管理</title><link>http://www.cnitblog.com/stomic/category/8486.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 06 Nov 2012 16:50:48 GMT</lastBuildDate><pubDate>Tue, 06 Nov 2012 16:50:48 GMT</pubDate><ttl>60</ttl><item><title>（转）“吃狗粮”背后的事</title><link>http://www.cnitblog.com/stomic/archive/2012/11/06/86734.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Tue, 06 Nov 2012 08:57:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2012/11/06/86734.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/86734.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2012/11/06/86734.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/86734.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/86734.html</trackback:ping><description><![CDATA[<div>我不养狗，甚至有点怕狗，但这并不妨碍我体验&#8220;吃狗粮&#8221;。其实你也可以的，如果你是一名<a target="_self"><u><strong>软件开发</strong></u></a><a target="_self"><u><strong>工作</strong></u></a>者的话。因为我这里说的&#8220;吃狗粮&#8221;是指软件开发过程中，某产品或项目相关的所有人员试用自己的产品，从用户角度体验他们对该产品的感受，就像狗的主人体验他买给狗狗的狗粮是什么味道的一样。虽然这个做法始于1988年，也在诸如<a target="_self"><u><strong>微软</strong></u></a>、Facebook等这样的大公司应用了许久，但在我们项目组近期还是第一次尝试这个活动。<p><strong>　　我们这样&#8220;吃狗粮&#8221;：</strong></p><p>　　1、版本已较稳定</p><p>　　我们选择在回归<a target="_self"><u><strong>测试</strong></u></a>之 后，产品上线之前这个阶段进行&#8220;吃狗粮&#8221;活动。此时，我们认为我们开发的软件基本满足用户的需求，缺陷已经不多了。我们想试试此刻看起来已经比较可口的狗 粮，吃起来到底是什么滋味。活动时间为45分钟（也许太短了，但因为是第一次，我们不想整个团队耗费太多的时间在一件还没有证明其价值的事情上，所以限定 了一个较短的时间）。</p><p>　　2、参与范围</p><p>　　项目组所有成员（除去休假成员）全体参加，包括了项目经理、需求分析人员、开发人员、测试人员等各个角色。测试人员也参与该活动，因为在这个阶段他们发现新缺陷的概率与其他成员相比没有太大的绝对优势。更何况，从体验的角度，测试人员对于用户的代表不容忽视，不是么？</p><p>　　3、缺陷报告</p><p>　　因为是体验，所以我们提倡除了缺陷，也欢迎提出任何疑问和建议。这三类问题都被提交到<a target="_self"><u><strong>缺陷管理</strong></u></a>系统中。</p><p>　　因为参与人员较多，为了避免对大家自由体验时的干扰，所以我们对于可能重复报告的缺陷采用&#8220;先报告，再取消&#8221;的方式。即活动中每个人自由记录自己发现的问题（即使会和别人重复），活动后由测试人员阅读每个缺陷报告，取消掉重复的问题。</p><p><strong>　　&#8220;吃狗粮&#8221;背后的事：</strong></p><p>　 　45分钟的&#8220;吃狗粮&#8221;活动结束后，经过统计，23人一共报告了98个缺陷、疑问、建议！这个数字的确出乎很多人的意料！我该高兴么？为这次活动如此大量 的&#8220;收获&#8221;？我该担忧么？为在这个阶段还有这么多的问题？也许，数字背后的分析才能给我一个答案，也给大家一个合理的解答。</p><p>　　在对结果进行分析前，我想到了近期刚刚看过James Bach在Rapid Software Testing中提到的数据分析方法：假设推理（Abductive inference）。通过这个方法可以为数据找到最佳的解释。该方法的步骤为：</p><p>　　1、收集数据</p><p>　　2、为该数据找到几种解释</p><p>　　3、针对每种解释，寻找更多或者与解释一致或者不一致的其它数据</p><p>　　4、为重要的数据选择最佳的解释，或者继续寻找</p><p>　 　这个方法提醒我需要重视第2和第3步。而以前，我往往是从第1步直接跳到第4步的。好的，让我按照这个方法来进行分析。首先，我通读一遍所有的缺陷/问 题报告，确保我能够理解它们，并将它们归类到合理的（valid）和无效的（invalid）两大类。在通读的过程中，我感到有些缺陷是有共性的，如有几 个似乎都提到了快速切换页面，有几个都提到了系统响应速度太慢等等。因此，我再一次逐个阅读所有的报告，将它们放到我有印象的几个聚集的分类区，因而逐步 形成了一个分类视图。</p><p>　　对于每组分类数据，我问自己：这个数字符合我的预期么？很快，我发现了两组数据与我的预期相差甚远。它们分别是误报缺陷数（3）和与数据多样性相关的缺陷数（2）。</p><p>　　1、误报缺陷数</p><p>　　根据平时测试团队的平均误报率约7%，我预计此次活动的误报数应该要接近甚至超过这个数字。而实际只占了约3%。这说明什么问题呢？假设推理法提醒我要&#8220;为该数据找到几种解释&#8221;。</p><p>　　1）项目组成员对于被测试的功能非常了解，</p><p>　　（1.a）所以很少误报</p><p>　　（1.b）所以对于某些存在的小问题已经形成共识，即使看到也不认为是问题了，因而没有报告</p><p>&nbsp;</p><div>（1.c）所以对于某些问题熟视无睹，看不到这个问题，因而没有报告 <p>　　（1.d）且如果被测功能是自己开发的，可能想顺手修掉，没写报告</p> <p>　　2）项目组成员对于被测试的功能并不太了解，</p> <p>　　（2.a）因此更倾向于报告那些UI上与逻辑不相关的问题，这类问题误报率本身就低</p> <p>　　（2.b）因为报告的（2.a）类问题很多，占用了大量时间，因此没有足够时间去测试那些更为复杂的逻辑，因此误报少</p> <p>　　（2.c）心中没有预期的行为，也就没有办法判断是否是缺陷，报告得少，所以误报的也少</p> <p>　　针对以上每个解释，我尝试寻找更多与解释一致或者不一致的其它数据。</p> <p>　　此次活动我们没有限制大家是试用自己开发的模块还是别人开发的模块，但从缺陷报告人和缺陷所属模块来看大家还是测试自己开发的模块居多。所以从 这个数据来看，项目组成员应该对于被测试的功能非常了解。经过和某些开发人员的进一步沟通，他们反馈在自己的模块报告的问题比较少的原因是（1.b）和 （1.c）。我想（1.a）应该是不需要数据就能够成立的一个合理猜想。所以只有（1.d）难以得到数据的证实，但根据平时工作的情况，相信即使有，其比 例也不高。所以我认为（1.a）（1.  b）（1.c）可以视为合理的解释。对于（1.b）和（1.c），如果想改善的话，我想交叉测试是有益的。另外，对于测试人员，也需要提醒特别小心&#8220;杀虫 剂&#8221;效应，避免对于长期已知的问题丧失了辨别能力。</p> <p>　　但是，要如何解释在同一个自己熟悉的模块，测试人员误报率高于非测试人员误报率呢？不是测试人员专业性更高，应该误报率更低么？也许从一个方面 来看，除非是明显的程序实现错误，开发人员误解自己程序行为的可能性较小，因而误报率较低。从另一个方面来看，在同样面对一个不确定的问题时，测试人员抱 着更强烈的暴露问题的意愿，&#8220;宁可错杀一千，不可放过一个&#8221;，模棱两可时会选择先报告，而开发人员也许更多地选择先放一放。但这一点还需要找更多的非测试 人员去了解是否属实。</p> <p>　　当然，我也看到虽然大部分人体验的是自己开发的模块或者是与自己模块联系较紧密的模块，但有些人也在别人的模块报告了不少问题或者建议，符合第 2种解释。在第2种解释中，因为此次活动中超过50%的有效缺陷都是UI上与逻辑不相关的问题，所以该数据支持了假设（2.a）。因为活动时间本身不长， 报告缺陷又要耗费一定的时间，所以也支持假设（2.b）。根据和一些项目组成员沟通，他们认为按照平日工作中的感觉，假设（2.c）在自己和团队成员中还 是成立的。这在一个侧面提醒我们平时要多做跨模块的知识分享和储备。比如，跨模块轮岗、跨模块代码走读、交叉测试、结对测试等。</p> <p>　　2、与数据多样性相关的缺陷数</p> <p>　　我预计因为更多的人员参与测试，在数据选择上自然地应该有更多的多样性，所以发现数据相关缺陷的可能性应该较高。但实际结果只有2%。可能的原因有哪些呢？</p> <p>　　1）数据相关的缺陷已经很少了</p> <p>　　2）数据相关的缺陷不少，但没有被发现</p> <p>　　（2.a）对于最应该能发现与数据多样性相关缺陷的需求分析人员，因为他们中的几人遇到了和环境相关的问题阻碍了测试的进程，所以没有报告出足够多的数据多样性相关的问题</p> <p>　　（2.b）对于整个团队，尤其是此次活动中占多数的广大开发人员，可能大家对于数据的敏感度还有待提高。比如，看到一个集装箱号是否能反应到应该显示11位而非10位？</p> <p>　　我查找了一下这个版本测试人员在内部测试时在数据多样性方面报告的缺陷比例，为21%。这个数据与这次活动的2%相差很大。因为按照ODC分析 法，我相信版本的质量属性不会在短时间内自觉地发生本质改善，所以在数据多样性方面应该还有更多的缺陷有待发现。因此我倾向于相信假设（2）而非假设 （1）。因为近期需求分析人员无暇再继续测试，所以没有办法证实假设（2.a）。假设（2.b）与前期内部测试的结果中数据多样性缺陷占到21%比较符 合。为了改善这一情况，需求分析人员需要多提供真实业务数据作为参考。比如，需求评审时可以多尝试&#8221;Specification by  Example&#8221;，而这些example不仅仅有逻辑的抽象，更是用真实的数据表达了真实的业务场景。</p> <p>　　按照类似的思路，我和小组成员对其它各组数据背后的原因进行了各种假设和进一步的数据分析。明确了主要原因后，也制定了相应的改进计划。有了它们，我感到我更能坦然地面对这98个缺陷、问题和建议了。有了它们，我相信下一次我们的&#8220;狗粮&#8221;升级版会更好吃的！</p> <p>版权声明：本文出自 zdlzx 的51Testing软件测试博客：<a href="http://www.51testing.com/?56882">http://www.51testing.com/?56882</a></p> <p>原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</p></div><br /><p>&nbsp;</p></div><img src ="http://www.cnitblog.com/stomic/aggbug/86734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2012-11-06 16:57 <a href="http://www.cnitblog.com/stomic/archive/2012/11/06/86734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试工作管理与规范</title><link>http://www.cnitblog.com/stomic/archive/2009/10/28/62168.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Tue, 27 Oct 2009 17:32:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2009/10/28/62168.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/62168.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2009/10/28/62168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/62168.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/62168.html</trackback:ping><description><![CDATA[1、<a onclick="javascript:tagshow(event, '%B2%E2%CA%D4');" href="javascript:;" target=_self><u><strong>测试</strong></u></a><a onclick="javascript:tagshow(event, '%B9%A4%D7%F7');" href="javascript:;" target=_self><u><strong>工作</strong></u></a>准备
<p>　　测试负责人在软件项目的需求阶段开始介入，逐步深入了解该项目的需求、设计过程，从而有针对性的编制测试计划和测试大纲（测试方案、测试用例）。</p>
<p>　　对测试人员进行业务培训，了解该项目的大体流程及各项功能。</p>
<p>　　2、测试计划的制定</p>
<p>　　测试计划的制定要与项目开发的总体计划相吻合；测试计划中要充分考虑资源计划（人员安排，设备分配、与<a onclick="javascript:tagshow(event, '%C6%E4%CB%FC');" href="javascript:;" target=_self><u><strong>其它</strong></u></a>部门的协调配合以及其它不确定的因素）等；测试计划的制定还要考虑测试版本计划，与开发协调，按照版本生成计划（多长时间出一个版本），制定测试计划。</p>
<p>　　3、时间节点的控制（与开发部门的协调控制）</p>
<p>　　保证测试计划中的全部测试用例跑一遍，如果未按预计的时间将所有计划中的测试用例走一遍，则需分析原因。</p>
<p>　　4、测试用例（TASE CASE）的编制与优先级的控制</p>
<p>　　以软件项目的层次图或模块分解图，按模块根据模块功能清单设计编写测试用例（TEST CASE），将测试用例按对系统的影响程度分成优先级。</p>
<p>　　测试原则：按照优先级的顺序从高到低完成测试用例的测试；测试用例的编制要充分考虑模块间的接口关系，对集成测试的流程要清楚。</p>
<p>　　5、测试过程控制</p>
<p>　　合理的进行测试人员的组织与分配，按功能模块并结合测试人员的实际情况（人员素质、测试业务水平、工作态度）进行测试工作的安排（界面测试（风格、字体、提示信息、布局等）可安排一般测试人员）、功能和<a onclick="javascript:tagshow(event, '%D0%D4%C4%DC%B2%E2%CA%D4');" href="javascript:;" target=_self><u><strong>性能测试</strong></u></a>需有较深资历的人员进行测试）。</p>
<p>　　将测试的BUG 的状态进行分类(Active（激活），resolved（解决），postponed（推迟解决，external，fixed（修复），won&#8217;t fixed，（无法修复）by design（设计引起），not repro（不重现），closed（关闭）），并且一定要进行确认和跟踪。</p>
<p>　　要求测试人员详细的记录测试过程，特别是错误描述要清楚（特别是错误情况出现的操作步骤）。</p>
<p>　　对测试人员的工作进行检查，并结合测试记录和测试过程对每个测试人员的工作进行考核与评价。</p>
<p>　　6、测试反馈</p>
<p>　　将测试中发现的BUG反馈给该项目（模块）的负责人，由负责人对该BUG进行定位，并由相应的设计人员进行修改，如果测试人员发送的BUG并非该测试模块的BUG，则由该负责人转发给相应的负责人，由其定位，并指派设计人员修改。</p>
<p>　　7、测试问题处理</p>
<p>　　测试结束后，测试过程中发现的所有BUG，都应将其统计汇总，标识出当前的状态，其中经再次测试已经关闭的不再说明，其它所有未关闭的均应说明理由，并与开发部门讨论，由技术负责人给出结论（是否解决或延期解决），并要经过技术副总审批。</p>
<p>　　8、测试分析</p>
<p>　　测试完毕，整理测试文档，测试负责人并编制〈测试过程说明〉、〈测试总结报告〉；每个测试人员提交在该测试项目的〈测试体会〉给<a onclick="javascript:tagshow(event, '%D6%CA%C1%BF%B9%DC%C0%ED');" href="javascript:;" target=_self><u><strong>质量管理</strong></u></a>部经理，作为部门人员评价的依据。测试负责人将每个测试人员的测试记录（所发现的BUG）汇总并分析，得出该软件项目的BUG分布表，作为评价该软件项目的依据。</p>
<p>　　9、总体评价</p>
<p>　　根据测试的全部过程及测试记录以及测试分析，对该项目得出综合的评价，确认软件系统的可用性，并提出对该项目的意见与建议，决定是否发版，进入发版控制流程。</p>
<p>　　10、质量目标</p>
<p>　　通过<a onclick="javascript:tagshow(event, '%B2%E2%CA%D4%B9%DC%C0%ED');" href="javascript:;" target=_self><u><strong>测试管理</strong></u></a>工作的加强，力求在测试阶段尽可能多的发现软件错误与缺陷，尽可能少的将问题带给用户，确保软件的质量及其可靠性，提高用户满意程度，使作为质量管理中心的质量管理部真正的把好产品的质量关，尽量在测试阶段发现软件错误和软件缺陷。</p>
<img src ="http://www.cnitblog.com/stomic/aggbug/62168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2009-10-28 01:32 <a href="http://www.cnitblog.com/stomic/archive/2009/10/28/62168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试环境管理规范</title><link>http://www.cnitblog.com/stomic/archive/2009/10/27/62151.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Tue, 27 Oct 2009 03:20:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2009/10/27/62151.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/62151.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2009/10/27/62151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/62151.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/62151.html</trackback:ping><description><![CDATA[<div id=articlebody>
<p><strong>1. <a onclick="javascript:tagshow(event, '%B2%E2%CA%D4');" href="javascript:;" target=_self><u><strong><font color=#000000>测试</font></strong></u></a>环境重要性及意义</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、稳定、可控的测试环境，可使测试人员花费较少时间完成测试用例的执行；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、 可保证每一个被提交的缺陷被准确的重现；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、经过良好规划和管理的测试环境，可以尽可能的减少环境的变动对测试<a onclick="javascript:tagshow(event, '%B9%A4%D7%F7');" href="javascript:;" target=_self><u><strong><font color=#000000>工作</font></strong></u></a>的不利影响，并可以对测试工作的效率和质量的提高产生积极的作用。</p>
<p><strong>2. 测试环境搭建原则</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试环境搭建之前，需要明确以下问题：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、所需计算机数量，以及对每台计算机的硬件配置要求，包括CPU的速度、内存和硬盘的容量、网卡所支持的速度等；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、部署被测应用的服务器所必需的<a onclick="javascript:tagshow(event, '%B2%D9%D7%F7%CF%B5%CD%B3');" href="javascript:;" target=_self><u><strong><font color=#000000>操作系统</font></strong></u></a>、<a onclick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" href="javascript:;" target=_self><u><strong><font color=#000000>数据库</font></strong></u></a>管理系统、中间件、WEB服务器以及<a onclick="javascript:tagshow(event, '%C6%E4%CB%FB');" href="javascript:;" target=_self><u><strong><font color=#000000>其他</font></strong></u></a>必需组件的名称、版本，以及所要用到的相关补丁的版本；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、用来执行测试工作的计算机所必需的操作系统、数据库管理系统、中间件、WEB服务器以及其他必需组件的名称、版本，以及所要用到的相关补丁的版本；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、是否需要专门的计算机用于被测应用的服务器环境和<a onclick="javascript:tagshow(event, '%B2%E2%CA%D4%B9%DC%C0%ED');" href="javascript:;" target=_self><u><strong><font color=#000000>测试管理</font></strong></u></a>服务器的环境的备份；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、测试中所需要使用的网络环境；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6、执行测试工作所需要使用的文档编写工具、测试管理系统、<a onclick="javascript:tagshow(event, '%D0%D4%C4%DC%B2%E2%CA%D4');" href="javascript:;" target=_self><u><strong><font color=#000000>性能测试</font></strong></u></a>工具、缺陷跟踪管理系统等软件的名称、版本、License数量，以及所要用到的相关补丁的版本。对于性能测试工具，则还应当特别关注所选择的工具是否支持被测应用所使用的协议；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7、测试数据的备份与恢复是否需要；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8、模拟实际生产环境或用户环境搭建。</p>
<p><strong>3. 测试环境管理</strong><br>一、设置专门的测试环境管理员</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每条业务线或测试小组应配备一名专门的测试环境管理员，其职责包括：</p>
<p>&#252; 测试环境搭建。包括操作系统、数据库、中间件、WEB服务器等必须软件的安装，配置，并做好各项安装、配置手册编写；</p>
<p>&#252; 记录组成测试环境的各台机器硬件配置、IP地址、端口配置、机器的具体用途，以及当前网络环境的情况；</p>
<p>&#252; 完成被测应用的部署，并做好发布文档的编写；</p>
<p>&#252; 测试环境各项变更的执行及记录；</p>
<p>&#252; 测试环境的备份及恢复；</p>
<p>&#252; 操作系统、数据库、中间件、WEB服务器以及被测应用中所需的各用户名、密码以及权限的管理；</p>
<p>&#252; 当测试组内多名成员需要占用服务器并且相互之间存在冲突时（例如在执行性能测试时，在同一时刻应当只有一个场景在运行），负责对服务器时间进行分配和管理。</p>
<p>二、测试环境文档管理</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需要维护如下文档是最新版本：</p>
<p>&#252; 组成测试环境的各台计算机上各项软件的安装配置手册，记录各项软件的名称、版本、安装过程、相关参数的配置方法等，并记录好历次软件环境的变更情况；</p>
<p>&#252; 组成测试环境的各台机器的硬件环境文档，记录各台机器的硬件配置（CPU/内存/硬盘/网卡）、IP地址、具体用途以及历次的变更情况；</p>
<p>&#252; 被测软件或产品的发布手册，记录被测软件或产品的发布/安装方法，包括数据库表的创建、数据的导入、应用层的安装等。另外，还需要记录历次被测软件或产品的发布情况，对版本差异进行描述；</p>
<p>&#252; 测试环境的备份和恢复方法手册，并记录每次备份的时间、备份人、备份原因（与上次备份相比发生的变化）以及所形成的备份文件的文件名和获取方式；</p>
<p>&#252; 用户权限管理文档，记录访问操作系统、数据库、中间件、WEB服务器以及被测软件或产品所需的各种用户名、密码以及各用户的权限，并对每次变更进行记录。</p>
<p>三、测试环境访问权限管理</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 按照如下要求维护测试环境权限：</p>
<p>&#252; 访问操作系统、数据库、中间件、WEB服务器以及被测软件或产品等所需的各种用户名、密码、权限，由测试环境管理员统一管理；</p>
<p>&#252; 测试环境管理员拥有全部的权限；</p>
<p>&#252; 除对被测软件或产品的访问权限外，一般不授予开发人员对测试环境其他部分的访问权限。如的确有必要（例如查看系统<a onclick="javascript:tagshow(event, '%C8%D5%D6%BE');" href="javascript:;" target=_self><u><strong><font color=#000000>日志</font></strong></u></a>），则只授予只读权限（user权限）；</p>
<p>&#252; 除测试环境管理员外，其他测试组成员不授予删除权限；</p>
<p>&#252; 用户及权限的各项维护、变更，需要记录到相应的&#8220;用户权限管理文档&#8221;中。</p>
<p>四、测试环境变更管理</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确保每次变更是可追溯和可控：</p>
<p>&#252; 测试环境的变更申请由测试人员提出邮件申请，由测试环境管理员负责执行。测试环境管理员不接受非正式的变更申请（例如口头申请）；</p>
<p>&#252; 对测试环境的任何变更，测试负责人均应记入相应的文档；</p>
<p>&#252; 每次变更相关的变更申请文档、软件、脚本等均应保留原始备份，作为配置项进行管理；</p>
<p>&#252; 对于被测软件或产品的发布，开发人员负责打包、测试人员核对发布包。</p>
<p>五、测试环境备份与恢复</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、确保测试环境程序版本、数据是可恢复；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、对于功能或性能测试，测试数据需定期进行备份或从生产环境导入测试数据；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、通过备份软件工具备份数据，同时保障备份数据可快速恢复。</p>
<p><strong>4. 测试环境维护执行流程附件</strong><br>1、测试机器申请流程</p>
<p>2、测试机器维护列表格式</p>
<p>3、测试环境部署文档维护列表格式</p>
<p>4、发布手册维护列表格</p>
</div>
<img src ="http://www.cnitblog.com/stomic/aggbug/62151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2009-10-27 11:20 <a href="http://www.cnitblog.com/stomic/archive/2009/10/27/62151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>研发测试团队建设浅谈</title><link>http://www.cnitblog.com/stomic/archive/2009/10/27/62150.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Tue, 27 Oct 2009 03:07:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2009/10/27/62150.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/62150.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2009/10/27/62150.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/62150.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/62150.html</trackback:ping><description><![CDATA[团队建设是个很大的话题，也是组织管理工作中的重点和难点。本人曾在某大型IT公司从事过测试团队管理多年，就管理实践中的一些心得和体会与大家分享。
<p>　　相对于开发工作来说，测试一直被认为技术含量低且枯燥无味，从事测试工作的人员对测试工作也普遍没有职业认同感，在我所在的测试团队中就经常可以听到&#8220;测试工作没前途&#8221;、&#8220;测试就是打杂的&#8221;、&#8220;真后悔当初没有找个开发工作&#8221;等等抱怨，整个团队受这种气氛的影响也是一直士气低下直接导致项目的测试工作进展受阻、测试质量下降、客户投诉上升。相信这种状况也在其他公司的测试团队出现过，仔细观察和思考，其实不难发现测试团队普遍存在以下的几个问题：</p>
<p>　　第一，测试人员职业认同感低。硬件开发工作可以把设计出来的电路板做为输出成果，软件开发可以把具体程序的实现作为输出，而测试只有结果报告和BUG数量，测试工作的成果不好体现。并且，国内很多公司往往不重视测试，每当项目结束论功行赏时，测试团队总是被忽视。另外，测试工作既辛苦又无聊，往往没什么人愿意做测试，而暂时做着测试工作的人员也是隔山望水，盼着早日脱离测试苦海。</p>
<p>　　第二，测试人员对测试技术的认识存在误区。测试团队一般会安排刚进入公司的新人进行测试工作以了解产品。这就给大家带来了一个错觉：测试都是没啥技术含量的活，是人都会干的事。设想一下，一个人每天干着自认为没意义的事，他会有提高、会有进步的动力吗?</p>
<p>　　第三，测试团队成员不知道如何学习，找不到正确的学习方法。测试人员一般都比较敏感，具有很强的发现缺陷的能力，他们能找出应用系统缺陷的能力，也能找出自身在工作中的不足。这些不足包括基础知识的不全面，也有测试技术的欠缺。面对这么多需要学习的方面，感到困惑，不知道先从哪里入手，也分不清学习的重点和难点。遇到问题，可能就直接找其他人员求助，失去了锻炼自己思考学习能力的机会。</p>
<p>　　从以上几个问题，我们可以看到测试团队管理的核心其实是人，只要抓住了这个关键点，就能很顺利的将整个团队调动起来。抛开团队建设中同样重要的制度和流程建设不提，下面将结合本人多年的实践做法谈谈如何建设一支高效的测试团队。</p>
<p>　　首先，要确立测试团队成员在这个组织中的职业规划图，也是就是个人Roadmap。基于这个Roadmap 再确立各个角色的职责以及各角色之间的相互联系和发展顺序。这样各测试团队成员的发展目标也随之确立。下图的Roadmap就是我所在测试团队实际使用的团队成员Roadmap方案。</p>
<p align=center><img src="http://www.chinardm.com/info/upload/2009810172335727.jpg" border=0></p>
<p>　　我们把整个测试团队分为五个等级，每个等级都对应测试团队中的相关角色，每个等级都有详细定义的能力要求。整个团队职位的发展顺序同时随着能力的要求逐步理清。通过这个图，基本可以避免优秀测试人员在某个职位停滞不前的问题，目的就是实现团队成员达到哪个能力等级就做哪个能力要求职位的事。比如，第二等级的能力要求定义是完全知道怎样测试并能够根据测试用例独立执行测试工作，第三等级的能力要求定义是能分析问题的原因所在、能监控和管理其他测试工程师的工作。因此，当某成员的技术和经验达到第三等级的能力要求时，就可以安排他作为测试项目的核心组成员或测试负责人(Test Lead)。</p>
<p>　　在这个职业路标规划的指导下，我们可以要求每个团队成员制定自己的短期和长期目标，目标的制定可以是以一个项目时间为周期，也可以季度或年为周期。每个目标的实现就是团队的一个进步。目标就是团队成长的根本。</p>
<p>　　其次，构造团队的学习和交流的氛围。有目标也就有了压力，压力就会产生学习的动力，团队成员针对自己的规划，也会希望自己能够在团队中学习到更多的知识和技能。另外，高效的团队也要求每个团队成员的良好技能来达到高效的目的。因此，学习的氛围是高效的测试团队必不可少的。如何建立这种氛围可以尝试以下几个方法：</p>
<p>　　1. 组织资深测试人员定期在测试团队内部进行经常性的培训和测试经验交流，通过该渠道帮助资历浅的测试人员大幅提升业务技能，做到新老员工之间的知识传播和继承。可以建立部门的讲师制度，鼓励资深测试人员担任讲师，定期(每月或每季度)安排培训，并奖励优秀的讲师。</p>
<p>　　2. 在项目的间歇空闲期，安排测试团队成员进行技术专题研究，这个研究可以是某方面相关的新技术，新测试方法，也可以是其他技术基础知识的收集和积累。每个人都把收集或研究的结果做成演示文稿，在整个团队的培训中介绍自己的研究成功，一方面巩固了学习知识，更重要的是让整个团队成员拓展了知识面，达到了知识团队分享的目的。</p>
<p>　　3. 适度培训开发部门的基本知识，这样能减少与开发团队协同工作时的领域障碍。这里就需要团队负责人和开发部门建立交流机制，邀请其他部门经验丰富人员对测试人员进行知识的拓展。</p>
<p>　　再次，培养测试团队成员养成总结的习惯。弄清楚产生问题的原因，以便下次避免发生类似的问题，这不仅是一次学习，同时，及时对自己的工作进行总结是也一个非常良好的提升个人和组织能力的机会。在团队中建立 &#8220;总结&#8221;的氛围非常重要，测试发现的很多问题都是不经意间产生的，很多独特的测试方法也是在测试深入过程中灵感突发的产物，而记录并传承这些好的方法就需要有总结意识。总结也需要团队的分享，这样成员的经验才能提升为组织的经验。</p>
<p>　　管理是一门艺术，团队建设则是这门艺术的难点。有关测试团队的建设仍然还有诸如测试人员的考核等等诸多课题值得我们探讨和改进，但只要我们在团队建设中真正做到&#8220;以人为本&#8221;，再建立适合自己的流程和制度，相信您的团队一定离成功高效的团队不远了。</p>
<img src ="http://www.cnitblog.com/stomic/aggbug/62150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2009-10-27 11:07 <a href="http://www.cnitblog.com/stomic/archive/2009/10/27/62150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>