2021-09-21

测试

day01
1-什么是软件
是指一系列按照特定顺序组织的计算机数据和指令的集合

2-软件开发模式
*瀑布模式
定义:将软件生命周期的各项活动规定为一种相对固定顺序而连接的若干阶段工作,
形似瀑布流水,最终得到软件产品的项目。

具体步骤
需求分析-》系统设计-》程序设计-》编码-》测试-》运营及维护

优点:
   为项目提供按阶段划分的检查点
   当前一阶段完成后,只需要去关心后续阶段。
缺点:
   各个阶段的划分完全固定,阶段之间产生了大量的文档,极大地增加了工作量。
   由于开发模型是线性的,用户只能等到整个过程的末期才能见到开发成果,从而增建了开发风险。
   通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
   瀑布模型的突出缺点是不适应用户需求的变化。

*快速原型模型
 第一步,建造一个快速模型,实现用户或未来的用户与系统的交互,用户或客户
对原型的评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足
开发客户满意的软件产品。
第二步,则在第一步基础上开发用户满意的软件产品。

关键点
尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,
原型系统的内部结构并不重要,重要的是必须迅速建造原型,随之迅速修改原型,以反映客户的需求。

*螺旋模型
它是将瀑布模型和快速原型模型结合起来,强调了其他模型所忽略的风险分析,
特别适合于大型复杂的系统。

它分为以下活动:
1.制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
2.风险分析:分析评估所选方案,考虑如何识别和消除风险;
3.实施工程:实施软件开发和验证;
4.客户评估:评价开发工作,提出修正意见,制定下一步计划。

但是,螺旋模型有一定的限制条件,具体如下:
    螺旋模型强调风险分析,但要求客户接受和相信这种分析,并做出相关的反应是不容易的,
因此,这种模型往往适应于内部的大规模软件开发。
    如果这种风险分析大大影响项目的利润,那么进行风险分析毫无意义,
因此,螺旋模型只适用于大规模软件项目。
    软件开发人员应该擅长寻找可能的风险,准确的分析风险,否则将带来更大的风险。

*迭代模型
概念:是一种与传统的瀑布式开发相反的软件开发过程,它弥补传统开发方式中的一些弱点,
具有更高的成功率与生产率。
优点:
    降低了在一个增量上的开支风险,如果开发人员重复迭代,那么损失只是这一个开发有误的花费。
    降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以早点解决而不至于
在开发后期匆匆忙忙。
    加快整个开发工作的进度,问题的焦点在哪,工作效率更高。
    由于用户的需求并不一定在一开始就作出完全的界定,他们通常会在后续阶段中不断地细化,
因此,迭代过程这种模式使适应需求的变化会更容易一些。
因此复用性会更高。

*增量模型
定义:
与建造大厦相同,软件也是被一步一步的建造起来的。
在增量模型中,软件被作为一系列的增量构建来设计、实现和测试,
每一步构建是由多种相互作用的模块而形成的提供特定功能的代码片段的。
缺陷:
由于各个构件式逐渐并入已有的软件体系结构中的,所以加入到其中是会破坏已建好的那一部分,
这需要软件具备开放式的体系结构。
在开发过程中,需求的变化是无穷的,增量模型的灵活性可以使其适应任何这种变化的能力
大大优于瀑布模型和快速原型模型,但容易退化到边改模型,从而是软件失去整体性。
例如,使用增量模型开发字处理软件。
可以考虑,第一,增量发布基本的文件管理、编辑和文档生成功能;
第二,增量发布更加完善的编辑和文档生成功能;
第三,增量实现拼写和文法生成检查功能;
第四,增量完成高级的页面布局功能。

*敏捷开发模式
敏捷开发模式是一种以人为核心、迭代、循序渐进的开发方法。
在敏捷开发中,软件被分割成多个子项目,各个子项目的成果都经过测试,
具备集成和和可运行的特征。
就是把一个大项目分为相互联系,但也可独立运行的小项目,并分别完成,
在此过程中软件一直处于可使用状态。
开发小组的工作方式可归纳为:
作为一个整体工作;
按照段叠在周期工作;
每次迭代交付一些成果,关注业务优先极、检查与调整。
敏捷开发的四个核心思想:
    -强调面对面的沟通,人与人的相互沟通胜于任何流程与工具
    -把精力集中在可执行的程序上,强调了原型、模型、demo等的重要性
    -团队合作和团队激励,将全部团体成员融合成一个整体,大家都是一条绳上的蚂蚱
    -超强的适应能力,适应变化胜于按部就班,敏捷开发的特点就是快速
注意事项
在项目规模增长,团队交流成本就更高了,因此敏捷软件开发暂时适合不是特别大的
团队开发,比较适合一个组的团队使用。

3-软件质量
概述:与其他产品一样,都是有质量要求的,软件的质量关乎他的使用寿命,
一款高质量的软件更受用户欢迎,往往式满足了用户的隐式需求。
下面从概念、模型和影响软件质量的因素几个方面介绍:

*概念:是指软件产品满足基本需求及隐式需求的程度。
软件产品满足基本需求所规定的特性、基本的质量要求,其次是满足隐式需求的程度。
例如,产品界面更美观、用户操作更简单等。
软件质量分为3个层次,具体如下:
-满足需求规定:软件产品符合开发者明确定义的目标,并能可靠运行。
-满足用户需求:需求是由用户产生的,最终目的是满足客户需求,解决用户的实际问题。
-满足用户隐式需求:除了显示需求外,软件如果满足用户的隐式需求,即潜在未来的开发功能,
将会提高用户的满意度,这意味着软件质量更高。

*模型:是使用者与开发者都比较关心的问题,但全面客观地评价并不容易,
最通用的做法是按照ISO/IEC 9126:1991国际标准来评价一款软件的质量。

*影响软件质量的因素:现代社会处处离不开软件,所以要严格控制软件的质量。
而目前的软件开发使得隐藏在软件内部的质量缺陷无法完全根除,因此会有一些质量问题。
下面介绍一下几种比较常见的影响因素。
-需求模糊  在软件开发之前,需求是一项非常重要的工作,也是最后软件的验收标准
-软件开发缺乏规范性文件指导  如果不够重视,一旦最后软件出现质量问题,也很难定责,导致后期维护困难
-软件开发人员的问题  意识与水平不同,导致软件开发前后不一致,进而影响软件质量
-缺乏软件质量控制管理  软件开发质量如果没有具体的负责人,就很少有人关心软件最终的质量

4-软件的分类

软件的分类有许多,不同的分类方式都有着完全不同取向的价值
*根据应用场景分为工具类软件,游戏类软件,媒体类软件,电商类软件等
*根据软件框架分为单机,分布式软件等
**其中单机软件有office、wps等
**分布式软件有C/S架构软件与B/S架构软件
***C/S:客户专用软件,例如QQ、微信等
***B/S:专用软件,例如百度、hao123等

5-软件开发生态系统
这里最常见的app、微信小程序、公众号、前端、后台等
*app即是应用程序,Application的缩写,主要是安装在智能手机上的软件,
完善原始系统的不足与个性化。是手机应用更加更加丰富强大,优化使用体验。
而手机都有自己的对应的系统,主要的手机系统有
- 苹果公司ios
- 谷歌公司Android(安卓)系统。APP:微信,QQ,知乎。。。凡是你需要下载的都是APP。
- 华为的鸿蒙系统

*微信小程序,小程序之一,英文名称Wechat Mini Program,
是一种不需要下载安装即可使用的应用,
发展经历:全面开放申请后,主体类型为企业、政府、媒体、其他机构或个人的开发者,均可申请注册小程序。
微信相关的如微信小程序、微信订阅号、 微信服务号、微信企业号是并行的关系。
它不仅是一个创新,成为中国IT行业使用这一成果的程序员影响很大,超过430万的开发者加入到微信小程序的开发,
推动了小程序共同发展,微信小程序应用数量超过了几百万,覆盖两百多家细分的行业,日活用户以达两个亿,
微信小程序在许多城市实现了地铁、公交服务。
并给社会带来了更多的就业机会,2017年小程序带动就业104万人,社会效益不断提升。

2017年1月9日,张小龙在2017微信公开课Pro发布微信小程序正式上线。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值