OO第三单元总结-JML(Java Modeling Language)

  • 分析本单元的测试过程
    • 谈谈你对黑箱测试、白箱测试的理解
      黑盒测试:注重测试软件的功能、性能,穷举输入
      白盒测试:注重代码间的逻辑,穷举路径
      
    • 对单元测试、功能测试、集成测试、压力测试、回归测试的理解
      单元测试:对软件中最小可测试单元(人为规定的最小必测功能模块)进行检查和验证
      功能测试:某个功能或特性完成后,对这个功能或特性进行的单独的测试。
      集成测试:在单元测试的基础上将所有模块按照要求设计组装成为子系统或系统,进行集成测试。
      压力测试:压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。
      回归测试:修改了了旧代码之后重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误
      
    • 是否使用了测试工具
    • 数据构造有何策略
      完全随机构造,将无关信息(例如人名)设为常量
      
  • 梳理本单元的架构设计,分析自己的图模型构建和维护策略
    大部分方法可以直接翻译jml
    在一个方法中,对于一个多次访问的值(例如相邻最大边权best acquaintance)先计算出来,避免多次计算
    采用jml中的存图方式,即邻接表,依照jml动态维护
    
  • 分析作业中出现的性能问题及其修复情况,谈谈自己对规格与实现分离的理解
    在query couple sum中,一开始每次循环都重新计算每个人的best acquaintance,复杂度O(n^4),TLE
    后来先计算出每个人的best acquaintance,复杂度降为O(n^2),通过
    规格与实现分离,可以理解为:规格为问题,实现为算法,相同问题可以采用不同算法来解决,它们可能有不同的性能
    
  • 本单元中同学们实现了OK测试方法,请同学们思考OK测试对于检验代码实现与规格的一致性的作用,有何改进何建议
    OK测试检验了功能是否符合规格,为黑盒测试
    比起直接穷举输入看输出是否符合要求更系统化,可以知道具体哪里出现问题
    
  • 本单元学习体会
    本单元学习了java规格描述语言jml及一些测试的概念
    
    感觉jml存在一些问题、可能没有太大实际用处:
    	jml无语法高亮,当括号嵌套较多时容易看错
    	复杂的逻辑难以使用jml描述清楚,往往jml比代码还长,可读性也不如代码
    	自然语言完全可以描述规格,偶尔出现歧义主要是由于描述者疏忽,而jml书写其实更容易出错
    	
    因此我建议取消jml的学习,事实上我认为上一单元多线程的收获远大于本单元
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值