LovelyMother——α版本测试报告以及发布说明
α版本测试报告
1.测试过程中总共发现的bug以及每个类别的bug分数量
bug的分类:
a. 修复的bug && 解决方案:
(1)数据类赋值错误
var Annoncement = await db.Tasks.SingleOrDefaultAsync(m => m.Date ==date && m.Begin == begin && m.UserId == currentUser.Id); if (Annoncement != null) { Annoncement = task; await db.SaveChangeAsync(); }
①解决方案:
var task = await db.Tasks.SingleOrDefaultAsync(m => m.Date ==date && m.Begin == begin && m.UserId == currentUser.Id); if (task != null) { task.DefaultTime = defaultTime; task.End = end; task.Finish = finish; task.Introduction = introduction; task.TotalTime = totalTime; await db.SaveChangesAsync(); return true; } else { return false; }
(2)Sqlite数据库Migration问题
②解决方案:
<1>开始菜单里卸载当前项目
<2>Remove-Migration
<3>重新生成解决方案(前提时App.xml.cs中App构造函数进行Migration)
(3)单元测试传值错误导致测试不通过。
var user1 = new User { UserName = "testuser", Password = "1"}; await motherService.NewUserAsync(user1.UserName,user1.Password); users = await motherService.ListUserAsync(); var task1 = new MotherLibrary.Task { UserId = user1.Id, Date = 20180720, Begin = "10:59", DefaultTime = 60, Introduction = "test1" };
③解决方案:
var user1 = new User { UserName = "testuser", Password = "1"}; await motherService.NewUserAsync(user1.UserName,user1.Password); users = await motherService.ListUserAsync(); var task1 = new MotherLibrary.Task { UserId = users[0].Id, Date = 20180720, Begin = "10:59", DefaultTime = 60, Introduction = "test1" };
(4)窗口骚扰功能:本来想弹出一个置顶全屏窗口来解决问题,但改变窗口模式参数只有一个,全屏功能和置顶功能无法共存。
④解决方案:
改为弹出一个置顶gif动图窗口来实现骚扰功能
(5)进程监听在win10后,微软取消了对Process类的继承,使得大部分的进程命令无法实现。同时,新封装的Appdiagnostic和ProcessDiagnostic类中,无法读取所有的app。而且若新建win32程序调用进程库中的API来作为引用,会使得app store不允许发布
⑤解决方案:
咨询了老师,查阅了官方文档后,在StackoverFlow上提出了问题,URL:windows 10 -get all the process int my computer,在博客指导下获取了用户的进程信息权限,解决了这个问题。
(6)用户所更换的头像无法进行保存
⑥解决方案:
有两种解决方案:
(1)将头像图片加入数据库(数据库已建好,更改难度较大)
(2)读取头像图片的本地存放地址,将图片直接存入系统
c. 产品设计的bug:
(1)数据库设计时未考虑在用户表中设置一项总任务时长属性
①解决方案:
/// <summary> /// 用户任务完成总时间。 /// </summary> public int TotalTime { get; set; }
(2)数据库服务层参数设置逻辑错误,不应在服务外声明数据类进行传输。
public async Task<List<MotherLibrary.Task>> ListTaskAsync( User user) public async Task<bool> NewUserAsync(User user) public async Task<bool> NewTaskAsync(User user,Task task) public async Task<bool> NewProgressAsync(Progress progress) public async Task<bool> UpdateUserAsync(User user) public async Task<bool> UpdateTaskAsync(User user,Task task) public async Task<bool> UpdateProgressAsync(Progress progress) public async Task<bool> DeleteUserAsync(User user) public async Task<bool> DeleteTaskAsync(User user,Task task) public async Task<bool> DeleteProgressAsync(Progress progress)
②解决方案:
public async Task<List<MotherLibrary.Task>> ListTaskAsync( String userName) public async Task<bool> NewUserAsync(String username,String password) public async Task<bool> NewTaskAsync(String username,int date,String begin,int defaulttime,String introduction) public async Task<bool> NewProgressAsync(String progressName,String defaultName) public async Task<bool> UpdateUserAsync(String userName,String passWord,int totalTime) public async Task<bool> UpdateTaskAsync(String userName,int date,String begin,String end,int defaultTime,int finish,int totalTime,String introduction) public async Task<bool> UpdateProgressAsync(String progressName,String defaultTime) public async Task<bool> DeleteUserAsync(String userName) public async Task<bool> DeleteTaskAsync(String userName,int date,String begin) public async Task<bool> DeleteProgressAsync(String progressName)
d. 无能力修复的bug:
(1)悬浮窗功能
UWP不支持悬浮窗功能。
尝试用背景透明来只显示控件,但经查询窗口背景也无法调成透明模式。该问题未解决。
(2)应用无法在关闭界面后在后台运行
微软一般不支持uwp项目在关闭界面后在后台运行,所以需要再建一个无UI的应用,在当前应用关闭时被唤醒并且将数据同步,目测实现难度较大,正在寻找新的解决方案。
e. 延迟修复的bug:
(1)如果使用winrar和7k,microsoft等程序,程序依然会判断出错,而且由于父进程与子进程的调用关系中,每个程序调用方式不同,所以无法准确判断是否会有新程序出现或是现进程打开新窗口
①解决方案:
建立信任库,同时优化新进程出现算法。但由于时间关系,会放在β版本进行优化
2.场景测试:
①你预期不同的用户会怎样使用你的软件?
当用户想要进入工作状态,又因为自制力不够强而苦恼的时候,打开我们的软件,设置好工作时间,即可享受专心工作的乐趣。
② 他们有什么需求和目标?
我们的软件针对经常使用电脑工作却无法自己有效的管理时间的用户,当用户想要开始工作时,我们可以通过后台监听以及窗口骚扰等功能合理有效的帮助用户全身心投入工作中。
③你的软件提供的功能怎么组合起来满足他们的需要?
后台监听用户是否有新进程创建,从而判断是否需要帮助用户回到工作状态。用一些比较温和的方式骚扰用户,使其很难使用工作时预设以外的软件。
3.单元测试:
4.你认为你们团队的软件在什么条件下,就可以认定其已经足够好,可以发布α版本?
因为α阶段我们初步打算完成本地业务逻辑,所以用户注册与登录自不必说,监听用户进程时发现有用户未加入信任列表的进程产生即刻开始骚扰,直到其重新回到工作状态,设置的任务以及用户信任的进程应能添加到数据库并能进行修改与统计。
α版本发布说明
- 1.功能完成情况
α版本预计实现的功能及完成情况:
- 进程监听 √
- 多线程 √
- 数据库搭建 √
- 数据库服务 √
- 个性化UI √
- 开机自启动 √
- 悬浮窗技术 ×
α版本未完成功能及未完成原因:
①悬浮窗技术
由于开发工具的局限性,悬浮窗技术没有找到合理的实现方法,可能在β阶段或者Release阶段尝试解决,或者只能放弃该功能。
2. 对运行环境的要求:
Windows操作系统
3. 安装方法:
在Microsoft Store下载安装。
4.发布方式以及发布地址:
①发布方式:Microsoft Store
②GitHub项目地址:https://github.com/yuhao2480444683/LovelyMother--
原文地址:https://www.cnblogs.com/yh2480444683/p/9351023.html