信息系统项目管理师:软件测试、调试及其管理

1.4.5软件测试及其管理

1、软件测试方法可分为静态测试和动态测试。

静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查、代码走查和代码审查。

动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。

白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考察对程序逻辑的覆盖程度。

主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径。

黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法。

一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。

测试分类

4、软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等类别。

(1)单元测试。单元测试也称为模块测试。

(2)集成测试。集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系。

(3)确认测试。确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型。

内部确认测试

主要由软件开发组织内部按照SRS进行测试(SRS:软件需求说明书)。

(1)Alpha测试,对于通用产品型的软件开发而言,A|pha测试是指由用户在开发环境下进行测试,通过A|pha测试以后的产品通常称为A|pha版;

(2)Beta测试,是指由用户在实际使用环境下进行测试,通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后,才能把产品发布或交付给用户。

(3)验收测试,是指针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。

(4)系统测试。系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。

(5)配置项测试。配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与SRS的一致性。

(6)回归测试。回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。回归测试的对象主要包括以下四个方面。

补充

未通过软件单元测试的软件,在变更之后,应对其进行单元测试。

未通过配置项测试的软件,在变更之后,首先应对变更的软件单元进行测试,然后再进行相关的集成测试和配置项测试。

未通过系统测试的软件,在变更之后,首先应对变更的软件单元进行测试,然后再进行相关的集成测试、配置项测试和系统测试。

因其他原因进行变更之后的软件单元,也首先应对变更的软件单元进行测试,然后再进行相关的软件测试。

软件调试

1、与传统的结构化系统相比,OO系统具有三个明显特征,即封装性、继承性与多态性。

2、常用的软件调试策略可以分为蛮力法、回溯法和原因排除法三类。软件调试与测试的区别主要体现在以下几个方面:

(1)测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误。

(2)调试是测试之后的活动,测试和调试在目标、方法和思路上都有所不同。

(3)测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计。

(4)测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间。

软件测试管理

软件测试的管理包括过程管理、配置管理和评审工作。

(1)过程管理。过程管理包括测试活动管理和测试资源管理。软件测试应由相对独立的人员进行。

(2)配置管理。应按照软件配置管理的要求,将测试过程中产生的各种工作产品纳入配置管理。

(3)评审。测试过程中的评审包括测试就绪评审和测试评审。

测试就绪评审是指在测试执行前对测试计划和测试说明等进行评审,评审测试计划的合理性和测试用例的正确性、完整性和覆盖充分性,以及测试组织、测试环境和设备、工具是否齐全并符合技术要求等;

测试评审是指在测试完成后,评审测试过程和测试结果的有效性,确定是否达到测试目的,主要对测试记录和测试报告进行评审。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目验收材料整合流程

目标:多份word整合成一份项目验收材料 第一步:编写好word;准备好一份验收材料的封面与目录word 第二步:用WPS的word转PDF,批量转成PDF; 第三步:用Adobe Acrobat DC 合并转成的多个PDF成为一个…

python调用接口获取文件_python接口文件使用说明

首先,python接口文件在安装好的darknet目录下的python文件夹,打开就可以看到这里的darknet.py文件就是python接口用编辑器打开查看最后部分代码:使用十分简单,先将网络配置加载进去,然后进行检测就行了。但其实现在还不…

[译]Kube Router Documentation

体系结构 Kube路由器是围绕观察者和控制器的概念而建立的。 观察者使用Kubernetes监视API来获取与创建,更新和删除Kubernetes对象有关的事件的通知。 每个观察者获取与特定API对象相关的通知。 在从API服务器接收事件时,观察者广播事件。 控制器注册以获…

windows11 22H2资源管理器开启多标签页

效果 步骤 windows11 22H2后续可能会推送该功能,现在是隐藏的,需要借助工具把这个隐藏功能开启 工具:vivetool 下载:Releases thebookisclosed/ViVe GitHub 步骤1:右键开始菜单,选择“终端(…

python像素处理_Python 处理图片像素点的实例

###在做爬虫的时候有时需要识别验证码,但是验证码一般都有干扰物,这时需要对验证码进行预处理,效果如下:from PIL import Imageimport itertoolsimg Image.open(C:/img.jpg).convert(L) #打开图片,convert图像类型有L,RGBA# 转化为黑白图def blackWrite(img):blackXY []# 遍历…

Mysql更改表名大小写不敏感

编辑配置文件 vi /etc/my.cnf 在[mysqld]后添加添加 lower_case_table_names1 重启服务 service mysqld stop service mysqld start 部署会遇到的问题: MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:   1、数据库名与表名是严格区分大…

遇到“我觉得行才算行”的业主怎么办?

目录 案例 分析 案例 项目初期UI设计需求不确定,我们设计了几稿,业主还是不满意,没有确定最终稿。后来呢,业主安排了一位内部的美工A过来。美工A给出了很多修改意见,我们根据美工A的意见进行了修改,又反反复复改了好几版,最后业主不算满意地确定了。 后来项目要收尾…

python读取多个文件夹下所有txt_Python实现合并同一个文件夹下所有txt文件的方法示例...

本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法。分享给大家供大家参考,具体如下:一、需求分析合并一个文件夹下所有txt文件二、合并效果三、python实现代码# -*- coding:utf-8*-import sysreload(sys)sys.setdefaultencoding(utf-8)impo…

项目是临时的,那项目组成员也是临时的吗?

在PMBOK定义项目属性,“临时性”是项目的三大属性之一。 在“结束项目或阶段”过程里的活动,重新分配人员:释放团队资源,在一些合同里面,项目结束后,需要给客户提供培训和一段时间的维护保修,那…

ceph安装配置

简介 ceph是一个开源分布式存储系统,支持PB级别的存储,支持对 象存储,块存储和文件存储,高性能,高可用,可扩展。 部署网络建议架构图 部署 部署架构图,本次实验部署jewel版本 实验环境的Vagrant…

推荐好用的JavaScript模块

2019独角兽企业重金招聘Python工程师标准>>> 译者按: 作者将自己常用的JavaScript模块分享给大家。 原文:? JavaScript Modules Worth Using ?译者: Fundebug为了保证可读性,本文采用意译而非直译。另外,本文版权归原…

python直接连接oracle_python连接oracle

一:弄清版本,最重要!!!首先安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本&…

项目计划不要拖,要赶紧排

目录 案例 复盘 应对 总结 案例 业主:这个项目很急,赶紧干活吧,明天就安排人来干活。 于是,项目经理问公司要来资源,第二天就投入到项目里。 公司只有一个项目,这样搞,项目能顺利实施,业主满意,公司老板感觉这种方法不错哦。 当公司项目越来越多了,员工也越来…

select函数_SQL高级功能:窗口函数

一、窗口函数有什么用?在日常生活中,经常会遇到需要在每组内排名,比如下面的业务需求:排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的…

客户端C++与前端js交互

客户端与前端交互 qwebchannel.js文件引入建立通信// c发送消息给js new QWebChannel(qt.webChannelTransport, function(channel){var content channel.objects.jsContext;// 建立通信后,客户端通过调用 sMsg 方法来执行后面的回调函数,从而实现c与j…

python动态映射_sqlalchemy动态映射

似乎您可以直接使用属性,而不是使用columnsdict。考虑以下设置:from sqlalchemy import Table, Column, Integer, Unicode, MetaData, create_enginefrom sqlalchemy.orm import mapper, create_sessionclass Word(object):passwordColumns [english, k…

linux外接显示屏,关掉本身的笔记本电脑

https://blog.csdn.net/a2020883119/article/details/79561035 先用xrandr命令查看: eDP-1 connected eDP-1是连接着的 关掉:sudo xrandr --output eDP-1 --off 打开:sudo xrandr --output eDP-1 --auto

发挥项目“临时性”威力,让项目顺利实施

所谓临时性,就是要有明确的“开始”和“结束”。虽然大家都知道项目一定会有开始和结束的,但要更多地关注“明确“。 问题1:问商务(售前)或业主,这个项目什么时候结束? 答:商务或业主他们有时候也不知道,因为国内的项目大多数是提前开始交付,是一边交付,一边把里程…

上拉加载更多后台数据_6-7【微信小程序全栈开发课程】记录页面(七)--分页加载记录数据...

现在是一次性加载所有的记录数据,数据多的时候,会加载比较慢,所以我们改成分页加载,一次最多加载15条数据每次拉倒底部都会自动加载下一页的数据,知道所有的数据加载完成1、添加data变量编辑record.vue文件&#xff0c…

spring cloud eureka服务注册和调用

SPRING INITIALIZR构建工程 spring boot 可通过SPRING INITIALIZR构建项目访问SPRING INITIALIZR官网,填写项目相关信息后,生成项目。将下载的项目解压,打开idea,file-->new-->project from existing sources。import proje…