4.6.2 软件测试的步骤

系统测试是可有可无的。因为系统测试是和环境结合在一起。系统测试应该是在系统设计或者是需求分析阶段的前一步来完成的。


单元测试它的测试计划是在详细设计阶段完成。所以说单元测试的计划是在详细设计阶段来完成的。

模块接口的测试它保证了测试模块的数据流可以正确地流入和流出。模块接口可以保证它的数据流可以正确地流入和流出。测试模块接口要注意测试模块输入参数的形式在个数、属性、单位上是否一致。比如说这个模块它有五个接口参数:分别是什么类型,可以设计一些用例在调用这个模块的时候输入一些值。输入一些值来看看最终它出来的结果的单位啊这些东西是否一致,和原来的设计是否一致。

再要注意调用标准函数时所使用的参数。在属性、数目、顺序方面是否正确。如果用到了一些函数,是否正确地运用了这些函数。

还有全局变量在各个模块中它的定义和用法是否一致。

再有输入是否仅改变了形式参数。

还有开关语句是否正确。规定的I/O的格式(输入输出的格式)是否与输入输出的语句是一致的。我的设计与我的实现是否保持一致。使用文件之前是否已经打开了文件,或者是用了之后是否把它关闭了。这些都是模块接口部分需要注意的内容。


 

 在单元测试阶段中局部数据结构出错是比较常见的错误。注意四个方面内容:第一,变量的说明是否合适。第二是否使用了没有赋值或者是没有初始化的变量。第三是变量的初始值或者是默认值是否正确。第四是变量是否有错,比如说拼写上的错误啊这些。


重要的执行通路。 在单元测试中对路径的测试是最基本的任务。由于我们不能够进行穷举的测试,由于它的单元里面模块里面它的路径比较多,很难做到覆盖到每一条路径。所以需要精心地设计测试例子来发现是否有计算啊比较啊或者是控制流这方面的错误。计算方面的错误主要指的是算术运算它的优先次序不正确或者是理解错误或者是精度不够这些方面的问题。还有的是比较或者是控制流这些方面的错误,比如说用if语句进行分支的时候就牵涉到了比较和控制流。本应该相等的那些量由于精度不够所以造成不等或者是不同类型进行比较或者是逻辑运算符不正确这些属于比较和控制流的错误。两个方面:一个是计算方面的,一个是比较和控制流方面的。这是对于重要的执行路径进行测试。


 

出错处理。错误的条件并且对错误进行处理。 对出错的有一条专门的路径给予提示给予正确的引导。


边界条件。 是单元测试的最后工作。软件或者是程序最容易出错的往往是在边界上面。所以在边界上面找错误也是最容易把这些错误发现出来的。


对模块进行测试不可能单独地就来测这个模块。被测的模块可能是系统中的中间模块,它是中间模块意味着它上层有模块,下层也有模块。中层模块所行使的功能往往就是执行上级下达的命令再把这些命令分发到下面进行具体的执行。执行完之后就有很多个结果反馈上来。然后呢它进行汇总再把结果反馈到上面去。所以测试不可能单独地测试中间模块,而且要涉及到它的上层模块和它的下层模块。如果单元测试的模块刚好它的上层模块和下层模块都没有做好,那就要设计驱动模块和桩模块它的替代品。处于被测模块上层的/领导层的就是驱动模块,就是驱使被测模块进行一些活动。而被测模块的它的下层模块叫做桩模块。我们要测试一个模块的时候要构造它的桩模块,也要构造它的驱动模块。


集成测试(组装测试).模块与模块之间不是孤立的,是有联系的。因为所有的模块经过单元测试之后测试无误之后再把它组装起来仍然有可能产生错误。几个模块组装起来之后没有达到预期的功能。模块与模块之间存在磨合问题,最后无法达到预期的效果。或者是单元测试注重的是局部数据结构的问题,而全局数据结构检查比较少。全局数据结构也有可能产生问题。另外一个模块在执行某一个任务的时候会有误差,但是误差是可以接受的。大型程序从上面到下面分了非常多的模块。每一个模块它的数据有一点点误差,一级一级把误差传下来的时候最后误差可能就很大了。组装测试通常用的是黑盒测试法。

黑盒测试法不涉及到程序的执行流程。只看了一个运行结果。相比单元测试基本上就用到了白盒测试法。 因为单元测试主要测试的时内部的一些结构,具体的一些运行步骤。所以单元测试一般用到的是白盒测试,而组装测试通常是用黑盒测试。

集成测试的测试计划是在概要设计阶段制定的。集成的方式又可以分为非增值式和增值式。非增值式它是指的首先对每一个模块分别进行模块的测试。然后再把所有的模块组装在一起进行测试,最终得到整个软件的系统。它是一次性进行组装来测试。把所有模块一次性组装好,它是非增值式。

增值式首先可以测一个顶层模块。测了一个顶层模块之后呢顶层模块底下有几个模块。我要增加一个子模块,把这两个模块当成一个整体来测试。测试完了之后没问题了再加第三个模块。把它们再重新测试一遍然后再加。一层一层这么加下来。系统就由原来的很小的一部分慢慢慢慢地扩大了。这个就是增值它的含义。

增值式它有几种具体的形式。分了自顶向下的增值方式。

自顶向下的增殖方式:首先测试最开始的一个模块。

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6936811.html

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

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

相关文章

nodejs调试ndb_如何开始使用NDB调试NodeJS应用程序

nodejs调试ndbNodeJs was released almost 9 years ago. The default debugging process of NodeJs (read Node.js) is quite clumsy. You are likely already aware of the need to add --inspect to the node script with node inspector. It is also dependent on Chrome. T…

初学必读:61条面向对象设计的经验原则

(1)所有数据都应该隐藏在所在的类的内部。(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。(3)尽量减少类的协议中的消息。(4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析…

栈,递归

栈的基本操作注意&#xff1a;是从后往前连接的 1 #include <stdio.h>2 #include <Windows.h>3 typedef struct sStack4 {5 int num;6 struct sStack* pnext;7 }Stack;8 void push(Stack **pStack,int num);9 int pop(Stack **pStack); 10 BOOL isEmpty(St…

mysql集群多管理节点_项目进阶 之 集群环境搭建(三)多管理节点MySQL集群

多管理节点MySQL的配置很easy&#xff0c;仅须要改动之前的博文中提高的三种节点的三个地方。1)改动管理节点配置打开管理节点C:\mysql\bin下的config.ini文件&#xff0c;将当中ndb_mgmd的相关配置改动为例如以下内容&#xff1a;[ndb_mgmd]# Management process options:# Ho…

leetcode 767. 重构字符串(贪心算法)

给定一个字符串S&#xff0c;检查是否能重新排布其中的字母&#xff0c;使得两相邻的字符不同。 若可行&#xff0c;输出任意可行的结果。若不可行&#xff0c;返回空字符串。 示例 1: 输入: S “aab” 输出: “aba” 代码 class Solution {public String reorganizeStri…

APK伪加密

一、伪加密技术原理 我们知道android apk本质上是zip格式的压缩包&#xff0c;我们将android应用程序的后缀.apk改为.zip就可以用解压软件轻松的将android应用程序解压缩。在日常生活或者工作中&#xff0c;我们通常为了保护我们自己的文件在进行压缩式都会进行加密处理。这样的…

乱花渐欲迷人眼-杜绝设计的视噪

视噪&#xff0c;又称视觉噪音。我们每天接受来自外界的大量信息&#xff0c;这些信息有将近70&#xff05;是通过视觉感知获得的。视噪会干扰我们对信息的判断&#xff0c;影响到产品的易用性和可用性&#xff0c;与用户体验的好坏息息相关。(克劳德香农图演示了噪音如何影响信…

超详细windows安装mongo数据库、注册为服务并添加环境变量

1.官网下载zip安装包 官网地址https://www.mongodb.com/download-center/community?jmpnav&#xff0c;现在windows系统一般都是64位的&#xff0c;选好版本、系统和包类型之后点击download&#xff0c;mongodb-win32-x86_64-2008plus-ssl-4.0.10.zip。 2.解压zip包&#xff0…

开源 数据仓库_使用这些开源工具进行数据仓库

开源 数据仓库by Simon Spti西蒙斯派蒂(SimonSpti) 使用这些开源工具进行数据仓库 (Use these open-source tools for Data Warehousing) These days, everyone talks about open-source software. However, this is still not common in the Data Warehousing (DWH) field. W…

.netcore mysql_.netcore基于mysql的codefirst

.netcore基于mysql的codefirst此文仅是对于netcore基于mysql的简单的codefirst实现的简单记录。示例为客服系统消息模板的增删改查实现第一步、创建实体项目&#xff0c;并在其中建立对应的实体类&#xff0c;以及数据库访问类须引入Pomelo.EntityFrameworkCore.MySql和Microso…

leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

给定一个按照升序排列的整数数组 nums&#xff0c;和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 进阶&#xff1a; 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗&#xff1…

CentOS6.7上使用FPM打包制作自己的rpm包

自定义rpm包&#xff0c;还是有逼格和实际生产环境的意义的。 (下面的文档有的代码由于博客排版的问题导致挤在了一起&#xff0c;需要自己判别&#xff09; 安装FPM fpm是ruby写的&#xff0c;因此系统环境需要ruby&#xff0c;且ruby版本号大于1.8.5。 # 安装ruby模块 yum -y…

汉堡菜单_开发人员在编写汉堡菜单时犯的错误

汉堡菜单by Jared Tong汤杰(Jared Tong) 开发人员在编写汉堡菜单时犯的错误 (The mistake developers make when coding a hamburger menu) What do The New York Times’ developers get wrong about the hamburger menu, and what do Disney’s and Wikipedia’s get right?…

android 涨潮动画加载_Android附带涨潮动画效果的曲线报表绘制

写在前面本文属于部分原创&#xff0c;实现安卓平台正弦曲线类报表绘制功能介绍&#xff0c;基于网络已有的曲线报表绘制类(LineGraphicView)自己添加了涨潮的渐变动画算法最终效果图废话少说&#xff0c;直接上源码一、自定义View LineGraphicView&#xff0c;本类注释不算多&…

使用css3属性transition实现页面滚动

<!DOCTYPE html> <html><head><meta http-equiv"Content-type" content"text/html; charsetutf-8" /><title>慕课七夕主题</title><script src"http://libs.baidu.com/jquery/1.9.1/jquery.min.js">&…

leetcode 321. 拼接最大数(单调栈)

给定长度分别为 m 和 n 的两个数组&#xff0c;其元素由 0-9 构成&#xff0c;表示两个自然数各位上的数字。现在从这两个数组中选出 k (k < m n) 个数字拼接成一个新的数&#xff0c;要求从同一个数组中取出的数字保持其在原数组中的相对顺序。 求满足该条件的最大数。结…

Oracle Study之--Oracle等待事件(5)

Db file single write这个等待事件通常只发生在一种情况下&#xff0c;就是Oracle 更新数据文件头信息时&#xff08;比如发生Checkpoint&#xff09;。当这个等待事件很明显时&#xff0c;需要考虑是不是数据库中的数据文件数量太大&#xff0c;导致Oracle 需要花较长的时间来…

两台centos之间免密传输 scp

两台linux服务器之间免密scp&#xff0c;在A机器上向B远程拷贝文件 操作步骤&#xff1a;1、在A机器上&#xff0c;执行ssh-keygen -t rsa&#xff0c;一路按Enter&#xff0c;不需要输入任何内容。&#xff08;如有提示是否覆盖&#xff0c;可输入y后按回车&#xff09;2、到/…

jsp导出数据时离开页面_您应该在要离开的公司开始使用数据

jsp导出数据时离开页面If you’re new in data science, “doing data science” likely sounds like a big deal to you. You might think that you need meticulously collected data, all the tools for data science and a flawless knowledge before you can claim that y…

分步表单如何实现 html_HTML表格入门的分步指南

分步表单如何实现 htmlby Abhishek Jakhar通过阿比舍克贾卡(Abhishek Jakhar) HTML表格入门的分步指南 (A step-by-step guide to getting started with HTML tables) 总览 (Overview) The web is filled with information like football scores, cricket scores, lists of em…