-
OO2022第三单元作业总结
本单元学习了JML相关内容。本篇文章讲解了三次作业中如何选择正确的容器,如何选择正确的算法解决可能出现的性能问题。同时也阐释了本次作业的测试方法与Hack策略。最后完成了对于Network的一个拓展,实现了一个买卖广告系统,完成了对三个核心方法的JML的撰写。如有错误,谢谢指正! -
第三单元总结
第三单元总结 一、自动化测试 本单元推荐使用Junit 单元测试来对自己的程序进行测试,但事实上配置比较麻烦,而且跟着推荐的两篇博客配置时,也遇到了一点问题,第一篇博客要求修改测试用例模板,将模板中生成的package的包名需去掉test,事实上我修改之后就出现错误,无法识别测试文件,搞了好长时 -
BUAA_OO_UNIT3
BUAA_OO_UNIT3 1.测试数据的准备 本单元的测试数据准备时,需要满足各个指令的前置条件,方法是自动生成并与他人对拍,关键是指令要覆盖全面,尽可能多。本人在对拍过程中发现一些很诡异的bug,例如有些bug体现在复杂度较高的方法输出有异常,但方法的逻辑并未出现问题,而是由于本人误用==比较两 -
OO2022第三单元总结
OO2022第三单元总结 第三单元主要学习了契约式编程以及JML,根据作业提供的JML实现相应的接口来完成一定的任务。 JML只严格约束了方法和类的行为、对象可见状态的改变等,内部的实际实现是自由的。在本单元作业中,需要灵活使用一些算法(Dijkstra、Kruskal等)、数据结构(二叉堆、并查集 -
BUAA_2022_OO_Unit3总结
2022_OO第三单元总结 一、架构分析 1.hw9 基础架构和基本功能的搭建 hw9作为第三单元的第一次作业,基本上还是带我们熟悉jml的基础语法,搭建好整体的框架,实现一些基础功能,并在此基础上进行一些简单的优化。 基础架构 hw9中每个类的结构大致如下: //MyNetwork public -
面向对象第三单元总结
面向对象第三单元总结 第九次作业 作业需求 第九次作业要求我们根据官方包给出的接口中的JML规格来实现接口中的各种方法,最终需要实现了社交网络的模拟系统。 这次作业中的任务主要有 人的信息的维护 人与人之间关系的维护 群组信息的维护 网络中对社交关系的查询 其中前三项均是较为简单的功能,重点和难点在 -
BUAA OO 2022 UNIT3总结
测试数据生成与自动化测试方法 数据生成 UNIT3的测试数据生成很简单,首先是随机数据的生成,我写了一个python脚本来完成。通过不同的参数设定,可以满足强测与互测的数据需求。 import os import random import re import string test_dir = " -
BUAA-OO-第三单元总结
BUAA-OO-第三单元总结 规格实现策略 我实现规格时策略如下: 总结大家在讨论区和微信群里面聊的最多的函数,先看看大概思路,要添加些什么属性,把大致框架思考好,然后这个最难的自然放最后再写:) 从MyPerson、MyGroup等这几个开始写,最后再写MyNetwork。 先写那些函数名简单、J -
OO第三单元实验总结报告
一.自测数据生成 本次作业中一大好处是不用考虑输入合法性,非法数据也有相应的异常来处理,这给了数据生成很大的便利,使得生成部分免去了合法性检验。我采用的策略是随机数据,我自己随便选了个比例来生成各个指令,对于复杂度较高的指令,我也专门写了针对该指令的生成数据。这样就对时间上也有了检验。 当然我们也会 -
OO第三单元总结
第三单元总结 一、利用JML规格构造测试数据 构造思路 本单元的接口提供了详细的JML说明,可以以此为根据进行测试数据的构造。在JML中我们主要关注以下三个部分: exceptional_behavior:除了正常的测试数据,这些会导致异常的输入也一定要全部覆盖。如果一个方法存在exceptiona