快过年了,毕业也有半年了。在公司从事了半年的软件测试工作,总容易被说到对测试的理解高度还不够,于是仔细地思考了目前工作的情况和收获,做个纪念吧。
现在在推进什么?两个字:敏捷!其实不止部门,整个公司的技术部都在推行敏捷!
敏捷是什么?概念有很多,我理解简言之就是有效的人与人沟通胜过流程与文档,快速交付版本并迭代之。为了实现这一目标,测试工程师能做的主要有:
1.测试向前:尽早熟悉需求,提高全程把控质量能力,与业务方及时和沟通与反馈(如成立项目室PD、开发、测试甚至业务方等在一起做项目);
2.持续集成:持续集成主要可用于每日构建。其技术的基础是自动化测试,而技术的点有单元测试、接口测试、UI测试自动化三个方面。这三个方面的测试用例丰富性、合理性能极大提升持续集成的效果。而这三方面又以单元测试最为重要,其发现问题并修复的成本最小,接口次之,UI自动化发现问题并修复问题的成本在三者中最高。为提升测试用例的合理性,因此需要进行bug分析,同时需要测试范围鉴定进行辅助。
3.测试技术的研究,测试工具的开发与推广。
上面这些,也是公司一直在推进的。看以上3点,前者是对开发流程的改进,需要开发、测试、PD、业务方甚至DBA及架构等都愿意积极参与,并且项目的PM要有较强的欲望以敏捷方式组织项目流程,QA能发挥的作用相对较小。后者是测试技术发展部在主导。因此我们部门最能发力的部分总结起来就四个字:持续集成!(同时兼顾流程的点滴改进)。
持续集成与性能测试
性能测试是诸多测试手段的一种,只对性能需求较高的场景,才可能使用这一测试方式。性能测试主要用来发现潜在性能问题,寻找性能瓶颈以及评估系统性能指标。在上述的自动化测试中,性能测试似乎是个特例,因为性能测试要做持续集成,我认为至少两三年内不太容易做到。难点主要有几个方面:第一是数据准备问题,除了数据库中的数据准备,还需要有参数化的数据准备等;第二是脚本的版本管理,对于Apache脚本可用svn进行版本管理,但核心有许多性能测试用LoadRunner方便许多,这类脚本的运行结果收集,历史结果对比有难度;第三是运行时间问题,一个系统需要做性能测试的点几十个并不算多,如果算上接口性能测试,功能不断增加的情况下,运行所有的case耗时也将是很可观的。
性能测试能做的
尽管不能像单元测试一样自动化并持续集成,但性能测试还有很多东西可以做,除李沛年度性能Review中所说的,还包括:
1.让部门有更多的同学能够执行性能测试,定位简单的性能问题,包括接口性能测试。
2.让性能测试与项目流程更加紧密结合。
3.将各产品线的性能测试历史数据收集起来,包括方案及报告等。
4.Web前端的性能测试技术研究。
等等。
我11年的目标
我的下一个项目,除了在各层次自动化方面的介入和case积累,还将利用现有的自动化成果,在项目中跑现有自动化case或项目中新增的自动化case来验证主干功能,同时借鉴之前同学的经验,进行一些bug分析工作,真正近距离的实践持续集成。并且在项目中兼顾项目性能测试需求!
上半年在持续集成方面加强实践的同时,也会对平台的代码结构有一些初步了解,做一些Web前端性能测试技术方面的学习与探索。持续关注并参与性能测试虚拟组一些活动与技术推广工作。
然而对于11年下半年,我现在感觉计划还有点模糊,也许在上半年工作开展之后,目标会清晰起来。也许上半年的工作也会因为自己认识的不断进步或其它原因而调整计划。
一些想法,记录一下,算是给自己到公司半年对测试技术认识上的一点总结吧!等来年再看,必能看到自己现在认识的盲区和自己那时的进步!公司给我的回报和机会远远大于我对公司的贡献,我爱这份工作,也爱公司。