测试经验之谈
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何保障软件测试的质量?
我们定位这样一个角色:你是一名功能测试人员,在项目组负责某个子系统(或者说后台服务)的一个版本测试,该版本新增了功能,又修改了原有bug。没有规范的文档,你将如何测试?
有人是如此测试的:咨询一下开发修改了哪些功能,拿到手上开始根据开发提供的思路跑流程,测试通过,上生产。结果生产上造成很严重的问题,而这个问题产生的根源是开发改动了关联部分公共方法。同时作为测试,根本没有考虑到该版本的功能关联了哪些业务场景,所以也无法发现该问题。项目经理问责测试:作为对该系统测试了两年多的你,为何这么简单的问题都发现不了?测试用例写得这么粗糙。
这是我眼前的真实存在的一幕。我无法端坐在旁边,看着可怜的测试人员在无力解释,“我也发现了很多问题,你怎么就看不到?”“我们联调协调的很辛苦……”。我很想知道问题在何处?
思考良久,我知道某个人肯定有问题,但又不全是某一个人的问题。需求没有文档,开发没有设计思路,测试设计缺失,遗漏该功能的测试,最终问题在生产上“华丽丽”地暴露出来。姑且不论需求和开发的问题,我认为测试可以往前多走几步。
第一,一定要进行测试设计,站在用户的角度,进行测试设计。时间紧张时设计的粒度可以只到测试场景,预期结果中包括检查的点。有充分的时间还是建议编写规范的测试用例,描述清楚前提条件、操作步、预期结果、优先级等。
测试场景必须覆盖所有改动的功能点,而且一定要进行全流程测试。保证该功能的修改不会影响整条流程。
第二,一定要进行回归测试,这里的回归测试视情况而定,时间足够全量测试,时间不够,一定要对系统核心功能进行回归测试。例如金融行业的交易,回归测试场景必须包括的各类正常场景和重要的异常场景,保证版本上线以后,用户还能继续使用这些核心功能。回归测试需要对系统深入理解,判断用户核心业务场景。
第三,版本如何极大低影响性能,需加入负载压力测试、稳定性测试、大数据量测试。
第四,沟通,沟通,再沟通。把测试的场景全部列出来,给需求和开发过目,请他们协助判断一下是否有漏测,或者理解有误的地方。对于这种没有文档的项目,系统设计全部留在大家的脑海中,每个人理解可能都不完全一样,通过测试用例去统一大家的思路,保证我们测试的有效性。
第五,如果明知道该版本对功能影响范围较大,而市场或者项目经理又催得很紧,一定要告诉他们风险非常大,具体表现在哪些方面。这样他们经过仔细斟酌,如果得不偿失是绝对会支持你的,如果他们能够承担风险,就会考虑上线。
如何转做测试管理?
很多测试人向往做测试团队管理,结合最近参与面试测试管理角色的观察,简单总结下:
1. 眼高手低要不得
很多85后们目标都很明确:宁做管理不钻技术。有明确的目标是优点,但基础不扎实浮于表面的了解在管理一个技术团队时候想游刃有余,可以说不可能!
这点和开发团队管理一样,让一个外行架构师领导一群程序员,今天程序员说需要重构明天说接口要改,而架构师不懂只会要求继续赶工的团队想留住人很难!
2. 自信十足无实践经验易被识破
越来越多测试人胆子特别大,也开始擅长吹牛了,比如连个基本项目都没带过的就面试测试管理职位,不能说不好,至少说明有自信愿意尝试。但是现实是,几个实践问题问过就知道不能胜任,见过猪跑跟吃过猪肉还是两码事,所以要做管理还是踏实在公司内部锻炼过再跳吧。
3 混淆项目管理和测试团队管理
作为一枚测试人负责一个产品的测试甚至负责协调沟通所有此项目相关的合作,这只能算作带项目,比如项目的进度控制,产品需求review,产品测试报告分析,自动化测试技术等等。
而测试团队的管理分两类:一类测试管理者兼职某一项目的测试任务,同时负责团队管理,包括但不仅限于团队建设、资源平衡、招聘面试、跨团队跨角色沟通协调、团队成员的绩效考核、团队成员导师角色,最重要的是建立质量控制流程并持续优化升级;另一类就是纯管理角色,不参与一线测试,仅负责协调沟通、团队管理。互联网业里前一类人更多,后一种人几乎和流行的敏捷管理合二为一了。
总结需要以下几个主要方面:
1. 主动承担更多任务
比如负责某一项目的测试,做到可以独立完成一个项目的所有测试任务。
2. 掌握若干关键技术
至少有一项突出,成为这一块的顾问角色,也就是大家遇到这类问题第一个想到咨询的人是你,无论业务还是高深技术研究。
3. 学习一些人力资源管理的经验
学习团队建设,与人相处的技巧等,向上管理向下管理都要学,只要不是老板一把手,测试管理者都是夹缝里求生存的。
4. 跟对人
对普通被领导的测试人来说,跟对人很关键,看看自己想往哪方向发展,那么就向哪个类型的领导学习,不要小瞧潜移默化的威力。
5. 等待时机
公司内部锻炼是最佳途径,积极寻求培训等机会。没有实践经验而直接空降新公司不说能不能hold住团队成员,业务再不熟悉,无数坑等着你踩,无数黑锅等着你背呢。
任何一个角色都不容易,一分付出一分收获,一分责任一分回报。做技术管理离不开技术,钻研技术会管理百益无害。做了领导就请学会保护下属,才会让下属死心塌地,离开后都会念念不忘的,那么你就真正地转成功了。
个人信奉无为而治,一个优秀的领导自带气场,可以让团队成员安心做事的管理者才能算上合格的管理者。
产品经理如何进行测试?
产品经理,作为一个需要多种技能加身的岗位,在一些人员配备不足的公司中,可能需要同时担任产品和测试两个工作。当我们完成了产品经理撰写文档,评审,跟进开发工作后,最终拿到开发人员提交的版本,应该如何在测试中尽可能多的发现bug和不符合产品需求的地方?关于如何更好完成测试工作,我有十个方法分享给大家。
1.UI设计测试:页面所包含的所有字段,图片,图标等界面元素,产品经理要和设计人员一起根据设计要求进行验收和反馈。
2.测试用例测试:根据prd撰写测试用列(可按照正常流程/异常流程/分支流程,并使用因果图法遍历功能),测试用例需要遍历所有功能,测试时根据测试用例进行,也更方便进行bug的定位。
3.错误推测法:根据经验和直觉推测出可能会出现的bug,并对此设计测试用例,作为补充测试用例的一种方式。
4.字符测试:根据特殊字符,长度,表情,中英文,符号,阀值限制等要求进行输入测试。
5.缓存测试:从缓存的数据和大小(峰值设置),缓存时间,缓存环境(有无网络),缓存存储方式等几个方面进行。
6.最多/少数测试:阀值,观察系统的反应及显示(一般指压力测试,需借助一些平台进行操作)。
7.多环境/外部环境测试:同一系统不同版本,不同屏幕分辨率,不同厂家设备,GPS(关闭或不佳),摄像头,加载时长等情况的测试。
8.准确性测试:搜索数据结果的相关性和准确性。
9.排序测试:根据产品设计规则,进行排序测试和调整。(包括消息列表,产品列表,时间等)
10.账号测试:账号首次登录,新建账号登录,同一账号不同机型多次登录,同一设备不同账号登录时数据显示情况测试。