Skip to content

GLaxky/frontend-byebyeworld

Repository files navigation

backend-byebyeworld

软工三-协作式众包平台-前端仓库

项目简介

协作式众包测试系统(COLLECT)旨在提供一个测试发包方和众包工人之间的桥梁。发包方可以在平台上上传待测应用及测试文档、设定任务需求、发布众测任务,而众包工人可以在平台上选取任务、下载应文档及待测应用、从而离线完成测试,测试完毕后还可以在线填写测试报告供发包方查看。平台同时提供了报告推荐、报告协作、在线评分、报告可视化展示、实时通知、充值提现等功能来更好地增加用户体验感。

用户类型

  1. 发包方:发包方是一些软件开发人员,他们开发软件并进行一定的本地测试以后,为了检验应用在不同环境下的测试结果,在平台上发布测试任务。
  2. 众包工人:众包工人是了解了一定测试相关知识,并愿意使用自己计算机资源和环境来为发包方提供测试服务的人群。
  3. 管理员:系统管理员是可以修改平台上的任务推荐权重和报告相似度检测方式的管理人员。

项目结构

基本架构:前后端分离

前端:Vue3 + Element Plus组件库 + TypeScript 后端:SpringBoot + Mysql

使用工具

(感觉可以直接做个词云图,冒号后面的解释也许可以删掉?) Swagger:RESTFUL接口文档在线自动生成+功能测试 Postman:后端接口测试工具 Redis:缓存,用于存放常用数据,比如用户登录session信息和一些控制信息 Kafka:用于实现消息队列,在高并发场景下为通知模块提供缓冲 AliyunOSS:存放媒体文件和zip对象,减轻服务器压力 SpotBugs&Jacoco:静态代码分析以及代码覆盖率分析 GitlabRunner:CI/CD ......

模块介绍

模块总览

(做个总体模块视图?不好做就忽略这个部分吧)

各模块简介

  1. 用户模块:该模块负责用户登录注册、用户偏好设置、账户充值和提现相关功能
  2. 任务模块:最核心的模块之一,该模块负责“众测任务”(例如发包方创建任务)相关功能
  3. 任务分配模块:该模块负责“众测任务”与“众包工人”之间交互(例如工人接受任务)相关功能
  4. 报告模块:最核心的模块之一,该模块负责“测试报告”(例如工人发布报告)相关功能
  5. 引用模块:该模块负责管理“测试报告”之间引用关系相关功能
  6. 通知模块:该模块负责给平台用户发送通知消息相关功能
  7. 问答模块:每个“众测任务”有一个问答区,该模块负责“问答区”相关功能
  8. 管理员模块:该模块负责修改任务推荐权重、相似度检测方法相关功能

项目亮点

完整的业务闭环

业务闭环 (1).jpg

评价机制

报告质量把关

  1. 报告评分、留言

发包方可以给其创建任务下的任何报告进行评分【0-5分】、留言(上一个报告评分的图) 接受某个任务的众包工人也可以给该任务下的其他工人的报告进行评分、留言 这些评分计算得到平均分(结合评分人数),可以作为发包方评判报告质量的重要指标(上一个报告评分排序的图)

  1. 报告低分提醒

当报告的评分低于3分时,系统将通过发送通知消息的方式提醒该提分报告的作者进行报告修改(附上低分提醒的图)

  1. 报告反驳引用

当某位工人发现其他工人提交的报告存在错误时,还可以以“反驳”关系引用该错误报告的方式提交自己的报告,再自己报告中撰写反驳的原因以及自己的结论。(附上反驳引用提交报告的图)

工人水平与活跃度管理

  1. 工人能力评级

工人能力评级为“低”——level位于[0, 3), 工人能力评级为“中”——level位于[3, 4), 工人能力评级为”高“——level位于[4, 5], (level的初始值为3)

  1. 工人活跃度计算

工人活跃度为“低”——level位于[0, 6), 工人活跃度为“中”——level位于[6, 8), 工人活跃度为”高“——level位于[8, 10],

高并发场景优化

  1. kafka:通知模块使用kafka消息队列,应对高并发场景下大量通知消息缓存等问题
  2. redis:使用内存数据库存储用户凭证信息和相关系统控制参数,提高响应速率

查重算法

众包工人提交报告时,系统会检测其撰写的报告与同任务下的其他报告的相似度,相似度超过阈值时,系统会拒绝提交并返回与其相似度高的报告列表,要求其重新修改报告后再提交报告。(附上一个报告提交失败的截图)

  1. 图像相似度:感知哈希算法

参考自 https://github.com/nivance/image-similarity/blob/master/src/main/java/image/similarity/ImagePHash.java 基本思路是对每张图片生成一个"指纹"(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。

  1. 文本相似度:SimHash算法

参考自 https://blog.csdn.net/qq_33905939/article/details/105601848 文本相似度计算主要有五个流程:分词、Hash、加权、合并、降维。

注重用户体验

  1. 报告可视化——呈现给发包方一个友好、简洁、直观的报告关系图(附上一个报告)

将报告之间的引用关系可视化(红色线条表示“反驳”,绿色线条表示“拓展”) 将报告之间的相似度关系可视化(虚线表示报告之间的相似百分比,百分比越大,虚线越粗)

  1. 通知模块——促进平台用户之间的交互

某位用户评价其他用户的报告时,被评价的用户会收到通知 工人的奖励金额到账时,该工人会收到通知 工人提交的报告分数过低时,该工人会收到低分提醒通知 .......

  1. 问答区模块——促进发包方与众包工人之间的沟通

仅靠一个测试文档往往不能让工人完全了解发包方的要求,于是我们设置了一个问答区模块。在该模块中,众包工人若对任务有疑问,可以在问答区中提问,发包方收到通知后就此进行回答。

  1. 工人奖励机制——提高工人积极性

一个成熟的众包测试系统必然需要集成一个奖励模块以及配套的充值和提现功能,以便发包方根据任务紧急程度和重要程度设置悬赏金额,众包工人根据自己的时间和需求以及对奖金的评估来选择任务完成。

  1. 任务推荐机制——个性化

我们平台给予众包工人个性化设置测试偏好的能力,众包工人可以个性化设置其偏爱的测试类型、测试语言、测试环境、测试方式、测试领域、测试设备、测试难度...(附上一个设置测试偏好的图) 系统根据其偏好,通过推荐指数算法,为用户展示符合其偏好的若干个测试任务

  1. 帮助文档

用户通过点击页面左下角的“问号”图标,就可以浏览帮助文档,从而实现快速上手

  1. 简洁直观的用户界面

(6,7点可以和在同一页ppt)

其他亮点

  1. 项目开发方面: Swagger——RESTFUL接口文档在线自动生成+功能测试,便于前后端协作开发
  2. 项目测试方面:SpotBugs&Jacoco静态代码分析以及代码覆盖率分析

About

软工三-协作式众包平台-前端仓库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published