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

如何测试一个算法

目录

1.从参数上进行设计

2.从代码逻辑上进行设计

3.从代码性能上进行设计

4.考虑异常情况

5.总结


下面是冒泡排序的代码,我们如何针对这个代价进行测试?

    public void BubbleSort(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}}

1.从参数上进行设计

我们可以考虑方法参数进行设计,比如参数类型,参数值,参数传递,我们可以使用等价类的方法进行设计。

有效等价类:参数类型:int,参数值:int;

无效等价类:参数类型:String,float,double;

                     参数类型:字符串,数字,集合,列表;

                     参数传递:过长,够短,NULL,不传参数;

测试用例编号参数类型参数值参数传递方式预期结果
TC1int5正常传递成功执行
TC2String"hello"正常传递失败执行
TC3float3.14正常传递失败执行
TC4double2.718正常传递失败执行
TC5List[1,2,3]正常传递失败执行
TC6Set{1,2,3}正常传递失败执行
TC7intNULL不传参数失败执行
TC8int过长数字正常传递失败执行
TC9int够短数字正常传递成功执行

2.从代码逻辑上进行设计

这里的冒泡排序的代码一共有三层逻辑:

  1. 第一次循环(A):遍历整个数组,确定需要进行比较的元素个数。
  2. 第二层循环(B):在每次遍历中,从第一个元素开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。
  3. if语句(C):判断是否需要交换两个元素,即当前元素是否大于下一个元素。

在这里我们进行组合:ab,abc等;

3.从代码性能上进行设计

考虑数组过大的时候,时间复杂度和空间复杂度是否符合预期;

4.考虑异常情况

在循环计算的过程中,时间过长是否会导致程序出现故障,是否需要加上异常处理try catch。

5.总结


http://www.mrgr.cn/news/21151.html

相关文章:

  • 使用Selenium WebDriver捕获网络请求
  • 牛客刷题之JZ31.栈的压入、弹出序列(C++)
  • Pytest插件pytest-selenium-让自动化测试更简洁
  • 基于51单片机的智能小车转向控制系统设计与实现
  • 在嵌入式板子上搭建和自定义live555服务器---编译问题和方法整理
  • 基于yolov8的包装盒纸板破损缺陷测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 【软件测试】设计测试用例
  • 枚举: C++和Python实现鸡兔同笼问题
  • 暴力数据结构之优先级队列的解析及其模拟实现(C++)
  • ECMAScript与JavaScript的区别:深入解析与代码示例
  • QT项目实战之音乐播放器2.0版本
  • 论文阅读 - Coordinated Activity Modulates the Behavior and Emotions ofOrganic Users
  • 技术速递|从 .NET 9 中移除 BinaryFormatter
  • 初识string(一)and内存管理
  • 【网络安全 | 甲方建设】SaaS平台、Jira工具及Jenkins服务器
  • 使用“天聚数行”藏头诗生成API:轻松创作个性化诗词
  • 江协科技STM32学习- P11 中断系统,EXTI外部中断
  • 使用cage工具包生成验证码
  • RP2040 C SDK clocks时钟源配置使用
  • 嵌入式s3c2240: ADC