当前位置: 首页 > news >正文

软件工程第十周

测试过程

单元测试

注意出错处理!单元测试的数据处理部分请见Junit 单元测试之错误和异常处理-CSDN博客

单元测试准则

白盒:对系统结构非常清楚!就像大题注重过程。

单元测试的测试环境

一定要保证整个环境是完整的,尽管可能没有完全定义好前后文,也要模拟出来。

比如现在要测试上图的B模块,我们如何才能准备好B模块的测试环境呢?

B模块需要调用E, B模块还会被A调用,如果不准备好A和E的环境,那么B所处的环境就是不完全的,B的测试环境就是不全面的!这时候就需要模拟上下层模块:

简而言之就是在Junit中实现mock,可以使用mockito框架辅助!驱动模块调用被测模块,被测模块调用桩模块


集成测试

关注模块外部行为!

一次全部放在一起集成测试:出错的概率会大很多!并且很难找到错误的位置!所以建议一步一步增加模块,逐步增加测试规模的方法。

β测试:开发者不知道用户具体的行为,不受开发者控制。α测试:在开发者控制好的环境下,由开发者监控的测试环境。

作者灵光突现:模拟redis集群失联情况,然后查看一下集群是怎么处理失联的情况,最后重新恢复运行查看效果,应该也算恢复测试!


测试用例的设计方法:白盒和黑盒测试!

当面试官问测试方法的时候,一定要界定测试方法和测试过程!

一句话:白盒测试结构,黑盒测试功能/性能!

白盒测试

看到见的内容到底覆盖了多少!每一个简单的条件,只要含有逻辑值就都需要考虑,不仅仅是分支条件!

语句覆盖中的语句,可以理解为代码中存在的语句,而不是全部的判定语句、循环语句等,他就是走最明显的道路,所以它的覆盖范围是最小的!

在各种流程的唯一出口:增加节点!菱形框中是复合条件的话,必须要拆分成简单条件!否则很有可能会漏测一部分条件!这也是流图的基本要求。

一直围绕程序控制流程进行!如果程序中有太多变量,那么可以看一下程序变量的d-u链!

黑盒测试

最经典的方法:等价类(发现错误的能力上等价),找一组典型的类测试就行,没有必要选取更多的等价类!等价类覆盖到全部输入的区域!不相交!(如果有相交,那么出现错误的时候,这个错误就可能存在交叉区域中,不方便寻找到错误)

黑盒测试本质上对应着软件的规格说明,是否实现了说明书里面要求的功能和性能。

规则有多少种,无效等价类就有多少种!

相关文章:

  • 基于SSM+Vue的随心淘网管理系统
  • 网络编程套接字(3)——协议定制 | 序列化与反序列化
  • 第十八章Swing程序设计总结
  • 技术分享 | app自动化测试(Android)--App 控件定位
  • C# TCP Server服务端多线程监听RFID读卡器客户端上传的读卡数据
  • 【第2章 Node.js基础】2.2 Node.js回调函数
  • MySQL中表格的自我复制,与复制表格
  • acwing算法基础之搜索与图论--树与图的遍历
  • [第二章—Spring MVC的高级技术] 2.2 置multipart解析器
  • 21 移动网络的前世今生
  • Sa-Token拦截全部接口必须登录-然后自定义注解来匿名登录-作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下:
  • 虚拟机复制后,无法ping通问题解决
  • Flutter——最详细(AppBar)使用教程
  • 【Linux精讲系列】——vim详解
  • 【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • canvas绘制圆角头像
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Effective Java 笔记(一)
  • Git 使用集
  • Yii源码解读-服务定位器(Service Locator)
  • 从零搭建Koa2 Server
  • 后端_ThinkPHP5
  • 记录:CentOS7.2配置LNMP环境记录
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 那些年我们用过的显示性能指标
  • 时间复杂度与空间复杂度分析
  • 实现简单的正则表达式引擎
  • 为什么要用IPython/Jupyter?
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • gunicorn工作原理
  • 从如何停掉 Promise 链说起
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (4) PIVOT 和 UPIVOT 的使用
  • (k8s中)docker netty OOM问题记录
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (十)c52学习之旅-定时器实验
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (译)计算距离、方位和更多经纬度之间的点
  • (原)本想说脏话,奈何已放下
  • (转)Oracle存储过程编写经验和优化措施
  • (转)Sql Server 保留几位小数的两种做法
  • **PHP二维数组遍历时同时赋值
  • ./和../以及/和~之间的区别
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .gitignore文件---让git自动忽略指定文件
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET建议使用的大小写命名原则
  • .NET应用架构设计:原则、模式与实践 目录预览
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [Angular] 笔记 20:NgContent
  • [BUG]vscode插件live server无法自动打开浏览器