1.什么是同行评审
同行评审是一种通过作者的同行(开发、测试、QA等)来确认缺陷和需要变更区域的检查方法。
一、计划阶段
1.项目负责人指定组织者;作者自检工作产品;组织者规划本次评审,制定Review Plan
2.检查入口准则:是否符合文档标准?是否已用工具检查?代码<=500行;文档<=40页;……
3.准备评审包:评审通知单;待Review产品;参考资料;评审表单(Review Form);评审计划(Review Plan);
4.确定评审专家3—6人,选取原则: 评审对象所处生命周期上一阶段、当前阶段和后一阶段的参与者(就是和评审对象相关的人)
5.组织者将评审包、评审通知单发给相关人员
二、介绍会议(*可选)
1.不了解流程以及产品技术难度较高,技术较新时,由专家提出,作者讲解相关产品及流程
2.时间不超过1小时,30-60分为宜
三、准备阶段(最重要、发现缺陷最多)
1.评审专家个人独立完成工作产品的审视,提出缺陷,填写评审表单;反馈评审表单给组织者
2.准备时间大于会议时间,且应于会议前2天开始
3.组织者:汇总并检查评审表单;裁决是否需要增加评审投入(增加准备时间;增加评审专家人数;更换评审专家等)
四、Review会议(只提问题,不关注解决)
1.组织者召开评审会议(不能是作者)
2.讲解员讲解工作产品(不能是作者或组织者)
3.大家共同确认问题(评审表单中记录的问题;会上发现的问题),由组织者作裁决
4记录员记录所有的问题,并发给组织者
5.组织者更新评审表单(问题确认、问题根源、预防/修正措施)
五、第三小时会议(*可选)
在Review会议上未解决或有争议的问题,由作者决定是否召开
六、返工
作者修改工作产品,更新评审表单
七、跟踪
1.组织评审专家确认各缺陷得到了修改,并且没有引入新的缺陷;
2.协助组织者确认相关问题得到了正确修改并且没有引入新的缺陷;
3. 汇总所有需要的数据到评审表单发给相关评审专家
4.是否重新Re-review
如何提高同行评审的质量与效率
1. 同行评审的种类和对象
同行评审活动的关注点应该是工作产品中的缺陷,而不应该是工作产品的作者或者生产者,管理者也不应使用同行评审的结果去评价个人的行为。
同行评审的分类有很多种,自从IBM的Fagan发明了同行评审之后,软件行业提出了很多同行评审模型,比较著名的有IEEE 1028评审、微软的技术评审、Gill Graham审查、Van Emden审查、Yourdon结构化走查等。
1.1 同行评审的种类
本书中按照CMMI模型的提法,将同行评审分为3类。
(1)正式评审(Inspection),通常是由经过同行评审培训的项目经理或PPQA主持,规模在3~7人之间为宜,一般在完成了一个工作产品后对其进行的评审。正式评审的目的在于定位并除去工作产品中的缺陷。
(2)技术审查(Technical Reviews),或称内部评审,通常由技术负责人或项目经理召集,三人以上参加。技术审查一般是在工作产品的中期进行或完成了某部分独立的工作产品时进行,也可在书写草案遇到问题时就其中专门的一两项问题讨论和审查。也可以是检查工作产品与规程、模板、计划、标准的符合性或者变更是否被正确地执行。技术审查的目的在于通过对开发人员的工作产品的技术审查,提出改进意见。
(3)走查(Walkthrough),又叫代码走查或代码走读,审查的范围根据需求的优先级通常由管理人员来确定,主要是静态质量分析和编程规则检查。通常是小型讨论会,一般是在工作产品形成的早期进行,作者有一定的想法时,希望从中获得一些帮助或补充一些想法。当然也可以在编制工作产品的任何阶段进行,两三个人参加,由作者主持,主要是评估和提高工作产品的质量或教育参加者。
其中,"正式评审"是正式的,"技术审查"和"走查"是常用的非正式同行评审方法。
1.2 同行评审的对象
同行评审的对象包括所有软件开发的中间和最终工作产品,例如包括:
(1)产品需求规格说明书;
(2)用户界面规范及设计;
(3)架构设计、概要设计、详细设计及模型;
(4)源代码;
(5)测试计划、设计、用例及步骤;
(6)项目计划,包括开发计划、配置管理计划和质量保证计划等。
所有这些会涉及的评审内容,应该在编制的项目计划或者小的开发计划中体现,不应该也不能是临时性的安排。
2. 同行评审过程
根据同行评审的重要程度,正式评审、技术审查和走查三种形式的流程和成果物的使用力度不尽相同,但其主要的步骤和内容大体一致,参见如图4-2所示的同行评审流程图。
教师职称评审程序有哪些
※中学高级教师职务评聘程序:
申报程序
1)、符合基本任职条件的教师向本人所在学校的聘任委员会提出申请,填写《上海市中学高级教师职务任职资格申报表》。
2)、申报人提交申报材料:岗位聘书、学历证书、学位证书、教师资格证书、教师职务培训结业证书、外语考试合格成绩、职称计算机考试合格证书、各种获奖证书以及反映本人教育教学情况、教育教学研究水平的有关材料(已有随堂听课鉴定意见和论文鉴定意见的一并附上)。
3)、申报材料应在聘任委员会指定场所公开展示至少五个工作日。
4)、聘任委员会审核申报材料,并写出书面审核意见,由聘任委员会主任签名并加盖学校公章。
评审程序
1)、聘任委员会根据申报材料,结合平时的考核情况,对申报人的师德修养与工作业绩、教育教学能力在充分讨论的基础上以无记名评分形式提出评价意见。评价意见分为优秀(A)、达标(B)、基本达标(C)、尚未达标(D)四等。然后将申报人的材料按评价分值排序,报送有关部门。
2)、有关部门受理学校提供的材料后,将申报人指定的论文送上海市教育评估院鉴定(论文鉴定工作也可在申报前进行)。其他材料送有关高评委。
3)、高评委学科评议组专家对申报人进行随堂听课(随堂听课也可在申报前进行)。
4)、高评委学科评议组综合评议。学科评议组审阅申报人的申报材料包括学校聘任委员会的评价意见、上海市教育评估院组织的同行专家论文鉴定意见、学科评议组专家随堂听课鉴定意见;对申报人进行专业答辩或面试,根据需要还要参加笔试;对申报人的师德修养与工作业绩、教育教学能力、教育教学研究水平等方面进行综合评议。
学科评议组以无记名投票表决形式提出综合评议意见后,报高评委审定。
5)、高评委在讨论后以无记名投票表决形式做出审定意见。
6)、高评委将审定通过人员名单送市人事局上网公示,上网公示结束,将评审结果通知学校。
7)、市人事局对公示无异议人员统一颁发上海市专业技术职务任职资格证书。
聘任程序
1)、聘任委员会将学校岗位空缺情况在本区教育系统公布。
2)、具有中学高级教师职务任职资格的人员,根据招聘学校的岗位情况和岗位要求,向该校聘任委员会提出应聘申请,并提交有关材料。
3)、聘任委员会根据学校发展需要和应聘人员的情况,提出拟聘名单。在同等条件下,本校教师可以优先考虑。
4)、聘任委员会将拟聘名单在校内公示至少5个工作日。
5)、校长聘任,颁发聘书。
聘任应按《上海市人民政府关于印发上海市事业单位聘用合同办法的通知》(沪府发[2003]4号)精神执行。
※
中等专业学校高级讲师职务评聘程序
申报程序
1)、符合基本任职条件的教师向本人所在学校的聘任委员会提出申请,填写《上海市中等专业学校高级讲师职务任职资格申报表》。
2)、申报人提交申报材料,包括各类证书和考试成绩以及反映本人教育教学情况、教育教学研究水平的有关材料(已有随堂听课鉴定意见和论文鉴定意见的一并附上)。
3)、申报材料在聘任委员会指定场所公开展示至少五个工作日。
4)、聘任委员会审核申报材料,并写出书面审核意见,由聘任委员会主任签名并加盖学校公章。
评审程序
1)、聘任委员会根据申报材料,结合平时的考核情况,对申报人的师德修养与工作业绩、教育教学能力在充分讨论的基础上以无记名评分形式提出评价意见。评价意见分为优秀(A)、达标(B)、基本达标(C)、尚未达标(D)四等。然后将申报人的材料按评价分值排序,报送上海市教育评估院。
2)、上海市教育评估院受理学校报送的材料后,将申报人指定的论文组织同行专家鉴定(论文鉴定工作也可在申报前进行)。
3)、高评委学科评议组专家对申报人随堂听课(随堂听课也可在申报前进行)。
4)、高评委学科评议组综合评议。
学科评议组审阅申报人的申报材料包括学校聘任委员会的评价意见、同行专家论文鉴定意见、学科评议组专家随堂听课鉴定意见;对申报人进行专业答辩或面试(必要时,也可增加笔试);对申报人的师德修养与工作业绩、教育教学能力、教育教学研究水平等方面进行综合评议。
学科评议组以无记名投票表决形式提出综合评议意见后,报高评委审定。
5)、高评委在讨论后以无记名投票表决形式作出审定意见。
6)、高评委将审定通过人员名单送市人事局上网公示,上网公示结束,将评审结果通知学校。
7)、市人事局对公示无异议人员统一颁发上海市专业技术职务任职资格证书。
聘任程序
1)、聘任委员会公布学校岗位空缺情况,有条件的可以向校外公布。
2)、具有中等专业学校高级讲师职务任职资格的人员,根据招聘学校的岗位情况和岗位要求,向该校聘任委员会提出应聘申请,并提交有关材料。
3)、聘任委员会根据学校发展需要和应聘人员的情况,提出拟聘名单。在同等条件下,本校教师可以优先考虑。
4)、聘任委员会将拟聘名单在校内公示至少5个工作日
大虾们,有没有关于对windows应用程序进行软件测试的建议和意见啊?比如说好的测试软件?好的脚本语言?
如果你是要自动化测试,那么QTP做功能,Loadrunner做性能是可以的。
不过功能测试很少能完全不用手动的;而且即使自动化测试也要编写脚本,就涉及到测试哪些功能,如何编写脚本来测试。这一切都离不开不软件功能和使用流程的了解和熟悉。
如果测试人员全部都是非常熟悉软件的功能的使用的人,可以让他们用自己的使用经验和知识来测试,否则就最好一步步走流程,测试需求定义,测试案例开发,同行评审,开发、业务评审(评审案例),测试执行,等等。
我35岁了,还能做程序员吗?
中国程序员不能超过35岁,似乎已经是不争的事实,国外却不一样,40、50岁仍然作开发工作的大有人在,为何会有如此差异呢?
在中国,程序员不能超过35岁,似乎已经是不争的事实,软件开发工作就是青春饭,顶多靠毕业这十年的时间,超过这个年龄,要不成功跃身成为管理者,要不转行进入其他领域,好像再没有更好的选择,即使偶有继续坚持作开发的,也被看成另类一族。老外却不是这样,40,50岁仍然作开发工作的大有人在,甚至很多牛人,包括获得康柏最佳软件奖的Robber,仍在埋头作着他所喜欢的编码工作,为何如此差异。我仔细想了一下,特别是这一年参加了太多的技术培训,基本有了一些结论。
首先,国内软件开发工作的性质决定这一切。我们所作的产品开发,真正技术含量并不高,高等院校毕业的学生经过几年的培训和实践,基本都能掌握这些技能。而我们现有产品开发设计水平有限,对于软件开发的理解还仅限于编码,完成功能这些基本的需求,产品进度是第一驱动力,特别是一些小公司,把快速开发出产品作为最高目标,软件设计质量差,很少考虑可维护性、可扩展性这些重要的软件质量属性,仅仅追求功能和进度,产品以最快的速度完成设计、编码,少有测试甚至没有测试,就直接交付给客户。当在客户那里暴露出各种各样的问题来时,开发人员就开始不断的为客户解决这样那样的问题。软件做到最后,很多人都会陷入自己不断挖掘出来的“陷阱”里走不出来,步入在复杂的系统中查找BUG、解决BUG、增加功能、引入新的BUG、再解决BUG这样永无休止的恶性循环中,从事的都是一些低级开发工作,对于软件开发的理解无法上升到更高的层次,每天都疲于救火和拼命打补丁,软件维护成本居高不下;即使最终摆脱了这样的厄运——项目结束,下一次软件开发又是同样过程的重复。
这些无休止的低级开发和维护工作,会耗光一个人所有的激情和精力,随着年龄的增大,热情和体力都在衰减,而这些工作,只要毕业生经过培训,同样可以胜任。有着廉价的、并且充满热情的毕业生作竞争,身心疲惫的老程序员必然面对更大的竞争压力,做到最后,连他们自己都会失去对软件开发的兴趣,甚至会产生厌倦的情绪。对于这样的快速开发模式,十年开发经验和五年开发经验有很大区别吗?干吗不使用更经济便宜的开发人员?
另一个原因,是我们中国人一向的官本位思想。开发人员始终处于一种很尴尬的境界,听起来从事的是高级技术工作,说起来也是“以人为本”,但是,有多少企业管理者真正重视和认可开发人员的,哪怕是硕士,博士,这些开发人员在“大官,小官”面前,都只是普通劳动者而已。程序员是一个没有未来的行业,哪怕资历再深,能力在强,也还是一个劳动者而已,只有当上领导,走上管理才是最终的出路,否则,薪水上不去,地位上不去,只能面对被淘汰的命运。
实际,之所以出现这种问题,是由于国内对软件开发一直抱有一种错误理解。如果软件开发仅仅是代码编写,查找BUG,可以说,那确实是在做一些低级的软件行为。做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以作,而且有更大的热情和精力。
软件业要发展,就应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。我们要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性。同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍的效率。
软件开发,不仅仅需要关注功能、性能,更应该去研究可维护性、可扩展性等质量属性;不仅仅只关注代码,而更要上升为设计,复用等。软件开发不能只是写出C语言的代码,单元测试、同行评审、培训与学习,这些都是开发人员基本的素质,也是提高软件质量的最基本手段;举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来,把开发人员解放出来;同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量;培训则是提高自身技术水平,从理论上提升自己的最好方法。现在基本上所有这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发、软件重构、模块化、系统构架、搭建统一软件平台、度量软件质量等等。有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量;软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚地把握到软件的开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。
以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。35岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一项浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中。既然选择了,既然喜欢了,就应该投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。
同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。
所以说,开发人员,决不只是35岁,只要你愿意,可以作一生的开发,从中获得更多的快乐
软件测试流程,在给我一个测试项目的例子
一般的软件测试流程是这样:
1.拿到需求说明书,开始对需求进行测试,找出需求中的问题或者说不可测的地方
2.需求测试通过后,根据需求说明书制定测试计划,包括测试策略、测试方法、测试周期等
3.然后根据软件功能说明书编写测试用例,一般的公司都是根据需求说明书进行编写
4.搭建测试环境,包括软件环境和硬件环境
5.根据测试用例进行测试,提交缺陷
6.回归测试
7.测试完成后,进行测试总结,编写测试报告
至于测试文档,我这倒是有cmmi标准的一些文档,如果你想要的话,可以留下邮箱,我发过去。
好了,都发过去了。
转载请注明出处51数据库 » 软件同行评审流程 软件测试评审流程