一.软件开发具有下面五个难题:
1.复杂性。任何一个功能的实现都不是想象的那么简单,往往需要程序员想上好几天甚至几个月,加上大量的实验以及改良浓缩出来的几百行,几万行甚至几百万行代码,随着系统越来越复杂,代码的需求量甚至更多。
2.不可见性。由于源代码是封装的,而用户看到的是软件而不是源代码,所以一旦软件出现错误,导致的就是无法判断出程序出现了什么错误。
3.易变性。由于用户会提出各种各样的要求,所以程序必须是可变的。
4. 服从性。软件不能独立存在。他总是要运行在硬件上面,他要服从系统的中其他组成部分的要求,他还要服从用户的要求,行业系统的要求。
5.非连续性。许多软件都没有增加输入的特性,有时输入上的很少的变化,回引起输出上的很大的变化。
二.关于个人软件开发流程:
单元测试。单元测试就是解决自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,从而保证模块的质量能得到稳定的,量化的保证。
创建单元测试的主要步骤:
1.设置数据
2.使用被测试类型的功能
3.比较实际结果和预期的结果
单元测试需要注意的事项:
1.必须有最熟悉代码的人来写
2.单元测试要快
3.应该覆盖所有代码路径
4.应该集成到自动测试的框架中
5.必须和产品代码一起保存和维护
回归测试。目的是验证新的代码的确改正了缺陷,同时验证新的代码有没有破坏模块的现有功能,有没有Regression。单元测试是回归测试的基础。
三.
三.个人感悟
过去看着电影上的那些大佬们指尖飞速跳跃分分钟就能完成一些高科技的东西甚是向往,于是我以为做软件也是可以飞速完成。
其实并不是这样,做一个合格的软件不仅需要的是高超的指法,更是需要平时的积累,还有不断的学习,一个好的软件也不是只输完代码就完成的而是需要不断的测试。
在以后的编程道路上我会加强基础知识的培养还有就是编程规范的养成习惯,以及对测试的重视。