我们是软件工程第五小组,对此次爱好圈网站的QA和测试工作采取的方法借鉴敏捷开发,要求每天有反馈每天有总结每天有进步。
一、QA
尽早测试、频繁测试,及时提供反馈;要求团队对软件产品的质量负责,而不是某一个人;工作在多个迭代;要对当前任务进行验收测试;和小组成员对实现测试自动化;还要和小组成员结对分析下一个迭代,编写验收标准和测试用例。QA参与整个生命周期,在每个阶段都会发挥作用。需求分析,业务场景和验收测试的确认;拆分测试任务,在每个故事开发估算基础上考虑测试的时间和估算;和小组成员结对实现自动化测试,和团队沟通发现的问题和缺陷;验收以提供快速的反馈;同时还要对测试进行确认和提出反馈;QA除了要独立进行测试,通常还需要跟不同的角色结对;
我们小组QA需要在参与的每个阶段提出自己的建议;不仅要验证设计是否满足需求,还要发现需求是否能真正体现目的,分析是否有不恰当或缺失的需求,发现风险,并将风险与团队沟通;及时向团队提供关于产品质量的反馈,便于调整;在每个迭代结束时候,分析统计该迭代的缺陷,并结合测试对系统质量的了解,及时跟团队反馈,讨论分析原因并尽快作出改进,鼓励团队再接再厉。QA参与开发流程的每个阶段,协助团队从内部提升质量,让质量融入到产品开发中来。主动验证质量目标并及时说出自己的想法,编写测试计划,列出需要执行的活动并进行估算,测试的能力和对测试工具的基本了解,在团队内部进行知识分享,协助整个团队参与到测试活动中来,持续提供并获取反馈。
一、因为我们小组采用了敏捷方法,则需要做更多的软件测试。
指出软件行为可能带来的风险,以及如何规避这些危险和风险。没有正式说明文档的条件下展开软件测试、进行实时测试、测试改动代码、根据不断变化的需求进行测试。采取主动,尽快测试,工作速度与效率与团队保持一致,强调完整团队。小组成员坐在一起交谈;参加各种会议,不断地进行软件测试,并提供反馈意见。整个团队都要对质量负责,整个团队对质量问题的一致认同,整个团队对产品的质量负责。设计时考虑到易测试性,测试同步,编写单元测试,使用QQ公告栏进行规划,详细考虑业务流程 ,使用实例,先进行验收测试 。
开发和测试是团队的工作。每个小组成员除了能够做好本职测试工作外,愿意并能够做超出原有范围的工作,能够并愿意帮助其他成员解决其他复杂问题,实现团队的共同目标。小组人员能够主动发现并弥补团队中的重要缺失的环节,帮助团队其他成员完成工作任务。在时间紧迫的情况下,小组成员能转变成其他角色,充分地发挥了个人战斗力,在帮助他人的同时,自信的态度和各项工作中的技能得到增强,自身也可以获得更大发展。我们小组也要确保开发任务的按时推进,在测试任务紧要时,也能够转变其职能帮助测试团队完成测试任务。除此之外,团队的每个成员,都应该认真学习并努力寻找适合自己团队的敏捷模式,并沟通以达到团队成员对敏捷开发模式的统一认识,使得团队其他成员对自己工作的充分理解和建立起成员之间的相互信任。
当我们小组没有做单元测试或做得太少,继而在开发过程中的遗留了大量质量缺陷时。
我们首先开始采用测试驱动开发,列出需求,为需求撰写一个单元测试脚本,写代码以使得先前的测试可以通过,当所有测试通过了,便可以开始写下一个测试脚本,针对需求有效的实现所有测试脚本,尽早的开始测试,开始系统测试。
了解计划中的待实现的功能,设计系统测试和功能测试用例。测试执行的先是部分功能的,之后逐步扩展。接着开始采用迭代的过程完成测试任务,即将测试任务划分为多个周期,一开始可以做些关键的功能性测试,可以对代码中的可复用部分做完整的安全测试,性能测试。最后,要学会做静态测试,做好需求分析,做好对设计逻辑的分析,了解开发,需要读懂代码,因人而异的安排工作。将学习能力强的同事放到新技术含量最高的敏捷团队中,代码经验丰富的同事放到做底层架构的敏捷团队中,这样来以达到我们小组的最佳组合与配置。
采用会议以外的方法,如电话,即时通讯,邮件来弥补差异的障碍。在我们的深刻体验中,建立起通畅的即时通讯,和信息共享的数据库空间是项目成功的不可或缺的因素。而团队成员之间经常的感情交流,更能够促进团队间的相互信任和润滑之间的摩擦从而加快沟通。
除了鼓励团队的自我管理,自我建设外,在初期帮助分布在不同地域的团队间建立一些官方交流通道是非常有帮助的。初期就找出能够被多方接受的稳定的定期的会议时间和其他有效沟通方式,建立起活动经费经常用于组织团队之间的各项增进感情交流的活动。另外,帮助团队的成员依据团队整体工作时间的最佳的安排和改变个人的正常工作时间的也或许成为必要的选择之一。
敏捷团队的管理者,有义务和责任帮助各个团队建立起适量的工作计划,动态调整团队的工作任务,以保障整体的稳步前进。关注团队压力承受能力的提高和合理分配团队的工作计划,时间,从长远看来,对团队成员的工作效率和团队的工作绩效的提高具有非常重要的作用。团队间的协作因为各个团队具有较为独立的活动能力和决策力,团队成员通常更关注所属团队的责任范围内工作,无论是开发人员还是测试人员都潜意识的将依赖于其他团队开发和测试的工作放到靠后的开发周期,寄希望于所有需要的前提和依赖条件最终一定得到解决,而那时后再开始这部分工作也不迟。因此,这种弱势的团队协作成为项目进度不能保障的罪魁祸首。
在我们项目中,也曾经因为某些组件间接口定义时没有做好统一规划,以致产品整合阶段测试和开发进展非常缓慢,问题现象频繁出现,团队的士气受到了极大的伤害。因此作为敏捷团队,应该更早的暴露接口缺陷,来设计适量的测试用例覆盖这部分的活动,除了项目管理层通过干预手段解决这部分问题外,鼓励团队成员主动承担额外的工作也是做好协调团队间工作,降低总体风险的最佳途径。
来源:https://www.cnblogs.com/huohuoya/p/12152223.html