软件工程 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014 | |
---|---|---|
作业要求 | 根据给出的样例进行查重,并把结果记录在PSP表格中 | |
作业目的 | 对查重有一定的初步了解 | |
GitHub链接 | https://github.com/xingch123456789/3119000414 |
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 120 | 300 |
Estimate | 估计这个任务需要多少时间 | 180 | 360 |
Development | 开发 | 65 | 250 |
Analysis | 需求分析 (包括学习新技术) | 120 | 150 |
Design Spec | 生成设计文档 | 30 | 60 |
Design Review | 设计复审 | 45 | 50 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 32 | 30 |
Design | 具体设计 | 60 | 120 |
Coding | 具体编码 | 60 | 80 |
Code Review | 代码复审 | 30 | 40 |
Test | 测试(自我测试,修改代码,提交修改) | 35 | 30 |
Reporting | 报告 | 30 | 20 |
Test Repor | 测试报告 | 30 | 20 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 15 |
合计 | 867 | 1520 |
- 计算模块接口的设计与实现过程
double calculatSimilarity(const string& originalText, const string& plagiarizedText)
函数返回计算查重率,传参为原文和抄袭版本 - 计算模块接口部分的性能改进
- 计算模块部分单元测试展示
CMakefiles.txt配置
点击查看代码
cmake_minimum_required(VERSION 3.10)
project(SimilarityTest)
// 添加测试框架
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
// 添加测试目标
add_executable(SimilarityTest similarity_test.cpp)
target_link_libraries(SimilarityTest ${GTEST_BOTH_LIBRARIES})
// 添加测试
add_test(NAME SimilarityTest COMMAND SimilarityTest)
- 测试代码
点击查看代码
TEST(SimilarityTest, Test1)
{
std::string originalText = "D:/我的文档/test/orig.txt";
std::string plagiarizedText = "D:/我的文档/test/orig_0.8_del.txt";
double expected = 1.0;
double result = calculatSimilarity(originalText, plagiarizedText);
EXPECT_EQ(result, expected);
}
TEST(SimilarityTest, Test2)
{
std::string originalText = "D:/我的文档/test/orig.txt";
std::string plagiarizedText = "D:/我的文档/test/orig_0.8_add.txt";
double expected = 1.0;
double result = calculatSimilarity(originalText, plagiarizedText);
EXPECT_EQ(result, expected);
}
// 添加更多的测试用例...
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
-
测试结果
-
代码覆盖率