首先说说什么是软件测试,为什么要进行软件测试。ide
软件测试就是在有限的项目周期内进行软件测试活动,尽量和有效的发现软件存在的问题,并帮助开发人员解决这些问题,保证产品质量。性能
软件测试流程首先是设计测试用例,而后制定测试计划,组织测试人员执行测试用例,发现问题后开bug,在开发人员fix bug后,测试人员在去verify bugs,最后在产品release前,生成测试报告。测试
咱们follow这样的流程,是由于流程都是前人从不少经验中总结的出的想法,正确的流程能够帮助咱们更高效的组织工做,解决问题。虽然是相同的流程,但如何组织人员开展工做,却大不相同了。好比设计测试用例,。为何要设计测试用例,,对着文档测试不就能够了吗?测试用例很是重要,这是我到WR作测试工做时,学到的第一课。开始不甚理解,但随着工做的深刻,慢慢理解到第一,测试用例能够更清晰的描述产品的feature,当咱们制定一个测试计划的时候,选择哪些测试用例,就能够知道此次测试活动咱们测试了产品的哪些功能。第二,测试用例能够帮助咱们衡量工做量,跟踪项目的进度,有效地进行工做时间的分配。第三,t测试用例能够更好的反应咱们的test point,当咱们分析一个feature的时候,应该全方面的去想哪些地方须要测试,包括正面测试,负面测试 , 性能测试,兼容性测试等等。测试用例的优先级也是很是重要的。在WR的时候,都会针对一个bug的scenario来设计测试用例。设计测试用例毫不是对着文档copy/paste,这是一个思考的过程,体现了对产品的理解,软件的基础知识,测试经验和技巧。在WR时,当和经验丰富的测试人员(如manager)一块儿讨论新feature的测试用例时,我常常会在内心感叹“呀,原来能够这样测”或者“对,也要从这方面测一下”,对他们的经验和知识很是钦佩,也从中学到了不少。spa
再说制定测试计划。我参与的WR产品须要在多个版本的多个平台上进行测试,真的很是具备挑战性。项目的周期是固定的,如何在有限的时间内更多的保证产品的质量?第一,针对产品新支持的平台多测试,由于这部分代码改动的最多。第二,对其余版本或平台的Regression test,选择最重要的feature(一般是优先级高的测试用例)进行测试。第三,对可能会有潜在的客户使用的版本或平台测试。当咱们的测试计划作出来的时候,就十分清楚大概须要多少工时完成此次测试。咱们测了哪些东西,以及风险就都清楚了。设计
而后就是bug的管理了。WR对于bug的管理是十分清晰的,当一个bug被提交时,会给开发的manager发邮件,状态是new。开发的manager负责更新bug的状态,分配给开发去fix。这也要求测试人员建立的defect质量很高,要把步骤,优先级,测试环境,错误信息,固然包括log和截屏。优秀的测试人员甚至会告诉开发,他认为多是那一部分code的问题。由于开发在fix bug时,极可能要去重现问题。固然若是问题很简单,开发从defect的信息中就知道是哪部分code的问题,他就直接改了。当defect被fix后,状态变为fix。defects在某个平台对应的fix number会变为integrated时,测试就能够去verify bug了。问题解决了,要把fix标为pass,没有解决,标为fail并rework。这样defect的流程又会从新开始,直到bug被fix掉。code