基于云服务的“软件测试”练习网站设计与开发

2023-11-30 04:55王雅娴
无线互联科技 2023年18期
关键词:网站设计云服务软件测试

基金项目:2022年度广东机电职业技术学院校级课题;项目名称:技能竞赛与课程教学融合共建——关于进一步提升竞赛教学转化质量的研究;项目编号:YJZD2022-13。

作者简介:王雅娴(1989— ),女,广东广州人,助教,硕士;研究方向:软件测试,云计算,分布式系统。

摘要:随着科技的飞速发展,课程的教学手段也日新月异。在计算机相关专业课程的授课过程中,书本、幻灯片等传统教学方式也逐渐不能满足学生的学习和实践需求。文章以“软件测试”课程为例,根据课程需求设计了一套预埋缺陷的网站系统供学生实操。该系统使用Java+SpringBoot系统作为后端,Vue框架搭建前端,并借助云主机与弹性ELB功能加以部署,以应对学生集中访问网站的瞬时压力。

关键词:软件测试;网站设计;云服务

中图分类号:TP311  文献标志码:A

0  引言

在现代化的教学过程中,尤其是偏向应用的课程中,以视频、动画、实际项目实践为代表的立体化教学在课堂上占据的比例越来越大。一些传统的教学手段,如书本学习、PPT演示正在逐渐被取代[1]。对于计算机相关的专业更是如此,如编程语言相关课程、人工智能相关课程,都需要学生通过大量实操和练习来掌握所学知识。“软件测试”课程作为里面较为特殊的一门课,现成的实践项目较为稀缺,其实践所需要的网站、软件需要预埋缺陷,即俗称的“bug”,供学生学习缺陷的挖掘方法。且所部署的网站需要一定的并发能力,能够在短时间内承受学生的并发点击量,且网站或软件的访问页面、接口最好能够假设在外网,方便同学们课下的复习和练习。为了满足以上需求,本文设计并实现了一套网站(后称“被测网站”),使用云服务完成部署,并使用了弹性ELB功能以应对并发压力。

1  系统需求分析和功能设计

被测网站应是一套包含页面、接口、数据库的完整动态网站,以满足软件测试的基本学习需求。网站主题采用市面上最常见的ERP系统,系统包含用户管理、订单管理、客户维护等页面,网站具体包含模块用户管理、客户管理、订单管理、商品管理4个大模块,如图1所示。其中,每个模块的重点功能如下:

1.1  用户管理

管理员权限管理功能,判断当前登录用户是否为管理员。管理员具有较高权限,可以对网站任意功能进行操作。普通用户应只具备读写权限,对于一些敏感信息,如客户信息、订单信息不具备删除权限;普通用户对用户管理模块无访问权限。

1.2  客户管理

客户管理模块分别对客户的信息和订单权限进行管理。其中,部分客户不具备开单权限,部分客户具备订单所有权限。

1.3  订单管理

訂单管理模块提供对客户订单的增删改查功能,其中订单号的生成和管理与商品管理的出入库功能相关联。

1.4  商品管理

商品的增删改查,列表的展示需要支持分页。子目录中有商品的库存管理功能。

2  系统详细设计

2.1  系统总体结构

根据前述需求,系统的整体结构设计如图2所示。

为了应对多个授课班级同学同时访问的压力,可以预估最大的访问瞬时压力值Pmax如下,其中Nclass为班级数量,Nstu为班级人数,F为网站的集中操作频率:

Pmax=∑Nclass1Nstu×F

首先假设每台云主机的带宽为W,单人打开网站最大页面所需瞬时下载流量为Wweb,可以预估云主机的数量为:

Necs=Wweb×PmaxW

由此,根据学生人数、网站大小和云主机带宽可以确认所需申请云主机的数量。在单台云主机上,需要部署从前到后的所有程序,单台云主机上的架构如图3所示。

其中,nginx可以配合ELB的流量分发功能,应对瞬时高访问压力。网站采用Vue框架开发,使用ajax与接口层进行交互。api采取SpringBoot的mvc架构[2],提供一系列网站所需接口,这种前后端分离的方式能最大程度上使前后端解耦,方便后期的部署和维护。数据库采用MySQL。

2.2  接口和数据库设计

由于网站页面较多,这里只以订单管理页面为例列举所需接口。订单管理前端页面部分效果如图4所示。

为了实现列表的增删改查以及订单号生成和关联功能,此页面需要的接口如表1所示。

所有接口采用RESTFUL规范化设计[3],通过类型指明基本用途,再根据参数不同,使用SpringBoot的mvc架构自动路由到order.java的相关接口中。所有订单数据都写到后端MySQL数据库里,涉及表为order表与guest表,其中关联客户接口需要做约束:

只允许关联已经存在于guest表中的客户。这个约束需要在接口中实现,核心程序逻辑如图5所示。

在MySQL中,order表与guest表的结构分别设计如表2—3所示。

其中订单表(order表)的guestId使用外键关联到客户表(guest表)中的同名字段,以防止订单和无记录的客户相关联。products字段记录的是商品信息,每个订单中包含多条商品记录,信息以中括号+键值对的字符串形式存储。

其他功能页面采取同样的接口设计与数据库设计策略,此处不再赘述。

2.3  向网站预埋缺陷

此网站的设计目的为软件测试课程的实践网站,故除了实现网站的所有正常功能之外,还要向网站中预埋bug。根据软件测试中最常见的bug类型[4],可以简单将预埋的bug分为几类,并分布到不同的页面中去,如图6所示。最简单构造bug的方法如:遗漏输入框相关校验、使部分页面响应式设计失效导致布局混乱、链接错误、接口遗漏参数校验、缺少权限处理等,可以在图1所示网站页面中随机挑选数个页面进行缺陷预埋。

3  系統运行和测试

本程序完成之后,部署在华为云服务上,云主机采用云耀云服务器HECS,这种服务器相比于普通ECS更轻量级,适用于轻量级网站及应用搭建。基于学生人数和网站峰值流量(实际测试单人频繁点击网站的峰值流量<20KB/s),根据2.1中公式,本次系统部署使用HECS配置如下:1核CPU,2 GB内存,2Mb/s公网带宽。搭载EulerOS2.0 linux系统。Java环境为1.8.0_342。云主机共两台,挂在ELB服务下。部署后,经测试,网页接口平均响应速度在80ms左右。使用jmeter工具对单一接口进行短时间并发访问,在并发压力1 000的情况下,接口响应速度在120ms左右,cpu占用10%,内存占用93%,可以考虑适当提高云主机内存配置。

4  结语

本文基于云主机和ELB服务,使用Vue+ SpringBoot前后端分离的方法完成了一个软件测试用的ERP系统,并预埋了部分bug供学生挖掘。该系统架构部署灵活,易于维护和根据使用人数进行横向拓展,通过适当修改可灵活用于多种教学和实践场景。本系统已用于技能大赛的练习及软件测试课程的日常教学。

参考文献

[1]臧丽娜,贾蒙蒙.测试工具在软件测试实验教学中的应用[J].福建电脑,2023(7):122-125.

[2]姚慧广,赵岳松.Web编程中MVC模型的应用[J].微机发展,2002(3):9-10.

[3]RICHARDSON L,RUBY S.RESTful web services[M].Cambridge:OReilly Media,2008.

[4]王蓁蓁.软件测试理论初步框架[J].计算机科学,2014(3):12-16,35.

(编辑  王雪芬)

Design and implementation of software-testing exercise website based on cloud service

Wang  Yaxian

(Guangdong Mechanical & Electrical Polytechnic, Guangzhou 510550, China)

Abstract:  With the rapid development of technology, teaching methods in courses have also been evolving. Traditional teaching methods such as textbooks and slides are gradually becoming insufficient to meet the learning and practical needs of students, especially in computer-related disciplines. In this paper, taking the software testing course as an example, a website system with pre-embedded defects was designed to facilitate students hands-on practice according to the course requirements. The system utilizes Java and SpringBoot as the backend, Vue framework for the front end, and leverages cloud hosting and Elastic Load Balancer (ELB) functionality to handle the momentary surge in website traffic when students access the system simultaneously.

Key words: software testing; website development; cloud service

猜你喜欢
网站设计云服务软件测试
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
企业网站建设的探讨
互联网背景下传媒业的转型
云服务环境中低碳型教育信息化模式研究
云服务环境下的高校协同创新研究
基于云服务的加密式门禁系统设计
网站设计课程内容优化探讨
软件测试工程化模型及应用研究