移动应用开发课设——原神小助手文档(2)
2023年末,做的移动应用开发课设,分还算高,项目地址:有帮助的话,点个赞和星呗~
GitHub - blhqwjs/-GenShin_imp: 2023年移动应用开发课设
本文按照毕业论文要求来写,希望对大家有所帮助。
移动应用开发课设——原神小助手文档(1)-CSDN博客
第5章 系统测试
5.1 黑盒测试
为了全面评估系统的外部功能,深入了解程序的执行路径并验证不同的条件和分支,选择了黑盒测试的方法。测试策略包括定义测试范围、指定测试阶段等黑盒测试方法。测试用例设计包括各种输入,覆盖正常、边界和异常情况,并考虑外部预期结果。
5.2 单元测试
本次测试分别对项目核心代码:CharacterDetailsActivity、MainActivity、AddCharacterActivity、ManageMonsterActivity、AddMonsterActivity、进行插桩测试,并对项目进行整体的单元测试。测试用例以及方法如下:
表5.1 测试用例
测试方法名称 | 输入数据(或描述) | 预期输出 | 预期行为 | 实际输出 | 是否通过 |
---|---|---|---|---|---|
testValid Character Insertion | 名称: "角色1", 属性: "属性1", 技能: "技能1", 元素: "元素1", 喜好: "喜好1", 攻击: 100, 元素伤害: 1.5, 暴击率: 0.8, 暴击伤害: 2.0 | 预期ID: Long (插入角色的ID) | 当有效角色信息被插入时,预期返回插入的角色ID | 实际ID: Long (实际插入角色的ID) | 是 |
testEmpty Character Insertion | 名称: "", 属性: "", 技能: "", 元素: "", 喜好: "", 攻击: 0, 元素伤害: 0, 暴击率: 0, 暴击伤害: 0 | 预期ID: -1 | 当空白/无效角色信息被插入时,预期返回-1 | 实际ID: -1 | 是 |
testNegative AttackValue | 名称: "角色2", 属性: "属性2", 技能: "技能2", 元素: "元素2", 喜好: "喜好2", 攻击: -50, 元素伤害: 1.0, 暴击率: 0.5, 暴击伤害: 1.5 | 预期ID: -1 | 当攻击值为负数时,预期返回-1 | 实际ID: -1 | 是 |
续表5.1 测试用例
testZero Critical Rate | 名称: "角色3", 属性: "属性3", 技能: "技能3", 元素: "元素3", 喜好: "喜好3", 攻击: 80, 元素伤害: 2.0, 暴击率: 0.0, 暴击伤害: 2.5 | 预期ID: Long | 当暴击率为0时,预期成功插入角色并返回插入的角色ID | 实际ID: Long (实际插入角色的ID) | 是 |
test Maximum Attribute Length | 名称: "角色4角色4角色4角色4角色4角色4角色4角色4角色4", 属性: "属性4", 技能: "技能4", 元素: "元素4", 喜好: "喜好4", 攻击: 120, 元素伤害: 1.0, 暴击率: 0.6, 暴击伤害: 1.8 | ID: Long (插入角色的ID) | 当属性名称长度超过限制时,预期成功插入角色并返回插入的角色ID | 实际ID: Long (实际插入角色的ID) | 是 |
testNull Element Input | 名称: "角色5", 属性: "属性5", 技能: "技能5", 元素: null, 喜好: "喜好5", 攻击: 90, 元素伤害: 1.2, 暴击率: 0.7, 暴击伤害: 1.7 | 预期ID: Long (插入角色的ID) | 当元素输入为空时,预期成功插入角色并返回插入的角色ID | 实际ID: Long (实际插入角色的ID) | 是 |
testDouble Elemental Damage Value | 名称: "角色6", 属性: "属性6", 技能: "技能6", 元素: "元素6", 喜好: "喜好6", 攻击: 100, 元素伤害: 2.5, 暴击率: 0.8, 暴击伤害: 2.3 | 预期ID: Long (插入角色的ID) | 当元素伤害值为浮点数时,预期成功插入角色并返回插入的角色ID | 实际ID: Long (实际插入角色的ID) | 是 |
testCalculate Damage _FireIce Reaction | 火属性角色,冰属性怪物;攻击力100,元素伤害1.5,暴击率0.8,暴击伤害2.0 | 触发融化、暴击了、伤害值符合计算公式 | 火属性与冰属性的融化反应下计算伤害值 | 暴击了、伤害值(按照计算公式)符合预期 | 是 |
testCalculate Damage_ WaterIce Reaction | 水属性角色,冰属性怪物;攻击力90,元素伤害1.2,暴击率0.7,暴击伤害1.7 | 触发冻结、普通一击、伤害值符合计算公式 | 水属性与冰属性的冻结反应下计算伤害值 | 冻结、普通一击、伤害值(按照计算公式)符合预期 | 是 |
续表5.1 测试用例
testCalculate Damage_Fire WaterReaction | 火属性角色,水属性怪物;攻击力100,元素伤害1.5,暴击率0.8,暴击伤害2.0 | 触发蒸发、暴击了、伤害值符合计算公式 | 火属性与水属性的蒸发反应下计算伤害值 | 蒸发、暴击了、伤害值(按照计算公式)符合预期 | 是 | |
testCalculate Damage _NormalHit | 草属性角色,水属性怪物;攻击力90,元素伤害1.2,暴击率0.7,暴击伤害1.7 | 普通一击、伤害值符合计算公式 | 未触发元素反应下计算伤害值 | 普通一击、伤害值(按照计算公式)符合预期 | 是 | |
testCalculate Damage _Immunity | 雷属性角色,雷属性怪物;攻击力100,元素伤害1.5,暴击率0.8,暴击伤害2.0 | 免疫! 免疫! | 雷属性对雷属性怪物免疫 | 免疫! 免疫! | 是 | |
testGet AllMonsters | 数据库中有多个怪物记录,例如(id=1, name="Slime", attack=20) | 返回怪物列表,列表包含数据库中所有怪物的信息 | 获取数据库中所有怪物信息并创建相应的Monster对象,添加到列表中 | 实际输出符合预期 | 是 | |
Adapter | 怪物列表包含多个怪物对象,例如(id=1, name="Slime", attack=20) | ListView中显示了所有怪物的名称和相关信息 | 使用MonsterAdapter将怪物数据绑定到ListView,显示怪物的名称和信息 | 实际输出符合预期 | 是 | |
testOnItem Click | 用户点击某个怪物列表项,例如(id=1, name="Slime", attack=20) | 启动EditMonsterActivity,并传递选中怪物的ID | 监听ListView的点击事件,获取点击项对应的Monster对象,启动编辑页面 | 实际输出符合预期 | 是 | |
testOnItem ClickInvalid | 用户点击无效的列表项,例如(id=99, name="Invalid", attack=0) | 无启动任何新活动 | 点击ListView中不存在的项,不应启动新的活动 | 实际输出符合预期 | 是 |
续表5.1 测试用例
testEmpty Monster List | 数据库中没有怪物记录 | 空的怪物列表,ListView不显示任何项 | 查询数据库,如果没有怪物记录,Monster列表应为空 | 实际输出符合预期 | 是 |
testEmpty Fields | 名称:空 攻击力:空 防御力:空 等级:空 元素类型:空 生命值:空 | 添加失败 | 添加空白的怪物数据时应显示失败提示 | 显示失败提示 | 是 |
test Invalid Data | 名称:龙 攻击力:abc 防御力:xyz 等级:! 元素类型:不明 生命值:2000 | 添加失败 | 添加无效的怪物数据时应显示失败提示 | 显示失败提示 | 是 |
testInvalid Attack | 名称:火元素史莱姆 攻击力:-10 防御力:30 等级:8 元素类型:火 生命值:150 | 添加失败 | 添加无效的攻击数据时应显示失败提示 | 显示失败提示 | 是 |
testInvalid Defense | 名称:电击史莱姆 攻击力:40 防御力:-5 等级:10 元素类型:雷 生命值:120 | 添加失败 | 添加无效的防御数据时应显示失败提示 | 显示失败提示 | 是 |
testInvalid Level | 名称:冰霜史莱姆 攻击力:60 防御力:25 等级:0 元素类型:冰 生命值:80 | 添加失败 | 添加无效的等级数据时应显示失败提示 | 显示失败提示 | 是 |
testDelete Character | 存在选中的角色ID,例如选中ID为1的角色 | 角色被删除,活动关闭 | 点击删除按钮,弹出确认对话框,选择确定后执行删除 | 角色被删除,活动关闭 | 是 |
testDelete Character NoID | 不存在选中的角色ID | 无删除操作,活动保持不变 | 点击删除按钮,由于没有选中的角色,保持活动不变 | 无删除操作,活动保持不变 | 是 |
testCalculate Damage | 存在选中的怪物和角色,例如选中ID为1的怪物和ID为2的角色 | 显示伤害值 | 点击"战斗怪物"按钮,计算伤害值并将其显示在文本视图中 | 显示计算后的伤害值 | 是 |
续表5.1 测试用例
testCalculate Damage NoMonster | 存在选中的角色,但不存在选中的怪物,例如选中ID为2的角色 | 不显示伤害值,文本视图为空 | 点击"战斗怪物"按钮,由于没有选中的怪物,文本视图为空 | 不显示伤害值,文本视图为空 | 是 |
testCalculate Damage NoCharacter | 不存在选中的角色,但存在选中的怪物,例如选中ID为1的怪物 | 不显示伤害值,文本视图为空 | 点击"战斗怪物"按钮文本视图应为空 | 不显示伤害值,文本视图为空 | 是 |
testCalculate Damage Element Reaction | 存在选中的怪物和角色,且它们有相克的元素,例如选中ID为1的怪物和ID为2的角色 | 显示相应的元素反应伤害值 | 角色的元素为火,怪物的元素为水,应触发"蒸发"元素反应,计算伤害值并显示 | 显示相应的元素反应伤害值,触发蒸发 | 是 |
testCalculate Damage NoElement Reaction | 存在选中的怪物和角色,但它们没有相克的元素,例如选中ID为1的怪物和ID为3的角色 | 显示普通伤害值 | 角色的元素为火,怪物的元素为草,不应触发元素反应,计算普通伤害值并显示 | 显示普通伤害值,未触发元素反应 | 是 |
testCalculate Damage Critical | 存在选中的怪物和角色,且发生了暴击, ID为1的怪物和ID为2的角色 | 显示暴击伤害值 | 角色的暴击率较高,应计算暴击伤害值 | 显示暴击伤害值 | 是 |
testCalculate Damage NoCritical | 存在选中的怪物和角色,但未发生暴击,例如选中ID为1的怪物和ID为3的角色 | 显示普通伤害值 | 角色的暴击率较低,应计算普通伤害值并显示 | 显示普通伤害值 | 是 |
testWeb View Button | 点击WebView按钮 | 启动WebViewActivity | 点击WebView按钮,启动 | 启动WebViewActivity | 是 |
testPlay Videos Button | 点击Play Videos按钮 | 启动VideosActivity,并传递选中角色的名字 | 点击Play Videos按钮,启动VideosActivity,并传递选中角色的名 | 启动VideosActivity,并传递选中角色的名字 | 是 |
,符合预期行为。各个功能均能正常触发,未出现明显的错误或异常情况。通过黑盒测试,验证了系统在用户角度下的功能和性能。
(1)测试结果:
测试结果表明应用程序在正常和异常情况下都表现良好,符合预期行为。各个功能均能正常触发,未出现明显的错误或异常情况。通过黑盒测试,验证了系统在用户角度下的功能和性能。
(2)缺陷分析
① 用户体验问题:
缺乏友好的错误提示信息,可能使用户难以理解和解决问题。
针对无效输入,系统未提供足够详细的错误反馈,可能导致用户困惑。
②功能验证不充分:
部分功能虽然被测试,但对目标活动是否正确使用传递的数据缺乏验证,可能导致目标活动中显示不正确的信息。
5.3 集成测试
依据集成测试结果表明在不同组件之间的集成中,系统表现出良好的稳定性和正确性。组件之间的信息传递和功能调用正常,页面之间的集成也符合预期。具体如下表(表5.2)所示
表5.2 集成测试情况
类名 | 集成测试目标 | 测试步骤 | 测试结果 |
Main Activity | 验证主界面与其他关键模块的集成,确保启动其他活动的按钮功能正常。 | 1. 启动MainActivity。 2. 点击启动CharacterListActivity的按钮。 3. 点击启动WebViewActivity的按钮。 4. 点击启动VideosActivity的按钮。 | 启动其他活动的按钮功能正常。 |
Character ListActivity | 确保角色列表页面能够正确显示并与CharacterDetailsActivity集成。 | 1. 启动Character ListActivity。 2. 点击角色列表中的某个角色。 3. 验证是否能够正确启动Character DetailsActivit并显示选定角色的详细信息。 | 角色列表页面正确显示,与CharacterDetailsActivity正常集成。 |
Character Details Activity | 测试角色详情页面与相关管理器、其他页面(WebViewActivity和VideosActivity)的集成,确保计算伤害、页面跳转等功能正常。 | 1. 启动CharacterDetailsActivity。 2. 验证角色管理器与角色详情页面的集成。3. 验证怪物管理器与角色详情页面的集成。4. 点击"Play Videos"按钮,验证是否成功启动VideosActivity。5. 点击"WebView"按钮,验证是否能够成功启动WebViewActivity | 功能正常,各管理器与页面集成正常,页面跳转功能正常。 |
续表5.2 集成测试情况
Web View Activity | 确保WebViewActivity能够正常加载网页,验证与其他页面的集成。 | 1. 启动WebViewActivity。 2. 验证WebView能够正常加载网页。 3. 点击返回按钮,验证是否能够返回到上一个页面(Character DetailsActivity)。 | WebViewActivity正常加载网页,与其他页面集成正常。 |
Videos Activity | 确保VideosActivity能够正常显示相关视频,验证与其他页面的集成。 | 1. 启动VideosActivity。 2. 验证VideosActivity能够正常显示相关视频。3. 点击返回按钮,验证是否能够返回到上一个页面CharacterDetailsActivity) | VideosActivity正常显示相关视频,与其他页面集成正常。 |
Manage Monster Activity | 测试怪物列表页面与EditMonsterActivity、怪物管理器的集成。 | 1.启动ManageMonster Activity。 2. 点击怪物列表中的某个怪物。 3. 验证是否能够正确启动EditMonsterActivity并显示选定怪物的详细信息。 | 怪物列表页面正确显示,与EditMonsterActivity正常集成。 |
Edit Monster Activity | 确保EditMonsterActivity能够正常编辑怪物信息,验证与ManageMonsterActivity和怪物管理器的集成。 | 1. 启动EditMonsterActivity。2. 编辑怪物信息(例如修改怪物属性)。3. 保存修改。4. 返回ManageMonsterActivity,验证是否能够正确刷新怪物列表,显示修改后的怪物信息。 | EditMonsterActivity能够正常编辑怪物信息,与ManageMonsterActivity和怪物管理器集成正常。 |
5.4 系统测试
在本项目中,由于其规模相对较小,复杂性低同时受限于资源环境,测试深度较浅。只是对系统的基本稳定性、性能、安全性等方面进行初步验证,结果如下(表5.3)
表5.3 系统测试
测试项目 | 测试目标 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
性能测试 | 评估系统在正常负载下的性能表现,确保响应时间合理。 | 模拟正常负载下执行系统操作,记录响应时间。 | 系统能够在正常负载下保持合理的响应时间。 | 实际测试结果符合预期,响应时间合理。 | 是 |
可靠性测试 | 检查系统在长时间运行中的稳定性,防止崩溃。 | 运行系统长时间,记录运行期间是否出现崩溃。 | 在长时间运行中,系统不出现崩溃。 | 实际测试结果符合预期,系统稳定可靠。 | 是 |
安全性测试 | 验证系统是否能够防御常见的安全攻击,确保数据安全。 | 模拟常见的安全攻击,如SQL注入,验证系统是否能够防御。 | 系统能够有效防御常见的安全攻击。 | 实际测试结果符合预期,安全性较好。 | 是 |
兼容性测试 | 验证系统在不同设备和Android版本下的兼容性。 | 在不同设备上安装并运行应用,包括手机和平板,以及在不同版本的Android系统上运行。 | 系统能够在不同设备和Android版本下正常运行。 | 实际测试结果符合预期,兼容性良好。 | 是 |
可维护性测试 | 评估系统代码结构和易于维护性。 | 仔细阅读系统代码,检查代码结构和注释。 | 系统代码结构清晰,易于维护。 | 实际测试结果符合预期,易于维护。 | 是 |
总结
(1)实现的功能:
在此次课程设计中,成功地完成了《原神游戏小助手》的开发。这款应用程序具备以下主要功能:
① 角色和怪物管理:用户可以轻松地对角色进行增删改查操作。
② 伤害模拟:用户可以了解角色属性对应的伤害模拟。
③ 元素反应体验:用户可以简要体验元素反应的基本机制。
④ 视频播放功能:用户可以观看当前所选角色的PV。
⑤ WebView功能:用户可以直接访问并在应用内展示官方网站信息。
(2)不足之处
尽管我们已经实现了这些功能,但仍有一些不足之处需要改进。
① 元素反应体验的局限性:目前,程序只提供了基本的元素反应体验,对于更复杂的元素反应机制,应用可能无法提供足够的支持。例如,对于一些需要特定元素组合才能触发的特殊反应,我们的应用可能无法准确模拟。
② 视频播放功能的单一性:当前视频播放功能目前仅限于播放角色的PV,未来考虑扩展此功能,以支持更多类型的视频内容,如游戏攻略、角色故事等。
③ 用户界面的友好性:虽然我们的应用提供了一些基本的角色管理和伤害模拟功能,但用户界面可能不够直观和友好,可能需要用户花费一些时间来熟悉。
④ 数据的准确性和完整性:我们的应用依赖于游戏数据来进行伤害模拟和元素反应体验,如果这些数据不准确或不完整,可能会影响到应用的功能表现。未来的数据展现将在服务器端进行存储和展示。
总的来说,尽管《原神游戏小助手》在某些方面还有待改进,但它为原神玩家提供了一套简单但却比较实用的游戏辅助工具。我们期待在未来的版本中,通过不断的优化和改进,使《原神游戏小助手》能够更好地满足用户的需求。
—————————————————— ~完结线~ ————————————————————
以上就是移动应用开发Android的全部课程设计报告了,有帮助的话点个赞和收藏吧~
GitHub - blhqwjs/-GenShin_imp: 2023年移动应用开发课设2023年移动应用开发课设. Contribute to blhqwjs/-GenShin_imp development by creating an account on GitHub.https://github.com/blhqwjs/-GenShin_imp