第一次个人编程作业

这个作业属于哪个课程软件工程
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014
这个作业的目标 设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。

1. Github地址

https://github.com/Azar0401/azar

2. PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划 100 120
Estimate 估计这个任务需要多少时间 40 30
Development 开发 300 350
Analysis 需求分析 (包括学习新技术) 200 150
Design Spec 生成设计文档 20 20
Design Review 设计复审 20 15
Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 30
Design 具体设计 40 50
Coding 具体编码 300 250
Code Review 代码复审 100 150
Test 测试(自我测试,修改代码,提交修改) 30 40
Reporting 报告 20 20
Test Repor 测试报告 10 10
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 10
  合计 1220 1255

3. 计算模块接口的设计与实现过程

工程截图

jieba

用于分词,将句段分为一个个词语。在pycharm中下载,有多种模式。这里选择精确模式,将句子最精确地切开,适合文本分析。

gensim

是一个自然语言处理工具,用于检测用jieba分词完成后的句段相似性。

性能分析

4. 单元测试

单元测试代码

import unittest
from main import main_test


class MyTestCase(unittest.TestCase):
    def test_something(self):
        self.assertEqual(main_test(),0.99)  


if __name__ == '__main__':
    unittest.main()

这段代码是一个单元测试的示例。单元测试是一种软件测试方法,用于验证代码的各个单元(函数、类、方法等)是否按照预期工作。在这个例子中,使用了Python中的unittest模块来编写和执行单元测试。

具体解释如下:

1. `import unittest`:导入unittest模块,用于编写和执行单元测试。

2. `from main import main_test`:从main.py文件中导入main_test函数,以便在测试中调用它。

3. `class MyTestCase(unittest.TestCase):`:定义一个名为MyTestCase的测试类,继承自unittest.TestCase类。

4. `def test_something(self):`:定义一个名为test_something的测试方法,该方法用于测试main_test函数的返回值是否与期望值相等。

5. `self.assertEqual(main_test(),0.99)`:使用assertEqual方法断言main_test函数的返回值与期望值0.99相等。如果相等,则测试通过;如果不相等,则测试失败。

6. `if __name__ == '__main__':`:这是Python中的特殊语法,表示当代码作为主程序运行时,执行以下代码。

7. `unittest.main()`:执行所有的单元测试。

这段代码的主要功能是定义了一个名为MyTestCase的测试类,其中包含一个测试方法test_something。在测试方法中,调用main_test函数并断言其返回值与期望值相等。最后,通过unittest.main()执行所有的单元测试。

测试代码运行

覆盖率

posted @ 2023-09-17 12:49  azar0401  阅读(38)  评论(0)    收藏  举报