软工之测试与维护

概述

    做学生管理系统和机房收费系统的时候深刻的感受到写代码并不是最难的,难得是调试。写完代码,以为完整了,但是一运行什么问题都有。调试的时候需要先推测是哪里可能出错了,然后用几个例子检验自己猜的对不对,找对错后,再有针对性的解决。有的时候有这种情况,这个错误本来调好了,可是第二天再运行的时候,又出错了或是在之前错误的附近出现了错误,好像错误是随机出现的一样。曾一度的怀疑是系统出了问题,昨天明面调好的,今天怎么又出错了。
    学了测试才知道调错的时候用的是强行排错,感觉这部分有错就死盯着这部分不放,直到找到出路(当然有时候感觉是不准的)。而且我们用的属于黑盒测试,改某部分代码运行一下,能运行出来就感觉皆大欢喜了。那只是因为我们刚开始接触编程,写的也是小程序,而且个人独立开发,没有正规系统的测试环节。那更谈不上维护了,我们的程序没有给别人交付使用,也不敢让别人用,但是对于一个公司来说维护相当重要的。花那么多的人力物力创造出一款软件,如果移植性可维护性差,但凡有一个开发的关键人员辞职了,别人都看不懂代码,或者维护一个程序比开发一个新的还要耗费财力,时间,那么这个程序就相当于一个一次性产品,生命就像蜉蝣一样,朝生暮死。所以测试和维护对于公司和我们要成为职业编程人员的人来说是非常重要的,一定要对这部分有个宏观的认识。

测试和维护

测试

  
软工之测试与维护_第1张图片
    我把软件测试大体上分为这六大块,且这六大块之间是存在逻辑关系的。首先我们了解一些软件测试的基础内容,比如目的就是为了找错,不要妄想程序没有错误,如果感觉没有错误只能是因为你还没有找到;原则有假设用户不按常理出牌,可能会有不符合条件的输入,我们要提前想到这些情况,尽量避免。其次,要非常清楚测试的过程的是什么,都要怎么干,测试的种类有哪些,要用哪种测试方法测。这其中最重要的就是设计出合理的用例。既然是测试就肯定会有错误。遇到错误先冷静的分析是属于哪类错误,应该用什么方法来调试。
软工之测试与维护_第2张图片
    测试的过程包括好几个阶段,那是因为测试在整个开发过程中很重要,所以要自下向上,从部分到整体一步一步的测试。先对模块内进行测试,这步对应的是编程。然后把各个模块串起来进行测试,主要测接口,叫做集成测试,对应的是设计阶段。再然后是确认测试,主要看程序是否符合需求分析阶段提出的要求。我们测试完之后交给用户测试,这个步骤成为系统测试。最后形成测试分析报告。
软工之测试与维护_第3张图片

    过程清楚了,然后设计用例进行测试,分为黑盒测试和白盒测试。黑盒测试主要是看功能时候可以实现,多在集成测试和确认测试的时候使用。白盒测试针对的是结构,是代码主要在单元测试的时候使用。
软工之测试与维护_第4张图片

    测试就是为了找错误,完善程序。通过用例我们找出来出错的地方,然后要对错误进行分析,是属于哪类错误,有利于分析开发过程中那个阶段做的不好,需要改进。如果功能错误比较多说明在需求分析和程序设计阶段做的不好。找到出错的地方后就要选择适当的方法调错。方法有大概四种,强行排错,回溯法,归纳法,演绎法。该完错后,要再进行回归测试,就跟我们做机房似的,调完错得运行一下看看错误是不是改好了,会不会再出现什么新的错误。

维护

     软工之测试与维护_第5张图片
    软件维护对软件的升级,移植,复用有至关重要的作用,而且公司对这块的投入也比较多。所以一个着眼长远,目标远大的公司会基本按照软件开发的流程来,改写文档的时候写文档,在分析,设计阶段投入的更多的精力。所以学习软件工程,了解软工的各个阶段及其重要性对我们也是很必要的。老师也说过我们编代码不是为了让自己看的,而是给别人看的,因为一个大的软件不可能一人之力完成,团队合作是历史趋势。但是如果我们编的程序只有自己看的懂,别人不理解,编的再好也是废品,因为每个阶段的程序都有人审核,如果自己写的代码连审核的人都看不懂,那么我们的程序根本就不会上线,那就跟废品没什么两样。所以我们一定要注重代码规范,和各个阶段文档的编写。

总结

    测试体现了从局部到整体,从具体到抽象的思想。先把每个模块测试,调试好,再把模块一个一个的连起来测接口,这样整体的功能就实现了,然后再测是否符合需求分析阶段要求,是不是有的功能没有实现。这个就像我们每个个体素质,修养,能力等提高了,然后像模块一样每个家庭都比较和睦幸福,那么把千万个家庭联系起来我们的社会就会变得和谐,安稳,有秩序,那么就能更好的实现它的功能。正如老话说的"修身,齐家,治国,平天下"。维护就比较体现时代发展的特点。这是一个合作和竞争并存的时代,不要逞个人英雄主义,就像没有一个国家可以独霸天下一样,即使是美国也得和各个国家合作。编程的世界也是这样,虽然没法和世界各国相比,但是麻雀虽小,五脏俱全,合作的道理是放之四海而皆准的。所以我们要以一个不同的视角开看待程序开发,从不同的角度审视软件开发,管理,上市。那就是编程是让别人看的,凡是只顾眼前利益的企业,生的快,死的更快。


你可能感兴趣的:(软工之测试与维护)