外卖订餐管理系统的质量保证与测试

学生姓名:

学    号:

班    级:

学年学期: 2021-2022学年第二学期

课程名称:软件质量保证与测试

目录

1   引言............................................................ 1

1.1  目的....................................................... 1

1.2  背景....................................................... 1

2   系统分析概述.................................................... 2

2.1  系统需求分析............................................... 2

2.2  系统功能分析............................................... 3

2.3  系统结构图................................................. 5

2.4  详细设计流程图............................................. 5

3   系统详细设计.................................................... 7

3.1  测试计划................................................... 8

3.2  测试用例设计.............................................. 10

4   测试执行....................................................... 17

5  缺陷报告....................................................... 20

  1. 引言

1.1 目的

本系统在上线前将在多种测试方法下,通过大量模拟数据来进行测试以保证软件质量的可靠性。

基于不同的立场,系统的软件测试目的不同,从用户角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷,避免在上线使用后对消费者和商家带来经济上的损失和生活上的不便。从软件开发者角度触发,则希望通过测试能够表面该产品不存在系统上的错误和缺陷,验证该产品已确实实现了用户的要求,确立用户对软件质量的信心,提高用户信誉。

1.2 背景

随着电子商务的普及,越来越多的人接受了电子商务这种便捷、快速的交易形式,网上订餐系统的顺势而出很快受到了大家的欢迎。互联网的应用已普及千家万户这为网络订餐提供了良好的发展空间。同时,网上订餐服务的直观、有效、便捷等优点是传统的电话订餐业务无法比拟的。调查数据显示,白领更乐于选择网上订餐服务,网上订餐将是白领一族捕获餐店信息、进行订餐的发展趋势,同时对于当下的年轻大学生,学生食堂的饭菜已经满足不了它们的胃口,通过网上订餐购买校外的美食也成为了一大趋势。网络订餐随着互联网的成长会逐渐被人们所喜爱,正如几年前手机移动的短信一样,为企业带来的几百个亿的业务收入。在互联网世界里面,谁早一步在应用上创新,谁就掌握了未来的方向。

  1. 系统分析概述

2.1 系统需求分析

本系统主要的针对的客户有2类:消费者和商家。

对于消费者,消费者可以通过本系统进行线上订餐、订餐配送情况查询、个人订单查询、个人信息管理比如电话和配送地址等。

对于商家,商家可以通过本系统进行线上售餐、查询历史订单、统计营业额等。

本系统为用户提供了外卖订餐平台,主要针对的消费者为寻求便利的年轻人和工作忙碌的打工人,主要针对的商家是各类餐饮企业或个体户。

2.2 系统功能分析

商家功能分析:

登录功能

输入:账号、密码

输出:账号密码验证结果

性能:安全可靠性高,会对登录流程进行多重判断。

添加员工

输入:员工基本信息(姓名、电话、身份证号等)

输出:新增结果

性能:安全性高,对于插入数据会进行判断,防止有空缺字段。

编辑员工信息

输入:员工新信息

输出:修改员工信息结果

性能:安全性高,对于新数据会进行判断,防止有空缺字段和违规字段。

禁用员工

输入:员工id

输出:修改结果

性能:可靠性好,会对操作人和被操作人进行权限判断。

添加菜品种类

输入:新增种类信息(名称、评级)

输出:新增结果

性能:安全可靠性好,防止重复种类插入

删除菜品种类

输入:种类id

输出:删除结果

性能:安全可靠性好、会对删除菜品进行判断、防止删除种类里包含菜品。

添加菜品

输入:菜品基本信息(名称、口味、种类、价格等)

输出:添加结果

性能:安全可靠性好,防止新增重复菜品和检查菜品信息是否完整。

编辑菜品

输入:菜品新信息

输出:编辑结果

性能:安全可靠性好,检查菜品信息是否完整。

禁售菜品

输入:菜品Id

输出:修改结果

性能:安全可靠性好,会对操作人进行权限判断。

删除菜品

输入:菜品Id

输出:删除结果

性能:安全可靠性好、会对操作人进行权限判断,同时检查是否有套餐包含该菜品。

新增套餐

输入:套餐信息(名称、价格、包含菜品等)

输出:新增结果

性能:安全可靠性好,会检查套餐信息是否完整并且符合规范。

编辑套餐

输入:套餐新信息

输出:修改结果

性能:安全可靠性好,会检查修改信息是否符合规范。

禁售套餐

输入:套餐id

输出:修改套餐状态结果

性能:安全可靠性好,会对操作人进行权限判断。

删除套餐

输入:套餐id

输出:删除结果

性能:安全可靠性好,会对操作人进行权限判断。

订单明细

输入:订单id

输出:订单信息

性能:响应速度快,响应时间不会超过2秒。

用户功能分析:

登录注册功能

输入:用户名、密码

输出:验证结果

性能:稳定性好、吞吐量大,能够支撑上千用户同时登录。

添加购物车功能

输入:菜品信息、套餐信息

输出:添加结果

性能:安全稳定性好,能准确记录用于选择菜品或套餐。

下单支付功能

输入:菜品信息、套餐信息、用户信息、金额时间等

输出:下单支付结果

性能:安全稳定性高,对于多表同时操作能保证一致性,同时能支持上万用户同时下单的并发量。

个人信息管理功能

输入:修改信息

输出:修改结果

性能:安全可靠性好,会检查修改信息是否符合规范。

配送地址管理功能

输入:修改地址信息

输出:修改结果

性能:安全可靠性好,会检查修改信息是否符合规范。

个人订单查询

输入:用户id

输出:用户历史订单

性能:响应速度快,不会超过2秒。

2.3 系统结构图

2.4 程序设计流程图

商家登录程序流程图

商家新增员工程序流程图

商家删除种类程序流程图

商家新增菜品程序流程图

订单查询程序流程图

用户登录程序流程图

用户订餐程序流程图

3. 系统测试设计

3.1 测试计划

测试目标:

(1)为测试各项活动制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果。

(2)为项目实施建立一个组织模型,并定义测试项目中每个角色的责任和工作内容。

(3)开发有效的测试模型,能正确地验证正在开发的软件系统。

(4)确定测试所需要的时间和资源,以保证其可获得性、有效性。

(5)确立每个测试阶段测试完成以及测试成功的标准、要实现的目标。

(6)识别出测试活动中各种风险,并消除可能存在的风险,降低由不可能消除的风险所带来的损失。

测试内容:测试软件系统的功能是否完整有效、性能是否达标。对于商家,要测试5个功能模块,1:员工管理模块,要测试管理员新增员工、编辑员工和删除员工功能是否有效;2:种类管理模块,要测试店员新增种类和删除种类功能是否有效,对于删除种类,要严格注意该种类下是否有菜品,如果有菜品,应该无法删除;3:菜品管理模块,要测试店员新增菜品、编辑菜品、禁售菜品和删除菜品功能是否有效;4:套餐管理模块,要测试店员新增套餐、编辑套餐、禁售套餐和删除套餐功能是否有效;5:订单明细模块,要测试商家查看订单,根据订单号、开始时间和结束时间查询订单功能是否准确。对于用户,要测试用户登录功能、修改个人信息、编辑收货地址和下单功能是否有效。其中下单功能要严格周密测试。

测试计划:

1、单元测试:对各个功能单元进行测试,采用和白盒测试方法,测试用例要涉及语句覆盖、判定覆盖、条件覆盖和判定-条件覆盖,由编码人员自行完成。

2、集成测试:对多个功能单元集成进行测试,采用黑盒测试方法,测试用例设计采用等价划分法和边界值法。

3、系统测试:对整个软件系统进行功能、性能和安全测试。

3.2 测试用例设计

用户注册登录功能单元测试用例设计

采用白盒测试

根据用户登录流程图绘制控制流图

  1. 语句覆盖

输入数据(用户名、密码)

期望输出

实际输出

测试路径描述

user、123456

密码格式错误

登录成功

1 2 3 4 5 6 7

Null、123456

用户名不能为空

用户名不能为空

1 2 3 8 7

user、null

密码不能为空

密码不能为空

1 2 3 4 9 7

user、111

用户名或密码错误

用户名或密码错误

1 2 3 4 5 10 7

  1. 判定覆盖

输入数据(用户名、密码)

期望输出

实际输出

测试路径描述

user、123456Aa

登陆成功

登录成功

1 2 3 4 5 6 7

  1. 条件覆盖

输入数据(用户名、密码)

期望输出

实际输出

测试路径描述

user、123456Aa

登陆成功

登录成功

1 2 3 4 5 6 7

Null、123456

用户名不能为空

用户名不能为空

1 2 3 8 7

null、null

用户名不能为空

用户名不能为空

1 2 3 8 7

user、null

密码不能为空

密码不能为空

1 2 3 4 9 7

user、111

用户名或密码错误

用户名或密码错误

1 2 3 4 5 10 7

  1. 判定-条件覆盖

输入数据(用户名、密码)

期望输出

实际输出

测试路径描述

user、123456Aa

登录成功

登录成功

1 2 3 4 5 6 7

Null、123456

用户名不能为空

用户名不能为空

1 2 3 8 7

null、null

用户名不能为空

用户名不能为空

1 2 3 8 7

user、null

密码不能为空

密码不能为空

1 2 3 4 9 7

user、111

用户名或密码错误

用户名或密码错误

1 2 3 4 5 10 7

商家推出菜品功能测试用例设计

采用白盒测试

根据商家新增菜品流程图绘制控制流图

  1. 语句覆盖

输入数据(菜品名称、菜品价格、菜品种类、菜品口味选择)

期望输出

实际输出

测试路径描述

红烧肉、99.00、徽菜、null

添加成功

添加成功

1 2 3 4 5 6 7 8 9

null、99.00、徽菜、null

菜品名称不能为空

菜品名称不能为空

1 2 3 4 5 10 9

红烧肉、null、徽菜、null

菜品价格不能为空

菜品价格不能为空

1 2 3 4 5 6 11 9

锅包肉、99.00、徽菜、null

菜品名称重复

菜品名称重复

1 2 3 4 5 6 7 12

9

  1. 判定覆盖

输入数据(菜品名称、菜品价格、菜品种类、菜品口味选择)

期望输出

实际输出

测试路径描述

红烧肉、99.00、徽菜、null

添加成功

添加成功

1 2 3 4 5 6 7 8 9

  1. 条件覆盖

输入数据(菜品名称、菜品价格、菜品种类、菜品口味选择)

期望输出

实际输出

测试路径描述

红烧肉、99.00、徽菜、null

添加成功

添加成功

1 2 3 4 5 6 7 8 9

红烧肉、99.00、徽菜、(微辣、中辣、重辣)

添加成功

添加成功

1 2 3 4 5 6 7 8 9

红烧肉、99.00、null、null

添加成功

添加成功

1 2 3 4 5 6 7 8 9

null、99.00、徽菜、null

菜品名称不能为空

菜品名称不能为空

1 2 3 4 5 10 9

null、null、null、null

菜品名称不能为空

菜品名称不能为空

1 2 3 4 5 10 9

null、99.00、null、(微辣、中辣、重辣)

菜品名称不能为空

菜品名称不能为空

1 2 3 4 5 10 9

红烧肉、null、徽菜、null

菜品价格不能为空

菜品价格不能为空

1 2 3 4 5 6 11 9

红烧肉、null、null、null

菜品价格不能为空

菜品价格不能为空

1 2 3 4 5 6 11 9

红烧肉、null、徽菜、(微辣、中辣、重辣)

菜品价格不能为空

菜品价格不能为空

1 2 3 4 5 6 11 9

锅包肉、99.00、徽菜、null

菜品名称重复

菜品名称重复

1 2 3 4 5 6 7 12

9

锅包肉、99.00、徽菜、(微辣、中辣、重辣)

菜品名称重复

菜品名称重复

1 2 3 4 5 6 7 12

9

  1. 判定-条件覆盖

输入数据(菜品名称、菜品价格、菜品种类、菜品口味选择)

期望输出

实际输出

测试路径描述

红烧肉、99.00、徽菜、null

添加成功

添加成功

1 2 3 4 5 6 7 8 9

null、99.00、徽菜、null

菜品名称不能为空

菜品名称不能为空

1 2 3 4 5 10 9

红烧肉、null、徽菜、null

菜品价格不能为空

菜品价格不能为空

1 2 3 4 5 6 11 9

锅包肉、99.00、徽菜、null

菜品名称重复

菜品名称重复

1 2 3 4 5 6 7 12

9

用户下单功能集成测试用例设计

采用黑盒测试

  1. 等价类划分法

划分有效等价类和无效等价类

输入条件

有效等价类

无效等价类

下单信息是否完整(用户名、用户手机号、地址、菜品、备注)

user != null(1)

phone != null (2)

address != null(3)

dish != null (4)

mark != null(5)

user = null(6)

phone = null(7)

address = null(8)

dish = null (9)

mark = null(10)

  1. 设计有效等价类的测试用例

用例输入

期望输出

实际输出

覆盖等价类

user、13845678956、江汉区新城花园4栋301、单人套餐*1、微辣

下单成功

下单成功

1、2、3、4、5

  1. 设计无效等价类的测试用例

用例输入

期望输出

实际输出

覆盖等价类

user、13845678956、null、单人套餐*1、微辣

收货地址不能为空

收货地址不能为空

8

user、13845678956、null、null、null

收货地址不能为空

收货地址不能为空

8、9、10

user、13845678956、null、null、微辣

收货地址不能为空

收货地址不能为空

8、9

user、13845678956、null、单人套餐*1、null

收货地址不能为空

收货地址不能为空

8、10

user、13845678956、江汉区新城花园4栋301、null、微辣

菜品不能为空

菜品不能为空

9

user、13845678956、江汉区新城花园4栋301、null、null

菜品不能为空

菜品不能为空

9、10

  1. 边界值分析法

用例输入

期望输出

实际输出

覆盖等价类

user、13845678956、江汉区新城花园4栋301、单人套餐*1、null

下单成功

下单成功

1、2、3、4、5

user、13845678956、null、单人套餐*1、微辣

收货地址不能为空

收货地址不能为空

8

user、13845678956、null、null、null

收货地址不能为空

收货地址不能为空

8、9、10

user、13845678956、null、null、微辣

收货地址不能为空

收货地址不能为空

8、9

user、13845678956、null、单人套餐*1、null

收货地址不能为空

收货地址不能为空

8、10

user、13845678956、江汉区新城花园4栋301、null、微辣

菜品不能为空

菜品不能为空

9

user、13845678956、江汉区新城花园4栋301、null、null

菜品不能为空

菜品不能为空

9、10

4. 测试执行

  • 用户登录流程测试用例执行
  1. 测试结果
  1. 语句覆盖测试用例测试结果
  1. 判定覆盖测试用例测试结果
  1. 条件覆盖测试用例测试结果
  1. 判定-条件覆盖测试用例测试结果
  1. 测试代码

private String username;

private String password;

private String expected;

private static UserService userService = new UserService();

@Parameterized.Parameters

public static Collection<?> prepareData(){

Object [][] object = {

{"user","123456","密码格式错误"},

{"null","123456","用户名不能为空"},

{"user","null","密码不能为空"},

{"user","111","用户名或密码错误"}

};

return Arrays.asList(object);

}

public ceshi(String username, String password, String expected){

this.username = username;

this.password = password;

this.expected = expected;

}

@Test

public void testDate(){

userService.login(username,password);

Assert.assertEquals(expected, username.getReuslt());

}

  • 商家推出菜品测试用例执行
  1. 测试结果
  1. 语句覆盖测试用例测试结果
  1. 判定覆盖测试用例测试结果
  1. 条件覆盖测试用例测试结果
  1. 判定-条件覆盖测试用例测试结果
  1. 测试代码

private String dishName;

private double price;

private String category;

private List<String> flavors;

private String expected;

private static DishService dishService = new DishService();

@Parameterized.Parameters

public static Collection<?> prepareData(){

Object [][] object = {

{"红烧肉",99.00,"徽菜",null,"添加成功"},

{"红烧肉",99.00,"徽菜",{"微辣","中辣","重辣"},"添加成功"},

{"红烧肉",99.00,null,null,"添加成功"},

{null,99.00,"徽菜",null,"菜品名称不能为空"},

{null,null,null,null,"菜品名称不能为空"},

{null,99.00,null,{"微辣","中辣","重辣"},"菜品名称不能为空"},

{"红烧肉",null,"徽菜",null,"菜品价格不能为空"},

{"红烧肉",null,null,null,"菜品价格不能为空"},

{"红烧肉",null,"徽菜",{"微辣","中辣","重辣"},"菜品价格不能为空"},

{"锅包肉",99.00,"徽菜",null,"菜名名称重复"},

{"锅包肉",99.00,"徽菜",{"微辣","中辣","重辣"},"菜品名称重复"}

};

return Arrays.asList(object);

}

public ceshi(String dishName, double price, String category, List<String> flavors, String expected){

this.dishName = dishName;

this.price = price;

this.category = category;

this.flavors = flavors;

this.expected = expected;

}

@Test

public void testDate(){

dishService.addDish(dishName,price,category,flavors);

Assert.assertEquals(expected, dishService.getReuslt());

}

  • 用户下单流程测试用例执行
  1. 测试结果
  1. 有效等价类测试结果
  1. 无效等价类测试结果
  1. 边界值分析法测试用例测试结果
  1. 测试代码

private String username;

private String userphone;

private String address;

private String dishes;

private String mark;

private String expected;

private static OrderService orderService = new OrderService();

@Parameterized.Parameters

public static Collection<?> prepareData(){

Object [][] object = {

{"user","13845678956","江汉区新城花园4栋301","单人套餐*1",null,"下单成功"},

{"user","13845678956",null,"单人套餐*1","微辣","地址不能为空"},

{"user","13845678956",null,null,null,"地址不能为空"},

{"user","13845678956",null,null,"微辣","地址不能为空"},

{"user","13845678956",null,"单人套餐*1",null,"地址不能为空"},

{"user","13845678956","江汉区新城花园4栋301",null,"微辣","菜品不能为空"},

{"user","13845678956","江汉区新城花园4栋301",null,null,"菜品不能为空"}

};

return Arrays.asList(object);

}

public ceshi(String username, String userphone, String address,String dishes, String mark, String expected){

this.username = username;

this.userphone = userphone;

this.address = address;

this.dishes = dishes;

this.mark = mark;

this.expected = expected;

}

@Test

public void testDate(){

orderService.makeOrder(username,userphone,address,dishes,mark);

Assert.assertEquals(expected, orderService.getReuslt());

}

5. 缺陷报告

模块名称

用户登录页面

版本号

V1.1

测试人

汪伟

缺陷类型

功能错误

严重级别

B

可重复性

缺陷状态

New

测试平台

Win10

浏览器

Chrome

简述

系统规定密码必须大于8为数,且包含字符

操作步骤

1.进入外卖系统用户前台登录页面

2.输入用户名密码

3.点击同意协议按钮

4.点击登录

5.登录成功

实际结果

登录成功

预期结果

密码格式错误

注释

建议修改代码,在收到密码后先进性格式校验,再从数据库查询用户是否存在。

模块名称

用户下单页面

版本号

V1.1

测试人

汪伟

缺陷类型

功能错误

严重级别

A

可重复性

缺陷状态

New

测试平台

Win10

浏览器

Chrome

简述

从实际生活上来说,用户下单并不是必须填写备注,而本系统不填写备注就无法下单。

操作步骤

1.进入外卖系统用户前台登录页面

2.输入用户名密码

3.点击同意协议按钮

4.点击登录

5.选择菜品添加至购物车

6.点击去下单

7.选择收货地址

8.点击下单

实际结果

显示服务端错误

预期结果

下单成功

注释

建议修改后端判定信息是否完整部分的代码,同时检查数据库表设计,备注项是否设置为非空,如果是非空,建议修改。

软件质量测试大作业示例相关推荐

  1. 软件质量测试大作业,软件质量管理大作业.ppt

    <软件质量管理大作业.ppt>由会员分享,可在线阅读,更多相关<软件质量管理大作业.ppt(22页珍藏版)>请在人人文库网上搜索. 1.Minitab软件质量管理运行的数据分析 ...

  2. 软件质量保证与测试大作业,软件测试大作业..docx

    软件测试与质量保证期末大作业 江西财经大学 "软件测试与质量保证"课程作业(实验)报告 组长姓名学号 成员 专业 软件工程班级 作业名称多部电梯调度模拟软件功能性测试 指导教师 开 ...

  3. 软件质量保证与测试大作业,软件测试大作业.docx

    文档介绍: 软件测试与质量保证期末大作业江西财经大学"软件测试与质量保证"课程作业(实验)报告组长姓名学号成专员业软件工程班级作业名称指导教师多部电梯调度模拟软件功能性测试开课学期 ...

  4. python大作业代码_爬虫大作业(示例代码)

    1.选一个自己感兴趣的主题(所有人不能雷同). 每天都有接触各大平台推送的新闻,了解到了校园外的大小事.故此,对新浪新闻标题的关键字的爬取,看看最近发生的实时,也想比较下标题党还是和实际内容的差异. ...

  5. C语言:简易商品库存管理系统(简单易懂,不用指针的入门级示例,数据结构大作业)

    C语言:商品库存管理系统(简单易懂,不用指针的入门级示例) 没有使用指针,没有写入文件,全部是最基础的c语言语句,本程序使用vc6.0测试 功能: 1.创建商品的信息 2.显示全部商品对信息(商品数量 ...

  6. 2018年软件质量与测试大盘点

    即将告别2018年.迎来2019年 无法开一个现场跨年演讲,那就来一个更经济.更有效的大盘点 如同去年:2017年软件质量和测试大盘点.本次盘点分为两大部分: 质量问题,看看过去一年发生了哪些大的质量 ...

  7. 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书

    发布文章 博文管理我的博客退出 Trash Temp 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书 @[TO ...

  8. 软件工程 期末大作业参考 【餐厅点餐系统 】(面向对象模型:需求分析+面向对象设计书+可行性分析+测试文档+java界面)

    软件工程大作业(餐厅管理系统)参考:需求分析+面向对象设计书+可行性分析+测试文档+JAVA项目 一.需求分析部分截图 二.面向对象设计书部分截图 三.可行性分析部分截图 四.测试文档部分截图 本文主 ...

  9. 实验报告-python文库_python程序设计与实践大作业

    python程序设计与实践大作业实验报告陆阳孙勇裘升明.doc 还剩 28页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,马上远离加班 ...

最新文章

  1. 分布式全局序列号生产,Twitter Snowflake算法,雪花算法
  2. Session与Cookie区别[1][摘]
  3. mysql主从复制--转载
  4. BZOJ1078 [SCOI2008]斜堆 堆
  5. 在华为鸿蒙OS上尝鲜,我的第一个“hello world”
  6. 华为表示年内没有推出搭载鸿蒙操作系统手机的计划;OpenStack或被抛弃?iPhone至少还要三年可苹果自研5G调制解调器……...
  7. 计算机图形学研究与应用的最新进展,关于计算机图形学的发展及应用探究
  8. Zephry I2C和SPI驱动器介绍和操作FM24V10闪存
  9. 什么能让我们用青春、用生命去垫付?
  10. 在opensuse tumbleweed 上开发51单片机
  11. 织梦dedecms蓝色培训机构模板教育学校学院整站php网站源码,织梦学校教育网 DEDECMS蓝色教育培训企业网站模板(成品整站源码)...
  12. 一寸照纯红色底图片_纯红色背景
  13. Oracle DBA 路途遥远
  14. 蓝牙 - HCI介绍
  15. 学习python第八节课:可变与不可变对象
  16. 软电话HTML界面,软电话条(webRTC)对接
  17. Android单点触控技术,对图片进行平移,缩放,旋转操作
  18. clickhouse源码:函数分析和自定义函数UDF
  19. StateFlow 状态流
  20. 【爬虫实践】获取某城市天气数据

热门文章

  1. 基于Android的便签设计(一)
  2. Vue + ElementUI 仿视频网站&抖音创作者平台
  3. vue之vue的生命周期、swiper、自定义组件的封装、自定义指令、过滤器、单文件组件及vue-cli
  4. 惊了!苹果高通在中国纠缠时 iPhone7/8却在德国惨遭下架
  5. CKA考试题梳理---加油,骚年 记得点赞收藏
  6. 32位64位Office 2010 beta 简体中文版下载
  7. cad的lisp画线_CAD画缓和曲线lisp程序
  8. PHP报错:Classes\\PHPExcel\\Cell.php Line(594) Invalid cell coordinate ESIGN1
  9. 网络安全篇 浅谈学习网络安全的看法-00
  10. 解决windows10和ubuntu16.04双系统切换时Windows时间不对的问题