软件测试与维护

动态测试

1 黑盒测试/功能测试/数据驱动测试

1)要求:对接口测试,给输入看输出是否正确、不需了解内部

2)常用方法:1)等价类划分(对一个用例划分不同情况,每种情况测试一次(成绩优良))

2)边界值分析(在边界两边选值测试(及格与不及格))

3)错误推测(根据测试经验,选测试用例测试)

4)因果图

2 白盒测试/结构测试/透明盒测试/逻辑功能测试/基于代码测试

1)要求:测试人员了解程序内部结构和处理过程,对逻辑路经测试,检查内部控制结构和数据结构是否有错、是否达到预期运行状态

2)用例设计方法(发现错误的能力由弱变强):

1)语句覆盖:每句语句至少执行一次(如if else都行执行过就ok,不考虑if不通过的情况)

2)判定覆盖:每个判定分支至少执行一次(把一个判断语句看作一个整体,使每个分支的值都被至少执行一次)

3)条件覆盖:每个判定的每个条件(满足语句覆盖,取分支各个表达式的两个边界值,使这两种值都被至少执行过一次即可)应取到各种可能的

4)判定/条件覆盖:满足判定覆盖、条件覆盖

5)条件组合覆盖:判定中各条件的每一种组合至少出现一次(每个分支中的一/多个条件自由组合得到多个组合,使这些组合都执行一次)

6)路径覆盖:程序中每一条可能的路径(一条语句到另一条语句/重点)至少执行一次

3 灰盒测试

1)概念:介于白盒测试与黑盒测试之间的测试

2)关注:输入正确性行及内部表现(关注较浅)

3)适用:在系统组件的协同性环境中评价应用软件的设计

静态测试

人为观察、分析发现错误(不运行)

1 桌前检查

1)人员:程序员检查

2)任务:对源程序进行分析、检验、并补充文档

3)目的:发现程序中错误

2 代码审查

1)人员:若干程序员和测试员组成

2)流程:发各种文档规范、召开程序审查会(解释逻辑、对照错误检查表提出问题、讨论修改)

3 代码走查

1)人员:程序员、测试人员

2)流程:发材料并阅读程序、与会者在脑中运行,找出错误、不规范

软件维护

占软件生命周期的60%-80%

1 软件可维护性:维护人员对该软件进行维护的难易程度

2 衡量因素:可理解性、可测试性、可修改性

3 类型

1)改正性维护(20%):开发阶段已发生而系统测试阶段尚未发现的错误

2)适应性维护(25%):软件被动适应环境(如android ios)

3)完善性维护(50%):为扩展功能和改善性能而进行的修改

4)预防性维护(5%):为了改进软件的可靠性和可维护性,为了适应未来的变化,主动做出的变化

4 影响维护工作量的因素

系统大小、系统设计语言、系统年龄、数据库技术的应用、先进的软件开发技术

软件质量

1 概念:软件与用户需求的一直程度

2 特点

1)用户需求是度量软件质量的基础(应不少不多)

2)制定的标准定义了一组指导软件开发的准则

3)没有显示描述的隐含需求(默认满足的要求)

3 度量

1)ISO/IEC9126软件质量模型

3个层次:质量特性、质量子特性、度量指标

重点

1 功能性(满足功能及其性质)

适合性(有此功能)、准确性(准确完成功能)、互操作性(共享)、依从性(符合法规、规范)、安全性(未经授权,不可访问)

2 可靠性(规定时间和条件下,性能保持在标准之上)

成熟性(软件故障引起失效的品读有关)、容错性(操作错误,正常工作)、可恢复性(出错后回复时间)

3 易用性(大众皆可)

4 效率: 时间特性:响应、处理时间; 资源特性:使用的资源数量、种类

5 可维护性: 易分析性:易了解错误原因; 修改性:改后基本对,而不是改一处错全部

6 可移植性: 适应性:适应多种环境; 可替代性:替代其他软件的难易程度

4 软件质量保证:为保证软件系统充分满足用户要求的质量而进行有计划、有组织的活动,目的:生产高质量软件

手段

1)开发初期制定质量保证计划

2)开发前选定制定开发标准、开发规范

3)选择分析设计方法和工具,形成高质量分析模型 设计模型

4)严格执行阶段评审,及时发现问题

5)进行阶段测试

6)严格执行变更控制流程

7)有完整阶段文档

6 CMM(软件能力成熟度模型)

初始级:软件过程无序、软件管理反应式、成就取决于个人

可重复级:建立了基本项目管理过程、制定了规章制度、依靠经验取得成功

已定义级:将软件管理和工程文档化、标准化,开发过程受控

已管理级:软件过程和产品质量可度量,对软件过程和产品有定量的理解与控制

优化级:过程的量化反馈和先进的思想、新技术使过程持续不断改进

7 CMMI(软件能力成熟度集成模型)

初始级、可管理级、严格定义级、定量管理级、优化级

软件项目管理

1 内容:范围管理、进度管理、费用管理、质量管理、整体管理、人力资源管理、沟通管理、风险管理、采购管理

2 软件项目估算

1)软件规模的估算

1)LOC估算法(代码行估算法)

将项目划分为小模块,通过经验估算软件的代码行数

2)FP估算(功能点估算)

FP(功能点)是一种衡量工作量大小的单位

FP=信息处理规模*技术复杂度

信息处理规模:外部输入数、外部输出数、外部查询数、内部逻辑文件数、外部接口文件数

技术复杂度=0.65(基础)+调节因子

2)软件工作量的估算

COCOMO模型,三级

1)基本COCOMO模型:用已估算出的代码行数(LOC)为自变量的经验函数计算软件开发工作量(人*天)

2)中间COCOMO模型:基本模型的基础上,再用涉及产品、人员等的影响因素调整工作量的估算。

3)详细COCOMO模型:在中间模型基础上,分层(模块层、子系统层、系统层)估算

3)成本估算

3 风险管理

对项目风险从识别到分析乃至采取应对措施等一系列过程

1)编制风险管理计划

2)风险识别(找到存在的风险)

发现风险方法:头脑风暴法(记录每人提出风险)、专家评估法(专家指出)、风险检查表(与表一一对应检查)、假设分析(假设存在看是否有)

风险类别:需求风险(需求变更)、技术风险(是否拥有技术及其实现能力)、团队风险、关键人员风险(核心人员不可流失)、预算风险(少算/多算)、范围风险(范围变更)

3)定性风险分析(发生概率、影响程度)

4)定量风险分析(3的具化)

5)风险应对计划的编制

6)风险跟踪和监控

4 项目计划编排的方法与技术

1)计划评审技术(PERT)

完成时间估算(各个阶段计算后求和):

1)乐观估算:一切顺利的情况下完成某项工作的时间

2)最可能时间:正常情况完成某项工作(把正常情况下的出错囊括在内)的时间

3)悲观时间:最不利的情况下,完成某项工作的时间

开方就是方差开方

2)甘特图/横道图

以横线表示活动起止时间

优点:简单、明了、直观、易于编制、小型项目或高层了解

缺点:不能表达复杂的逻辑关系,不能进行定量计算、不能突出关键活动

3)关键路径法(重点)(CPM)

1)概念:借助网络图和各活动所需时间(估计值),计算每一活动最早/迟开始、结束时间

2)核心:将工作分解结构(WBS)分解的活动按逻辑关系加以整合,统筹计算出整个项目的工期和关键路径

3)每个活动参数

最早开始时间(ES)

最早结束时间(EF)EF=ES+工期估计

最迟结束时间(LF)

最迟开始时间(LS) LS=LF-工期估计

4)两个规则

1)某项活动的最早开始时间必须相同或晚于直接指向这个活动的最早结束时间的最晚时间(通向某个的所有路径中最长路径、正向推)

2)某项活动最迟结束时间必须相同或 早于该活动直接指向的所有活动最迟开始时间的最早时间(反向推,一个点指向两个点,指向其中开始时间早者)

5)总时差

一项工作在不影响总工期的前提下所具有的机动时间/松弛时间

总时差=该工作最迟完工时间-该工作最早完工时间

总时差=该工作最迟开工时间-该工作最早开工时间

6)关键路径

1)最早开始时间和最晚开始时间相等的活动成为关键活动

2)关键活动串联起来成为关键路径

3)关键路径长度即为项目的工期

1)总持续时间最长的称为关键线路

2)总时差最小的工作组成的线路为关键线路

7)自由时差

一项工作在不影响其紧后工作最早开始时间的条件下可利用的机动时间=该工作的紧后工作最早开工时间-该工作最早完工时间

软件设计师19-系统开发和运行02相关推荐

  1. 软件设计师18-系统开发和运行01

    软件工程 1 软件工程方法学三要素:方法.工具.过程 2 软件生命周期:问题定义.可行性分析.需求分析(时间最长).设计(概要设计.详细设计).编码.测试.运行维护 3 软件开发模型 1)瀑布模型 文 ...

  2. 双代号网络图基础算法_软考网络工程师之系统开发和运行基础(软件分类、测试、模型)...

    系统开发和运行基础(软件的分类.软件生存周期.软件开发模型.软件测试.软件项目管理) 软件的分类 系统软件,如操作系统. 支撑软件,如开发工具. 应用软件,如office. 实时处理软件,一般是工业软 ...

  3. 【软考-软件设计师精华知识点笔记】第六章 系统开发与运行

    前言 由于笔记复制到CSDN样式失效,没有精力再重新完整的检查并设置一遍样式,有积分的可以前往下载word.pdf.有道云笔记版本. 需要说明的是,下载的内容与本篇分享内容一致,只有样式的区别[比如重 ...

  4. 软件设计师——结构化开发与方法

    软件设计师备考笔记 上午题 下午题 计算机网络概述 数据流图设计(下午试题一) 程序设计语言基础知识 数据库设计(下午试题二) 标准化和知识产权 UML分析与设计(下午试题三) 数据库 面向对象程序设 ...

  5. SkyEye(一种软件模拟的系统开发平台)

    一.SkyEye介绍 1.SkyEye的起源和发展 2002年11月,一个偶然的机会,一群操作系统的爱好者在网上进行聊天,成立了一个TM-Linux兴趣小组,希望要做一些感兴趣的事情.当时在清华大学计 ...

  6. 互联网医院软件|互联网医院系统开发|在线问诊提高医疗效率

    互联网医院系统源码开发设计理念是以患者为中心,将医院的各个科室.医生资源进行有效的整合和调配.互联网医院系统开发是基于最新的Web技术和云计算技术所构建的一种全新的医疗信息化平台,可以通过网页.小程序 ...

  7. 软件设计师--系统开发与运行

    1.数据流图摆脱系统的物理内容,在逻辑上描述系统的功能.输入.输出和数据存储.是系统逻辑模型的重要组成部分 2.数据流图主要由实体.数据存储.处理过程和数据流四部分组成.在顶层数据流图中,将系统描述成 ...

  8. 软考准备之系统开发与运行(错题及重要知识点)

    1.数据流图拜托系统的为里内容,在逻辑上描述系统的功能,输入输出和数据存贮,是系统逻辑模型的重要组成成分 2.关于数据流图 : 对于数据流图的每一个基本加工,必须有一个基本的加工逻辑说明. 基本的加工 ...

  9. 软考:软件设计师(中级)--学习笔记02操作系统基本原理

    目录 二.操作系统基本原理 2.1进程管理 2.1.1进程的状态 2.1.2前趋图 2.1.3进程的同步与互斥:PV操作的前提 2.1.4 PV操作 2.1.5死锁问题 2.2存储管理 2.2.1页式 ...

最新文章

  1. java两个线程循环打印_java循环打印 多线程
  2. 算法提高课-搜索-最短路模型-AcWing 1100. 抓住那头牛:bfs
  3. ITK:观察过滤器Watch A Filter
  4. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...
  5. linux驱动编写(声卡驱动之asoc移植)
  6. SuseLinux详解(3)——开启/关闭防火墙的方法
  7. 视差滚动效果原理解析和效果实现
  8. 【2021考研数学汤家凤高数辅导讲义】第三章 中值定理与一元微分学的应用
  9. vc html插件,VC++6.0插件系列(绝对经典)
  10. SQL根据身份证判断性别
  11. 其于js的五笔输入法!
  12. mysql2000卸载_如何卸载mysql 图文教程教你完全卸载mysql数据库
  13. winform,鼠标移动到label标签时变成手的形状
  14. 干货分享|如何使用小鸟云服务器搭建Wordpress站点
  15. Office2016打开文件提示“文件已损坏”,WPS打开却正常的解决办法
  16. 考过证券从业资格证的朋友们用的什么APP呢?
  17. 基于c语言的学生档案管理系统设计实现
  18. 服务器添加html扩展,html5 – 服务器可扩展性 – HTML 5 websockets和彗星
  19. 模拟电子入门需要掌握的点(上)
  20. 详解鸽巢原理【组合数学】

热门文章

  1. 修饰类方法(静态方法)
  2. 如果在2008年用10万元投资腾讯,现在可以实现财务自由吗?
  3. uni-app中image组件的基本使用
  4. 编译wide-dhcpv6-20080615报错问题
  5. java闰年满五换行_CoreJava练习题
  6. 调用拷贝构造函数的场景
  7. Hadoop学习---Zookeeper+Hbase配置学习
  8. C#+HtmlAgilityPack+Dapper走一波爬虫
  9. flex布局最后一行左对齐的处理
  10. Angular JS