团队做业3需求改进与系统设计

第一部分、需求与原型改进

1.1改进的原型

1.1.1改进的说明前端

        相较上一次的原型,这一次咱们肯定了主题颜色,而且使功能一眼就能看懂,让新用户能很快上手。vue

1.1.2高保真原型java

 

1.1.3 高保真原型下载地址web

         https://pan.baidu.com/s/1pp1-OdedHYaKU0Uof9lS7gajax

1.2改进的需求规格说明书

1.2.1改进说明算法

一、原版:数据库

 

改进版:apache

 

理由:json

       不把使用人群仅仅局限在在校学生中,能够将使用人群的范围扩大到学生辅导员上。我校如今多数为研究生毕业后留校当辅导员,因此咱们的辅导员年龄跟咱们大学生差很少大,而且也是刚刚结束学业走向工做岗位。所以,他们的经济实力也不高,也会有冲动消费的时候。因为辅导员与在校大学生的年纪相仿,咱们购买东西的方向也许类似,所以咱们的辅导员也能够加入此平台。小程序

二、原版:

 

改进版:

 

理由:

       应用目标新增了人群——学生辅导员,所以用户角色分析表中也应该增长相应人群。

三、原版:

 

改进版:

 

理由:

       随着该APP的发展运营,用户的需求量会变得愈来愈多,咱们的工做量也将会变得愈来愈大。并且如今不少人都对二手交易网站以及APP有着不一样的想法,所以咱们的软件也会有不断地创新以及提高。所以,咱们小组以现有的人数必定是不足够的。因此,咱们不只要在技术上有所进步,之后在人数上也要有所扩展。

1.2.2需求规格说明书下载地址

        https://pan.baidu.com/s/1zzqwn7t_xECmPUfUYoW7bg

第二部分、系统设计

2.1系统架构设计

2.1.1设计摘要说明

 

咱们架构层分为前端UI,展现层,业务层,数据层,数据库,运行环境。

 

部分架构层的说明:

 

 

前端UI

  因为咱们开发的是一款微信小程序,因此在前端UI设计上,咱们运用小程序支持的wxml,wxss进行开发,同时加入js实现动态交互。

 

展现层

  小程序基于vue.js,为了让程序具备可扩展性,咱们将数据动态渲染进来,方便使用者进行修改,即模板渲染引擎。

同时在微信小程序中,前端页面运用ajax技术和后端进行交互,将数据异步刷新进来。这样在减小服务器刷新压力的同时,实现先后端分离。

 

业务层

  包含了系统所须要的全部功能上的算法和计算过程,并与数据访问层和表现层交互。咱们的业务层主要服务于商品的查询,商品的管理,订单的查询,订单的管理,评论的管理。

 

数据层

  咱们将采用MySQL关系数据库管理系统,进行数据库的设计。经过用户表,订单表等与业务层中的下单处理以及各类查询操做进行交互。

 

 

 

2.2.2数据库相关设计

 

 数据联系

 

数据库表结构设计以及E-R图

 

 

 

 

2.1.3平台架构设计

       咱们选用的Web服务器是apache-tomcat-9.0.6。

  Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,而运行tomcat 时,它实际上做为一个与Apache 独立的进程单独运行的。咱们平时也是采用的这样的服务器,熟悉操做便于项目进展。

 

功能基本描述

购物车业务设计

 

 

 

 

  1. 加入购物车: 加入购物车插入到库中一条购物记录,同时插入到缓存中,缓存的key是记录的id
    未登陆状态: 用户未登陆时点击加入购物车,将productId ,skuId,buyNum 转换成json存到cookie中(同一件商品不一样的skuId视为两个商品,相同的skuId和productId视为相同商品数量累加),用户登陆成功的时候接收用户的消息将cookie中的商品信息保存到数据库中,而后清空cookie数据(京东)否则会出现登陆成功后删除购物车商品而后退出,购物车中显示问题 ;      登陆状态: 点击加入购物车将long userId,long productId,long skuId,int count 存到库中,相同的productId和skuId 数量累加,不一样的skuId新增一条 addToCart(long userId,long skuId,int count); //加入sku到购物车商品
  2. 修改商品数量:
    未登陆状态:用户未登陆时,点击加减数量,根据productId和skuId从cooike中将商品数量进行加减,注意校验cooike中的数量不能小于0,不能大于库存数量                             登陆状态:用户登陆状态时,点击加减数量productId和skuId,userId将用户购物车中某个sku的数量增长或减去differ值,注意校验库存数量 updateAmount(long userId,skuId,int differ,List selectedSkuIds); //将用户购物车中某个sku的数量增长或减去differ值。此方法更新商品后,会根据selectedSkuIds从新计算一遍购物车价格,返回知足条件的优惠券
  3. 删除购物车记录
未登陆状态:用户未登陆时,根据productId和skuId删除cookie中的记录 deleteCart(long userId,long skuId, List selectedSkuIds); //将某个sku从用户购物车移除。此接品,在清除后台会重复计算selectedSkuIds价格,并会返回选中的sku列表与未选中的sku列表集合。及相应优惠券。                                                                                登陆状态:登陆状态下,直接根据productId和skuId以及userId删除库中数据

  4.购物车列表展现

未登陆状态:从cookie中取出productId以及skuId列表展现商品信息
登陆状态:登陆状态下根据用户id查询库中的记录数getCart(long userId,list selectedSkuIds); //查询用户购物车。此接口会从新计算selectedSkuIds,并返回选中与未选中sku列表集合,返回相应的知足条件的优惠券信息。

 

  5.订单提交成功后更新购物车数量以及修改购物车状态;订单提交成功后接收订单成功消息,更新购物车状态和数量删除缓存记录

  6.商品下架后,更新库存状态,显示失效;商品下架后接收消息修改购物车里的商品状态为失效

 

基本功能划分

 

2.2任务分解WBS

一、团队项目的WBS

 

二、团队成员估计各自任务所需时间

 

第三部分、测试计划

奶牛易物测试报告

1、概述

测试背景:

        咱们小组已经完成了对该微信小程序的需求分析,采用多种方法进行了详实可靠的用户调研并从男女比例、省份比例、年及比例等各个方面进行了数据统计与分析,确保获得更加有说服力的结果;根据调研结果,咱们进行了需求分析说明书的撰写,进一步分析了产品的开发目标、用户特色,并作出功能模块规定、细化的输入输出要求以及对该微信小程序的数据管理能力、故障处理能力、运行环境问题、接口问题作出规定与要求;规定功能模块后,小组人员又对该微信小程序进行了精心的原型设计。

       从功能模块上看,主要分为三大板块:首页(进行商品的浏览、搜索)、购物车(可将选择好想要购买的商品加入购物车)、个人易物(分为个人购买和个人出售)。

测试目的:

       在开发过程当中,咱们会对代码的每一个具体方法、局部功能进行测试。除此以外,咱们将会在每一个模块完成之后进行模块化测试,对首页的测试目标是:在没有输入关键字进行搜索时,能够根据搜索量顺序罗列出物品。进行关键字搜索后,查找到相关物品;对购物车的测试目标是:浏览商品后选中,点击“加入购物车”,在购物车页面进行浏览,查看商品是否被加入,若是成功加入商品,则选中商品进行结算,查看结算效果是否正确;对个人易物的测试目标是:点击进入页面后,能够查看本身售卖的商品记录和购买的商品记录。

 

测试人员:

成员姓名 职务
赵莉 开发人员、营销人员、测试人员
王文雨 开发人员、测试人员、版本控制人员
李庭娟 开发人员、营销人员、测试人员
吴建瑜 开发人员、测试人员、版本控制人员
祁晨 开发人员、营销人员、测试人员

 

测试术语:

       Junit、单元测试、算法正确性测试、Alpha测试、Beta测试、兼容性测试、性能测试

2、测试环境

硬件环境:正常或更好配置的移动端(支持微信);

软件环境:微信5.3版以上、JProfiler测试软件、Junit、LoadRunner和Apache JMeter测试工具;咱们小组计划使用微信WEB开发者工具进行开发,该工具上对于程序调试主要有三大功能区:模拟器、调试工具和小程序操做区,咱们会使用该开发工具进行程序的测试;

测试环境需求:配套齐全的开发工具,包括jdk、Tomcat服务器、远程云服务器、MySQL数据库等。

3、测试人员

 

奶牛易物测试分工表:

测试员 测试员任务
王文雨 展现界面布局测试
吴建瑜 展现界面交互测试(超连接、表单等)
祁晨 首页功能测试
李庭娟 购物车算法测试
赵莉 个人易物管理测试

测试人员要求:

(1)熟悉业务,了解系统,可以对系统进行全面的测试

(2)用客观的思考方式站在用户的角度分析问题、需求

(3)多思考,不要拘束于惯性思惟,可以考虑到极端状况

(4)不要闭门造车,充分利用各类学习资源进行充电

(5)善于对测试过程当中出现的问题或者学到的知识感悟进行记录,以便与他人进行交流分享

4、测试安排

占用时间:

       在开发过程当中,咱们会对代码的每一个具体方法、局部功能进行测试。除此以外,咱们将会在每一个模块完成之后进行模块化测试。最后,咱们会对总体间的交互及全部的模块功能进行测试。可见,测试工做在整个代码开发过程当中是时刻伴随的。

 

测试方法:

       自动化测试、手动测试;白盒测试、黑盒测试;中断测试、临界测试、压力测试等,对程序的覆盖有如下几个方面:数据覆盖、逻辑覆盖、语句覆盖、断定覆盖、条件覆盖等。能够划分等价类把全部可能的数据输入划分为若干部分,而后从每一部分选择少数具备表明性的数据做为测试用例。

(1)有效等价类合理,有意义的输入数据构成的集合,检验程序是否实现规格说明预先规定的功能和性能。

(2)无效等价类不合理,无心义的输入数据构成的集合,检验程序的容错能力。边界值分析大量的错误发生在输入或输出的边界上,而不是某个范围的内部。

对程序的覆盖以下:

(1)语句覆盖:设计若干个测试用例,运行所测程序,使得每一可执行语句至少执行一次,语句覆盖是最弱的逻辑覆盖准则。

(2)断定覆盖:设计若干测试用例,运行被测程序,使得程序中每一个判断的取真分支和取假分支至少经历一次,即判断的真假值都能知足If…else 语句。

(3)条件覆盖:设计若干测试用例,运行被测程序,要使判断中的每一个条件的可能取值至少知足一次。如:if..else   For(..)  while()等语句。

(4)路径覆盖:覆盖全部可能的路径。

(5)断定-条件覆盖:使得每一个条件的全部可能至少出现一次,而且至少每一个判断自己的判断结果出现一次。

 

功能测试的经常使用方法以下:

(1)页面连接检查,每个连接是否有对应的界面

(2)相关性检查,删除/增长一项会不会对其余项产生影响,若是产生影响,是否正确

(3)检查按钮功能是否正确

(4)字符串长度检查,输入超出需求所说明的字符串长度的内容,看系统是否检查,会不会出错。

(5)字符类型检查

(6)标点符号检查

(7)中文字符处理,乱码或出错

(8)检查带出信息的完整性,在查看信息和update信息时,查看所填写的信息是否是所有带出,带出信息和添加的是否一致等。

 

工具引用:

       功能模块测试采用Junit单元测试进行测试,性能测试引用JProfiler,压力测试工具引用LoadRunner和Apache JMeter测试工具。

5、测试总结

参考文献:

易物模型及其求解算法

http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbname=CJFD2010&filename=JLDX201004028&uid=WEEvREcwSlJHSldRa1FhcTdWajFtaXRldUNZU3lFZzlBaGE2OWpuOXhBUT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MjczOTBoMVQzcVRyV00xRnJDVVJMS2ZZdVJuRmlEblVyM0pMeUhQZHJHNEg5SE1xNDlIYklSOGVYMUx1eFlTN0Q=

大学生校园以物易物平台的设计与实现

http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbname=CJFDLAST2015&filename=JGZK201503018&uid=WEEvREcwSlJHSldRa1FhcTdWajFtaXRldUNZU3lFZzlBaGE2OWpuOXhBUT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MDg5MTJUM3FUcldNMUZyQ1VSTEtmWXVSbkZpRG5VTHpJTHlyUlpiRzRIOVRNckk5RWJJUjhlWDFMdXhZUzdEaDE=

校园易物网络平台建设的研究及实现路径

http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbname=CJFD2012&filename=BFJJ201224016&uid=WEEvREcwSlJHSldRa1FhcTdWajFtaXRldUNZU3lFZzlBaGE2OWpuOXhBUT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MTQwMTZyV00xRnJDVVJMS2ZZdVJuRmlEblViN0xKeXZCWkxHNEg5UE9xNDlFWW9SOGVYMUx1eFlTN0RoMVQzcVQ=

测试资源:

       人力方面——目前咱们小组成员5人,其中有4人来自校工做室,均有必定的代码能力,均承担过java web系统的开发工做,工做认真严谨,积极进取。可是对于测试工做,项目小组成员大多没有作过太多的训练,在对项目的测试工做方面还需进行进一步学习。

        时间方面——此次项目总体开发周期不长,也并不符合正规的开发周期,咱们小组成员也非专业测试人员,所以要想将各个模块、各个开发时间段作到完善是存在较大难度的,所以在时间上相对来讲是比较匆忙的,须要小组成员共同努力。

相关文章
相关标签/搜索