软件开发那些事—软件生命周期

前言

软件生命周期是为了达到一定 的目标而必须实施的一系列相关过程的集合。是围绕软件的活动序列展开的,主要是由可行性研究、需求分析、软件设计、编码、软件测试、软件维护等六大主要内容构成。

生命周期流程

1,可行性研究

可行性研究阶段是为后续软件开发做必要的准备工作,是为了确保后续的工作可以在现实情况下可以顺利的进行。
软件开发不是科幻小说,不能仅仅凭借想象力,更重要的是依附于现实,才能最后实现自己的想法。

2,需求分析

需求分析是确定目标系统需要做什么的问题
用现实来说,就是需要满足甲方爸爸的要求,我在闲鱼做代做多年,发现如果前期没有做好需求分析这一步,就会产生一些难以解决的纠纷。你付出的努力与结果不匹配,那就是无用功,需求分析就是为了避免这样的情况 产生。

3,软件设计

软件设计就是把需求文档中描述的功能可操作化
这一步的操作就像将一个设计图纸在脑子中实例化,该如何完成这样的一个图纸,将它变为一个凳子呢,这个大脑做的事情就是软件设计的概念

4,编码

编码就是编写程序代码
这个就是我们程序员的日常工作,无论使用什么样的编程语言,什么样的设计软件,这个过程都称为编码

5,软件测试

软件策划师旨在发现软件产品中存在的软件缺陷,进而保证软件产品的质量

测试原则:

  1. 尽早不断测试的原则

应当尽早不断地进行软件测试。据统计约60%的错误来自设计以前,并且修正一个软件错误所需的费用将随着软件生存周期的进展而上升。错误发现得越早,修正它所需的费用就越少

  1. 独立测试原则

开发程序人员应避免参与到测试当中,往往自己的魅力会迷惑你的眼睛(开玩笑的)

  1. 错误不可避免原则

你在程序中发现的错误越多,则说明程序中仍旧存在的错误越多,而且在测试时永远不能首先假设程序中没有错误

测试方法1(静态与动态):

  1. 静态测试

态测试的含义是被测程序不运行,只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。即通过对软件的需求规格说明书、设计说明书以及源程序做结构分析和流程图分析,从而来找出错误。例如不匹配的参数,未定义的变量等

  1. 动态测试

动态测试与静态测试相对应,其是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性能等。这种方法可简单分为三个步骤:构造测试实例、执行程序以及分析结果

测试方法2(黑盒与白盒):

  1. 黑盒测试
    黑盒测试只通过输入输出来测试,测试方法有等价类划分法、边界值分析法
  1. 等价类划分法
    等价类划分法属于非常常见的黑盒测试方法之一了 ,几乎所有的功能测试中都 会用到。其实也是用来替代穷举测试的一种方法。需要根据产品文档中给出的范围来将一组测试数据划分成多个区域,每个区域选取几个代表值来测试。
  2. 边界值分析法
    界值分析法与等价类划分法是功能测试中最常用的两种测试技术 ,从某种意义上讲,边界值分析法是等价类的一个补充。开发人员书写代码时,经常要用到的比较符会很容易忽略符号的编写,测试时需要对几个边界值 如等于、大于n,小于n的数值进行测试。
  1. 白盒测试
    白盒测试就是从整个软件的结构来进行测试,比较复杂难以理解,有点类似于面向过程一样,需要对整个结构的了解

白盒测试的测bai试方法有代码检查法、静态结构du分析法、静态质量度zhi量法、逻辑覆dao盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。   白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。   六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。(源于百度网友

6,软件维护

当软件产品被交付后,其生命周期仍旧存在,软件需要不断的更新迭代来适应快速变化的市场,很多软件的软件维护阶段往往占据整个生命周期的大头。
就像王者荣耀一样,有持续的更新使其有较强的生命力、新鲜感可以留存用户

猜你喜欢

转载自blog.csdn.net/xinzhilinger/article/details/109379965