IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 电梯调度(结对项目)④ -> 正文阅读

[开发测试]电梯调度(结对项目)④

一、软件测试

1.1 单元测试

在开发过程中,为了减少函数内逻辑错误导致程序出bug的概率,我们采用JUnit3对部分类的函数进行了单元测试。进行单元测试的函数包括GetPeopleIn(), GetPeopleOut(), HasPeopleOut(), GetNearestPsg(), GetMaxFloorPsg()等。以下为其中一个测试

public void testGetMaxFloorPsg()
    {
        EleController controller = new EleController();
        Passenger passenger1 = new Passenger(100, 2, 6, 1, 1);
        Passenger passenger2 = new Passenger(100, 1, 8, 2, 1);
        Passenger passenger3 = new Passenger(40, 8, 1, 3, -1);
        List<Passenger> passengers = new LinkedList<>();
        passengers.add(passenger1);
        passengers.add(passenger2);
        passengers.add(passenger3);
        controller.setPsgRequestList(passengers);

        assertEquals(8, controller.getMaxFloorPsg(1, 1, 1));

        passengers.remove(0);
        controller.setPsgRequestList(passengers);

        assertEquals(2, controller.getMaxFloorPsg(1, 1, 1));

        passengers.remove(0);
        controller.setPsgRequestList(passengers);

        assertEquals(1, controller.getMaxFloorPsg(1, 1, 1));
    }

测试结果如图
在这里插入图片描述

1.2 黑盒测试

下面是10个测试用例

测试用例描述
无输入电梯正常运行
重量70 起始楼层1 终点楼层10电梯正常接客
重量100*5人多请求时电梯正常接客
重量100*5人 电梯2个多电梯时正常接客
重量100*10人超重时无法接客
起始楼层-2起始楼层非法
终点楼层21终点楼层非法
起始楼层1 终点楼层-1载客状态电梯不接与自身运行方向相反的乘客
起始楼层1 重点楼层-1未载客状态sstf算法由上行转为下行
更改任意合法电梯参数可以顺利更改电梯参数并运行

二、性能比较

由于乘客时随机生成的,数值不一定一致。

评价标准为总人数达到50时服务人数/总人数

Bus:0.3

SSTF:0.48

LOOK:0.34

三、结对项目总结

2.1 结对编程的优点

通过结对编程,开发者互相之间可以起到督促鼓励的作用。同时,两人所擅长的领域也可以形成互补,当其中一个开发者遇到了有困难的点,也可以向另一个人请教,这大大节省了开发时间,提高了开发效率。
然而,结对编程也有一些缺点。当两个开发者代码风格不够统一时,容易出现难以读懂对方代码的情况,进而影响进一步的开发。同时,如果一个人对自己负责的内容出现的bug不够熟知时,也会进而引发其他的bug。

2.2 个人优缺点

邓圣禹
优点:参与过Java语言项目开发,对开发流程较为熟悉。代码习惯较好。
缺点:拖延症太严重,耽误开发流程。

崔文光:
优点:搜集资料能力较强。善于沟通,编程速度快思路清晰,不拖泥带水。
缺点:对多线程开发方面的知识不够熟悉。

2.3 结对过程

由于开发时期正值寒假,我与崔文光同学无法在线下见面,于是采用了线上沟通的方式完成项目开发。我们于1月27日完成讨论,确定并开始了开发流程。由于对git的不熟悉,一开始的进度并没有按时提交到仓库中,而是在中期代码体积逐渐庞大后使用了git进行项目管理。
在结对开发过程中,我完成了第一阶段类的定义,并基本完成了第二阶段的bus调度算法。崔文光同学完善了bus调度算法,并完成了sstf、look调度算法与ui界面的开发。同时,我对ui界面逻辑进行了调整与改善,并进行了单元测试。此外,我们合力完成了博客与文档的撰写。
由于只能在线上沟通,我们无法提供线下版两人在讨论的结对照片,于是将线上结对讨论过程进行了截图记录如下。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.4 技术亮点与难点

技术亮点

  • 支持各种信息实时显示
  • 算法效率较高

技术关键点

  • 使用多线程技术,防止进程崩溃
  • 使用了大量单元测试,提高代码鲁棒性

遇到的技术难点

  • 进程创建问题
  • 同步函数问题

待完善之处

  • 接口较为混乱
  • 功能仍需完善
  • 前端样式可以进一步美化

2.5 其他收获

通过这次结对项目,我意识到了拖延症是一种可怕的坏习惯,会严重影响合作开发进度。同时,我搜集资料的能力也得到了提高,对java面向对象设计、多线程、单元测试等的认识得到了加深。总体来说,令我受益良多。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:28:40  更:2022-02-14 21:29:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:53:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码