这个作业属于那个课程 | 广工2023软件工程课程 |
---|---|
这个作业要求在哪里 | 团队作业5——测试与发布(Alpha版本) |
这个作业的目标 | Alpha版本测试报告,版本发布说明 |
团队成员 | 邱棋浩 3121005139 李伟东 3121005131 赵光明 3121005104 江周勉 3121005127 李昊旃 3121005090 钟海超 3121005105 宫旭 3121005124 |
github | 仓库地址 |
一、Alpha版本测试报告
1.bug分析
- A类bug 已经修复的bug
- B类bug 不能重现的bug
- C类bug 这个产品就是这样设计的,不是bug
- D类bug 没有能力修复,将来也不打算修复的bug
- E类bug 这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复
在测试过程中,总共发现了4个bug,其中A类1个,B类1个,C类1个,D类1个,E类0个。
其中一个bug的复现:
-
问题描述:
问题出现时,在测试日志模块的功能。make好之后,我在终端执行可执行文件,没有日志输出,如下图所示:
再用gdb执行可执行文件,能输出日志,如下图所示:
这好奇怪,同一个程序,咋还能有不同执行结果?
-
问题原因和解决:
造成该问题的原因是没有对 LogAppender 的 m_level 成员进行初始化:
由于没有进行初始化,所以m_level的值是随机的,所以可能会超出日志等级范围,所以就不一定会有输出。 -
反思:
①以后再遇到这种情况,就要想到可能是某个变量忘记初始化造成的。
②任何变量都要注意是否需要初始化。
2.场景测试
部署环境 | 故障模块 |
---|---|
Ubuntu 20.4 | IO模块:字节流概率丢失 |
Centos 7.9 | 日志模块:乱码、日志文件输出为空 |
3.出口条件
可支持并发量下调度无异常、无假死
二、Alpha版本发布说明
1.版本功能介绍
功能 | 描述 |
---|---|
异步I/O | 使用异步I/O技术实现高并发和高吞吐量的网络通信 |
协程支持 | 支持协程技术,通过协程调度器实现协程的切换和调度,提高系统并发性能 |
线程池 | 使用线程池技术,有效管理和调度线程,提高系统并发能力和稳定性 |
日志系统 | 提供灵活的日志系统,支持日志级别、日志滚动等多种功能 |
配置管理 | 提供方便的配置管理功能,支持配置文件读取和动态配置更新 |
网络通信(未完成) | 封装TCP/UDP协议的底层通信,提供简单易用的接口 |
2.缺陷修复
使用C++14或者C++17标准来编译框架,或者使用一些现代化的C++库来替代一些低版本C++标准中的功能
3.运行环境要求
跨平台 Windows、Linux、MacOS
4.安装方法
-
下载源代码
git clone https://github.com/TodayEatFish/Distributed_server_framework/tree/dev.git
-
编译和安装
进入代码目录,使用以下命令进行编译和安装:
mkdir build cd build cmake .. make sudo make install
这样就可以将框架编译和安装到系统中。
-
使用框架
在使用框架之前,需要创建一个C++项目,并在项目中添加框架的头文件和库文件。
然后可以根据自己的需求,调用框架提供的接口进行开发。
以下是一个简单的框架的示例程序:#include "sylar/sylar.h" int main(int argc, char** argv) { sylar::Logger::ptr logger(new sylar::Logger); logger->addAppender(sylar::LogAppender::ptr(new sylar::StdoutLogAppender)); logger->setLevel(sylar::LogLevel::INFO); SYLAR_LOG_INFO(logger) << "Hello, C++!"; return 0; }
上面的示例程序使用了框架提供的日志系统功能,输出一条INFO级别的日志信息。
可以根据自己的需求,调用框架提供的其他功能进行开发。
5.系统已知问题和限制
-
对于高版本的C++标准支持不够完善,部分功能需要使用C++11及以上版本才能使用。
-
在Windows平台上,某些功能可能存在一些问题,需要进一步测试和完善。
-
框架在处理大量连接时,可能会出现性能瓶颈,需要针对不同的应用场景进行优化和调整。
6.发布方式与地址
Github发布,面向开发人员
地址