第一次个人编程作业
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014 |
| 这个作业的目标 | 设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。 |
1. Github地址
https://github.com/Azar0401/azar
2. PSP表格
| PSP2.1 | Personal 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()执行所有的单元测试。
测试代码运行

覆盖率

浙公网安备 33010602011771号