构建之法
面对在软件开发方面经验很少的学生,邹欣老师通过丰富生动的故事和隐喻帮助学生建立软件工程的思维习惯,通过严格扎实的动手训练与考核帮助学生总结归纳自己的“最佳实践经验”。读这本书,软件工程课不再枯燥沉闷,而是变得出乎意料的生动有趣。 ——王忠杰
概述软件=程序+软件工程,软件开发的不同阶段,进一步阐述了计算机科学和软件工程的关系。单元测试能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证。
单元测试应该在最低的功能/参数上验证程序的正确性。单元测试必须由最熟悉代码的人(程序的作者)来写。单元测试过后,机器状态保持不变。单元测试要快(一个测试运行时间是几秒钟,而不是几分钟)。单元测试应该产生可重复、一致的结果。独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。单元测试应该集成到自动测试的框架中。单元测试必须和产品代码一起保存和维护。
回归测试。在做回归测试的时候,需要考虑以下几点:
(1)验证新的代码的确把缺陷改正了。
(2)同时要验证新的代码没有把模块的现有功能破坏,没有Regression。
两人合作在不同阶段和技巧的重要性。着重介绍代码风格规范(缩进、行宽、括号、断行与空白的{}行、分行、命名、下划线、大小写、注释)代码设计规范(函数、goto、错误处理、如何处理c++中的类)。结对编程(1、在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作解决问题的能力更强;2、对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感;3、在企业管理层次上,结对能更有效地交流,相互学习和传递经验,分享知识,能更好地应对人员流动)。软件团队有各种形式,适用于不同的人员和需求。敏捷流程是一系列价值观和方法论的集合,敏捷对团队的要求:自主管理、自我组织、多功能型。Msf模型(推动信息共享与沟通、为共同的远景而工作,充分授权和信任、各司其职,对项目共同负责、交付增量的价值、保持敏捷,预期和适应变化、投资质量、学习所有的经验、与顾客合作)。需求分析(获取和引导、分析和定义、验证、在软件产品的生命周期中管理需求)。项目中的风险管理,各种设计建模工具,设计的层次,步骤和目标,软件的质量保证,不同频率和不同覆盖范围的渐进发布,产品的价值因素,创新的招数,团队的效能曲线和假团队。
书中 设想了大量的场景“学”和“习”,并且用了大量的类比,非常生动有趣。对我们而言,面临着要付出怎样的努力才能学到“干货”的选择。在测试的时候我们不能一层不变应该活学活用,举一反三。在测试实例时应该考虑到实际会出现的问题,并逐一更改,以确保达到客户想要的效果。
问题1:代码覆盖率怎么样达到100%。
问题2:代码中的断点怎么修改
问题3:如何去规避项目中存在风险
问题4:怎么利用敏捷流程
问题5:结对编程如何使用
问题6:Msf模型和敏捷的区别