问卷调查系统

概述Overview

常规调查问卷方法在各行各业的统计分析中发挥越来越重要的作用,许多数据的收集都是通过大量使用到问卷调查与访谈方法。为便于进一步了解被调查对象存在深层次的需求与情况,深度做好统计分析与调查工作,更加客观准确地反映调查人员的状况,所以需要进行问卷调查系统的设计与实践。调查问卷系统建立在互联网的基础上构建一个依托网络的问卷设计、发布、统计和内容归集的系统。传统纸质问卷存在设计与印制问卷成本高,且后期纸质问卷作为档案资料保存较麻烦。问卷的发放、回收、统计流程复杂,容易产生漏卷废卷统计错误等问题,问卷可控性差。统计与分析内容难度较大整体效果不好。依托于互联网中的调查问卷系统能够高效地执行大批量的问卷调查并且增强调查结果的客观性,能够使被调查对象不受影响回答问卷,便于调查工作信息化保存,相比商业网站上做调查问卷,本系统也可以在内网中进行部署,提高数据保密性。本系统的设计是基于B/S 架构下实现的 Web 项目,用户可以通过PC端的主流浏览器使用本系统。本系统采用主流的开发框架构建系统服务端以及客户端,采用主流数据库实现数据持久化。调查问卷系统使用java语言开发,使用idea编译器开发,使用springboot框架实现。

相关技术Relevant Technologies

Springboot:该系统使用Spring MVC作为Web框架,可以处理问卷系统的请求和响应,并实现路由和控制器的功能。结合 Spring Boot 的数据库支持,可以使用 Spring Data JPA 或其他数据库访问框架来处理问卷系统中的数据持久化操作,支持关系型数据库和非关系型数据库。借助 Spring Boot 的 MVC 模式和 Spring Web,可以快速构建和发布符合 RESTful 风格的 API 接口,以便与前端或其他系统进行数据交互。Spring Boot 提供了丰富的测试工具和便捷的调试功能,可以通过单元测试、集成测试和功能测试等方式来保障问卷系统的质量和可靠性。

Spring Boot 提供了自动配置的特性,可根据应用程序的设置和依赖自动配置各种组件。另外,Spring Boot 还有强大的依赖管理工具,可以简化项目的构建和维护。Spring Boot 集成了各种监控工具和日志管理框架,可以方便地进行应用程序的监控、日志记录和错误追踪等。

Maven:该系统使用Maven框架,Maven 使用 POM(Project Object Model)文件来定义项目的依赖关系,可以轻松地管理项目所需的外部库和模块的版本、范围及其间的依赖关系。Maven 定义了一套标准的构建生命周期,包括编译、测试、打包、部署等阶段,可以通过执行预定义的命令(如 mvn clean install)来触发相应的构建过程。Maven 具有丰富的插件生态系统,通过插件可以扩展构建功能,比如进行静态代码分析、代码生成、单元测试和代码覆盖率检测等。

Maven 使用基于约定的方式来配置项目,可以使用默认的目录结构和命名约定,也可以通过自定义配置来适应特定项目需求。Maven 提供了一个中央仓库(Central Repository)来存储常用的第三方库和插件,可以方便地引入这些库和插件到项目中。Maven 支持多模块项目,可以将一个大型项目拆分为多个模块,各个模块之间可以相互依赖和独立构建。Maven 允许开发者定义自己的构建生命周期,并通过插件执行自定义的构建任务。

Mybatis:该系统使用Mybatis框架,MyBatis 提供了简单而直观的方式来执行数据库操作,包括插入、更新、查询和删除等,可以使用 SQL、存储过程或者自定义的映射语句进行数据访问。MyBatis 通过配置文件和注解来映射数据库表与 Java 对象之间的关系,可以将查询结果自动映射为 Java 对象,方便进行对象的操作和处理。MyBatis 提供了灵活的动态 SQL 支持,可以根据不同的条件生成不同的 SQL 查询语句,使得查询更加灵活和可动态扩展。MyBatis 内置了可配置的缓存机制,可以在映射文件或者注解中配置缓存策略,提高查询性能和响应速度。MyBatis 支持事务管理,可以通过配置文件或者编程方式进行事务的控制和管理,确保数据库操作的一致性和可靠性。MyBatis 提供了方便的分页查询支持,可以通过设置分页参数来实现结果的分页展示。

MySQL:该系统使用MySQL数据库来存储数据,MySQL 是一种关系型数据库管理系统,采用基于表格的数据存储模型,支持事务和 ACID 属性(原子性、一致性、隔离性和持久性)。MySQL 的安装和配置相对简单,具有友好的命令行界面和图形化界面工具,使得数据库的管理和操作更加直观和方便。MySQL 可以运行在多个操作系统平台上,包括 Windows、Linux、macOS 等,提供了跨平台的兼容性。MySQL 通过使用基于索引的查询优化技术,能够快速处理大量的数据并提供高效的查询性能。MySQL 支持水平和垂直的扩展,可以通过添加更多的服务器节点、增加硬件资源(如 CPU、内存)或者使用主从复制等方式来提高数据库的容量和性能。

Junit:该系统使用Junit进行测试,Junit 使用注解来标识测试方法和测试类,例如 @Test 用于标识一个测试方法,@Before 和 @After 用于标识在测试方法执行前后需要执行的方法。JUnit 提供了一组断言方法,用于验证方法的行为和结果是否符合预期,例如 assertEquals() 用于比较两个值是否相等,assertTrue() 用于验证一个条件是否为真。JUnit 定义了测试生命周期中的各个阶段,如 @BeforeClass 和 @AfterClass 用于在类执行前后执行的方法,@BeforeEach 和 @AfterEach 用于在每个测试方法前后执行的方法。JUnit 支持参数化测试,可以通过 @ParameterizedTest 和 @ValueSource 等注解来定义参数化测试用例,使得可以针对不同的参数运行测试。JUnit 提供了 @Test 注解的 expected 属性,用于标识一个测试方法预期抛出的异常类型,可以确保测试方法在抛出指定异常时通过。JUnit 允许将多个测试类组合成一个测试套件,用于运行一组相关的测试,可以通过 @RunWith 和 @Suite 注解来组织和执行测试套件。

Jacoco:该系统是Jacoco进行测试,JaCoCo(Java Code Coverage)是一个开源的 Java 代码覆盖率工具。它用于衡量在软件测试期间执行的代码的覆盖率,帮助开发者了解测试用例对源代码的覆盖程度,并通过生成覆盖率报告来指导测试和代码优化工作。JaCoCo 可以统计每行代码是否被执行的次数,计算代码行的覆盖率并生成报告,帮助开发者了解哪些代码行被测试用例执行,哪些被忽略。JaCoCo 提供分支覆盖度的指标,用于统计分支语句的执行情况,帮助开发者评估每个分支的覆盖率,识别可能的代码路径疏漏。JaCoCo 通过统计方法的调用次数来衡量方法的覆盖率,帮助开发者判断哪些方法被测试覆盖,哪些方法未被测试到。JaCoCo 可以统计类的执行情况,包括类的加载和实例化次数,帮助开发者了解哪些类被测试覆盖,哪些类未被覆盖。JaCoCo 生成详细的源代码覆盖率报告,以可视化的方式显示代码行的覆盖情况,帮助开发者快速定位和修复测试覆盖不足的代码。

Jmeter:该系统使用Jmeter进行测试,JMeter(全称 Apache JMeter)是一个开源的性能测试工具,它可以用于对各种类型的应用程序进行负载和性能测试。JMeter 主要用于模拟多种负载条件,以评估应用程序在不同负载下的性能,并生成性能报告。JMeter 支持多种常见的协议,包括 HTTP、HTTPS、FTP、SOAP、REST、JMS、SMTP、TCP 等,可以模拟各种类型的请求和响应。JMeter 使用测试计划来组织测试用例,用户可以自定义并配置多个线程组、取样器(Sampler)、监听器(Listener)和断言器(Assertion)等组件,以满足不同的测试需求。JMeter 具有强大的负载和并发测试能力,可以模拟大量的用户同时访问应用程序,包括通过线程组配置虚拟用户、设置用户行为和延迟时间等。

JMeter 提供了多个监听器(Listener),用于实时监测和分析各种性能指标,如响应时间、吞吐量、错误率等,可以生成详细的性能报告和图表。

系统设计System Design

我与队友一起进行的系统设计,设计的内容包括,使用的架构,此工程使用了MVC架构,因为我们负责了不同的模块, 但是模块间还有很强的联系性,我们统一了一些共用的方法名称,和变量名称。在数据库存储方面,因为我们的模块需要使用共同的数据,所以我们同意表的名称,以及键的名称和属性。

编码Coding

以创建问卷和查看问卷模块为例

首先先定义出四个实体类

 随后定义相应的mapper

在service层定义相应方法。

 

在controller定义相应方法

测试Testing

选择所属项目和受众群体模块测试:

打开应用并进入创建问卷页面,在所属项目下拉菜单中选择一个项目验证所选的项目是否正确地显示在页面上,在调查类型下拉菜单中选择一个调查类型验证所选的调查类型是否正确地显示在页面上在模板下拉菜单中选择一个模板。验证所选的模板是否正确地显示在页面上,

保存问卷信息并验证信息是否成功关联到数据库中。

创建问卷模块测试:

在问卷名称输入框中输入一个有效的问卷名称,长度不超过指定限制。

验证问卷名称是否正确地显示在页面上,保存问卷并验证问卷名称是否成功保存到数据库中。

设计问卷标题和问卷内容模块测试:

使用问卷设计编辑器添加一个单选问题,输入问题的内容和选项,并设置正确的选项跳转规则。验证问题是否正确地显示在页面上,包括问题类型、内容和选项。检查选项跳转规则是否正确保存到数据库中,重复以上步骤,测试多选问题和填空问题的添加和设置。

验证所有添加的问题是否正确显示和保存到数据库中。确保问卷设计的呈现形式符合预期,包括排版美化和易于操作和查看。

统计功能测试:

打开应用并进入答卷查看界面,选择要查看的项目,点击相关按钮以选择项目,验证所选项目是否正确地显示在页面上,确认是否成功加载该项目下所有问卷的答题情况。检查问卷答题情况是否与数据库中的数据一致。

 

问卷查看模块测试:

在答卷查看界面选择特定的问卷,验证所选的问卷是否正确地显示在页面上,确认是否成功加载该问卷的答题情况,检查问卷答题情况是否与数据库中的数据一致。

明细模块测试:

在问卷查看界面选择特定的问卷并点击进入明细界面,确认明细界面是否成功加载选定问卷的答题情况,检查问卷标题、问卷说明是否正确地显示在页面上,检查问题类型、问题答案、答题人等信息是否正确地显示在页面上,验证问题的排版美化和易于操作和查看的效果。

 运行截图

查看问卷

 

显示问卷

创建问卷

创建问卷

设计问卷

单题统计

发布问卷(这里我没有想到更好的方式,所以就用的url路径发布)

重复发布会被提醒

删除问卷 

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值