软件测试是软件开发过程中一个重要的环节,应得到足够的重视。软件测试的方法有很多种,比如单元测试、人工测试、稳定性测试等。这里主要讲一下软件测试测与不测,以及测试的程度。
可以简单的把测试分为以下几点:
有没有进行测试是程序员的态度问题。软件通常会进行多次改变,软件改变包括代码的新增、修改、删除,软件改变之后,一定要进行软件测试,以保证软件功能正常。未经过测试的代码流转到测试人员测试,甚至在生产环境上运行都是不能容忍的,程序员自己砸了自己的招牌。软件bug流转的越远,修正软件bug的成本就会越高。程序员进行了软件自测试,能够保障软件基本操作正常,有效的从源头减少软件bug。
软件测试覆盖率是要求软件运行的各种情况都要测试。很多时候软件开发时间比较紧张,但不能因为忙就降低测试覆盖率;有时不忙也不愿意测试,而是花时间去学习新的知识,这种做法也是不可取的,有效解决手头的问题比拓展知识更重要一些,拓展的知识可能学了不一定用的到。也不能花太多的时间在测试上,bug发现的时间成本会随着时间越来越高,可能测试一天才发现一两个bug。按商人的思考方式这么做是很不划算的,一切偏离了以结果为导向的弯路都是潜在的浪费。可以把一些不划算的测试的功能留给软件测试人员,因为软件测试人员更熟悉软件测试,按照测试用例测试更全面。尤其对一些大型的分多个模块开发的软件,测试人员对各个模块的集成测试把控更佳。软件行业测试人员的待遇一般比软件开发人员低,假如测试所需时间相同,所花的成本相对较低。
压力测试满足现有业务需求,并能够满足预期内的业务增长即可,脱离业务的压力测试意义不大,更适合软件架构开发人员去做深入的研究。比如无论你再富有你买iPhone不一定要买512G,一般64G/128G足够用了,多余的内存花了钱却没有使用造成浪费。压力测试的环境通常不容易构造,要记得保存压力测试环境,以便以后测试使用。
程序员应像对待软件开发一样对待软件测试,软件测试是保障软件功能正常不可忽略的步骤。