or 

一.系统开发方法论

   1.结构化分析与设计

    结构化分析方法学也称为生命周期方法学,它采用结构化分析、设计、编程来完成软件开发的各项任务。具有阶段性、推迟实现、文档管理三大特点。

    基本思想:自顶向下,逐层分解

    概要设计:设计软件的结构,确定系统是由哪些模块组成,以及每个模块之间的关系。

    详细设计:确定应该如何具体地实现所要求的系统,得出对目标系统的精确描述。

    

    

  2.面向数据结构的设计

    没有明显的使用软件结构的概念,对于模块独立性原则也重视不足,因此并不适合于复杂的软件系统。

  3.面向对象分析与设计

    引入对象的概念,将数据和方法封装在一起,提高了模块的聚合度,降低了耦合度,更大程度上支持软件复用。 

二.CMM&CMMI

  1.CMM

     

  2.CMMI

    

三.软件测试

  1.测试特点

    大量统计资料表明,目前软件测试所花费用已超过软件开发费用的30%。

    目的:在软件投入生产运行之前,尽可能地发现软件(主要是程序)中的错误和缺陷。一次成功的测试是发现至今为止尚未发现的错误。高效的测试是指用少量的测试用例,发现尽可能多的错误。

    

  2.测试分类

    阶段划分:单元测试,集成测试,确认测试,系统测试。

    方法划分:白盒测试,黑盒测试。

    产品划分:α测试和β测试。

  注意:在实际应用中,一旦纠正了程序中的错误,还应该部分或全部进行重新测试,这种测试称为回归测试。

  3.V模型

    V模型是一个以测试为驱动的开发模型,该模型强调开发过程中测试贯穿始终。

    

  4.单元测试

    模块的内聚程度高可以简化单元测试过程。测试的方案也将明显减少,模块内的错误也更容易预测和发现。

  5.集成测试

    非渐增式:讲究一步到位,诊断定位和改正错误困难,只适合一些非常小的软件。

    渐增式:

      自顶向下:先测试上层模块,再测试下层模块,不必编写驱动模块。

      自底向上:先测试下层模块,再测试上层模块,不必编写桩(测试)模块。

  6.白盒测试-覆盖标准

    1.语句覆盖:每个语句至少执行一次

    2.判定覆盖:不仅每个语句至少执行一次,而且每个判定的每种可能都至少执行一次

    3.条件覆盖:不仅每个语句至少执行一次,而且判定表达式中的每个条件都取得各种可能的结果

    4.判定/条件覆盖:同时满足判定覆盖和条件覆盖

    5.条件组合覆盖:使每个判定表达式中的条件结果的所有组合至少出现一次

    6.路径覆盖:使程序中所有可能的路径都至少经过一次(如果程序中有环路,,则要求每条环路至少经过一次)

  注意:满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。然而,条件覆盖还不能保证程序中所有可能的路径都至少经过一次

  注意:条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。

  注意:路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖

  7.McCabe复杂度(环路复杂度)

    V(G) = m – n + 2

    V(G):环路个数

    m:有向弧数

    n:节点数

四.试题

  1.

  

  2.

  

  3.

  

  4.

  

五.备注

  

  

  

  

 

版权声明:本文为yszd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yszd/p/9739129.html