buaa oo u3单元总结

buaa oo u3单元总结

在这里插入图片描述

一、分析本单元的测试过程

(1)谈谈你对黑箱测试、白箱测试的理解

对于黑箱测试而言,我们无需了解软件的内部结构、特性或源代码,仅根据软件的需求规格说明书和测试计划进行测试即可,本单元所需要实现的便是黑箱测试。而在白箱测试中,我们可以访问软件的源代码等内部信息,并根据这些信息设计测试用例,测试时可以清楚地看到软件内部的逻辑结构和数据流。相对而言个人认为黑箱测试要难写一点,黑箱主要得依赖规格来进行测试。

(2)对单元测试、功能测试、集成测试、压力测试、回归测试的理解

单元测试是对软件中的最小可测试单元进行检查和验证的过程。这些单元通常是代码中的函数、方法、类或模块等,我们在本单元的junint测试主要是单元测试。功能测试是确保软件的功能符合其需求规格说明书的测试,关注于验证软件是否按照预期执行其功能,并检查软件的功能缺陷、错误和遗漏。而集成测试是在单元测试之后进行的,目的是检查模块之间的接口和交互是否按预期工作。压力测试也称为负载测试或强度测试,用于评估系统在极端条件下的性能,有助于发现系统的瓶颈、崩溃点以及性能问题。回归测试是在对软件进行修改或修复后重新运行之前已执行的测试用例的过程,也许我们的改bug便是回归测试吧!

(3)数据构造有何策略

首先是根据规格进行构造,由需求规格中的业务规则和预期行为,构造能够覆盖正常、异常和边界情况的测试数据,既要有normal_behavior也要有exceptional_behavior。另一方面我们应该关注输入数据的边界值,林姐情况往往容易由于忽略而出错。然后是使用随机生成测试数据,这种方法可以快速生成大量不同格式和类型的测试数据。最后是构造足够大的测试数据量,大就是好!

二、梳理本单元的架构设计,分析图模型构建和维护策略

该单元之有MyNetwork,Tag,Person,Message三个较为主要的类,后三者会形成一张图结构,Person之中可以包含Tag,Tag之中可以包含Person,Person和Message也类似,而Person与Person之间则又可以相互形成连接的关系。对于该图我采取了边构建边维护的方式,每次加入Person/Message/Tag则维护所有与其相关的值,如ValueSum等,避免在查询时进行计算,同时在所有的类之中都有一个Set/Map用于储存有关系的对象。

三、分析作业中出现的性能问题及其修复情况,对规格与实现分离的理解

我的作业之中出现了一次性能问题,在lab2的strong10之中,主要原因在于我想偷个懒(不过看来是失败了),修复很好解决,在每次出现可能影响valueSum的情况时便更新对应的tag的valueSum的值即可。
其次是规格以及实现的分离,首先定义上面规格(Specification)描述了程序应该如何工作,即软件的行为和功能需求。规格通常不涉及如何实现这些功能的具体技术细节。而实现(Implementation)是软程序按照规格进行工作的具体方式或手段,包括代码、算法、数据结构等。规格和实现分离使得我们的程序更加清晰也更加可维护,最后来讲可以通过编辑规格文档以及使用接口等方式进行实现。

四、本单元中同学们实现了Junit测试方法,总结分析如何利用规格信息来更好的设计实现Junit测试,以及Junit测试检验代码实现与规格的一致性的效果

1.确保assignable是正确的,通过对于assignable之外的元素进行遍历和比对查找是否有意外改变的元素,若是出现了则不符合规格
2.确保ensures的正确性,按照ensure之中的要求遍历需要得到的一些改变等,判断是否按照期望进行了改变。
3.检查exception,检查当输入异常数据之后会是否会按照期望进行相应的程序输出。
4.检查返回值,确认/result是否正确。
5.可以严格按照规格进行代码的编写,小数据量时不需要过高的性能,测试程序保证性能即可。

五、本单元学习体会

JML写起来很麻烦,也看起来很麻烦,不过面向jml写测试的时候很简单呢。希望以后找工作的时候用得着,作为buaaer的核心竞争力:)。

  • 43
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值