Alpha阶段项目展示
NewTeam 2017/11/15
团队介绍 返回目录
岗位 | 人员 | 介绍 | 博客 | 照片 |
---|---|---|---|---|
开发人员 | 安万贺 |
|
Stones_A | |
王梓嘉 |
|
InuyashaSAMA | ||
李奕君 |
|
菜鸟少侠 | ||
测试人员 | 李欣泽 |
|
LuoboLiam | |
项目经理 | 索一奇 |
|
Eris_Charon |
项目内容 返回目录
目标和预期
定义典型用户
用户 | 用户T |
---|---|
身份 | 某计算机专业某专业课程的教师 |
年龄 | 35岁 |
所占比例 | 15% |
重要性 | ★★★★★ 非常重要,所占比例不大,通常是班级博客的组织者,是产生其他用户的基础 |
使用场景 | 组建班级,进行某专业课程的教学,添加助教,发布作业、公告 |
使用环境 | 主要是教师、实验室、办公室或家中 |
生活/工作 | 承担某专业课的教学工作,此外有自己的工程、研究工作 |
知识层次/能力 | 熟悉计算机的专业知识,具有熟练的编程技能,通常精通某一专业课程 |
动机/目的 | 组件班级进行某专业课程的教学 |
用户偏好 | 希望能够更加方便的管理班级 |
用户 | 用户A |
---|---|
身份 | 某计算机专业高年级学生 |
年龄 | 22岁 |
所占比例 | 15% |
重要性 | ★★★★ 比较重要,通常由教师指定,通常是班级成员的管理者,作业的发布者。 |
使用场景 | 在教室的安排下添加班级成员、发布作业,对学生的作业进行评论、打分 |
使用环境 | 主要是教室、宿舍、图书馆或家中 |
生活/工作 | 即将毕业,完成了专业课的学习,正在为下一步的发展作准备 |
知识层次/能力 | 较熟练地掌握计算机专业知识,曾学习过某专业课程并取得较好成绩 |
动机/目的 | 协助教师组织、管理班级,进行教师和学生之间的沟通 |
用户偏好 | 希望能够方便的看到学生提交的作业以及对评论进行的反馈 |
用户 | 用户A |
---|---|
身份 | 某计算机专业学生,正在学习某专业课程 |
年龄 | 20岁 |
所占比例 | 70% |
重要性 | ★★★ 相对比较重要,占比例最大,是班级博文的主要贡献者。 |
使用场景 | 提交作业 |
使用环境 | 主要是教室、宿舍、图书馆或家中 |
生活/工作 | 在校学生,主要任务是学习 |
知识层次/能力 | 掌握基本的计算机知识包括基本的语言、算法、数据结构,有简单程序的开发经验, |
动机/目的 | 使用班级博客进行某门专业课程的学习 |
用户偏好 | 主要使用班级博客提交作业,希望能够及时收到与作业有关的消息 |
功能描述及验收验证标准
功能 | 功能描述 | 验收验证标准 | |
---|---|---|---|
用户 | 认证 |
|
|
个人信息 |
|
|
|
消息提醒 |
|
|
|
个人博客 | 博文 |
|
|
评论/回复 |
|
|
|
班级博客 | 查看班级博客所有班级 |
|
|
进入班级 |
|
|
|
博文 |
|
|
|
日程表 |
|
|
|
作业 |
|
|
|
成员 |
|
|
|
创建班级 |
|
|
项目发布
功能
用户登录和退出
个人博客
- 查看个人博客
- 查看博文详情
- 查看评论和回复
- 添加评论和回复
班级博客
- 查看个人所在班级
- 成员
- 查看班级成员
- 添加班级成员(教师和助教)
- 查看班级成员
- 作业
- 查看作业列表,显示未结束作业的数量
- 查看作业详情、提交作业
- 发布作业(教师和助教)
- 查看作业列表,显示未结束作业的数量
已知的问题和限制
- 网页的限制:
- 登录使用网站的页面,登录成功后会显示授权码页面, 目前无法隐藏
- 作业详情使用网站的页面,需要在此页面中登录才能进行提交作业等操作。
- 评论和回复:
- 回复时无法自动添加回复对象需用户手动添加@ Username
- 评论内容无法换行
- 作业发布
- 作业发布标题、内容可以为空
- 作业的开始时间可以晚于截止时间
- 显示
- 手机横屏内容显示不全
- 内容更新后不能够及时刷新。
用户反馈
用户数量
用户的建议和反馈
用户反馈的bug
项目管理 返回目录
项目分工
分工协作
团队里有3位开发人员,1位测试人员,1个项目经理。
开发人员负责实现客户端的功能,界面。我们主要需要调用博客园提供的API,所以不太需要做后端。最开始的分工是一位开发人员负责测试博客园的API并且对API进行包装,以供其他开发人员使用;两位开发人员负责界面;两位开发人员负责页面的切换和数据的处理和显示。
测试人员负责完成客户端的兼容性测试、压力测试,各个功能的集成测试,前后端功能的测试。
项目经理负责完成各种文档,组织开会,安排任务推进项目,与相关人员沟通,做调研,推广。
经验教训
界面、页面切换和数据处理和显示这些部分联系非常密切很难划分界限,所以改为两位开发人员分别负责不同功能的页面、数据。成员的分工应该根据项目的进展不断进行调整。
项目经理在安排任务时应该考虑各个成员的优势、偏好和能力。
平衡
Alpha阶段面临的情况
- 其他各科任务还不是很重,大家时间都比较充足
- 大家的app开发经验比较少,需要从头开始学习
- 大家都没有用于IOS开发的设备
Alpha阶段的开发工作
- 先完成基本的功能,暂且不考虑界面的美化和改进性的功能
- 先对react native进行基础的学习,然后根据每个人承担的不同开发工作在开发过程中进行学习
- 先完成android客户端的开发
工程质量 返回目录
测试
测试矩阵
测试矩阵 | 后端功能测试 | 前端功能测试 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
测试机型 | 测试环境(机型,版本,分辨率) | 登录功能 | 查看博客 | 添加评论 | 查看班级 | 查看作业 | 添加成员 | 发布作业 | 退出登录 | 网络断开 | 点击事件 | 页面布局 | 加载速度 | 图片问题 | 页面切换 |
三星C7 | 6.0.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较好 | 一般 | 正常显示链接图片显示较大 | 正常 |
华为P9 | 7.0.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较好 | 较好 | 正常显示链接图片显示较大 | 正常 |
三星S8 | 6.1.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 一般 | 一般 | 正常显示链接图片显示较大 | 正常 |
Custom Phone6.0 | 6.0.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较好 | 一般 | 正常显示链接图片显示较大 | 正常 |
oogle Nexus | 5.1.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较好 | 一般 | 正常显示链接图片显示较大 | 正常 |
出口条件
我们认为的出口条件包括以下两点:一是兼容性,二是稳定性。
兼容性
即要在大多数的主流手机上可以安装运行,针对这一点我们进行了测试,将apk文件交到腾讯的WeTest平台,对主流的50款手机进行了兼容性测试。在腾讯的适配标准下,50款手机的适配通过率达到了100%。
这是兼容性报告截图:
其中一个机型的性能分析:
兼容性测试50台设备分布:
所以,我们认为app的兼容性达到出口条件。稳定性
<h5集成测试
就是对软件的特定功能进行测试,比如学生能否添加班级成员,能否发布作业,是否可以进行评论等。这部分我们采用appium+python脚本的策略进行自动化测试,测试代码在github中的__test__/testcode文件夹中。
压力测试
对app进行压力测试,我们的预期用户量在500上下,因此我们对500名用户并发使用进行了测试。因为我们使用了博客园官方提供的api,因此测试工具采用badboy录制测试脚本,Jmeter进行测试。因为我们无法拿到500个用户的用户名和密码,因此只能对登录功能进行测试。经过测试,在500个用户并发使用登录功能时,app可以正常工作。
下面是500个用户测试得到的结果树截图:
500个用户测试得到的聚合报告:
我们还对其进行了负载测试,即用户量达到1000时,app是否可以正常工作,不崩溃。测试流程类似,经过测试,在1000个用户并发使用登录功能时,app依旧可以正常工作。
下面是1000个用户测试得到的结果树截图:
1000个用户测试得到的聚合报告:
是否影响使用
在稳定阶段难免会发现一些bug,如果要修改这些bug可能会对整个项目进行比较大的改动,这时候就要对这个bug作出分析,即这个bug是否会影响用户的正常使用。如果是会crash的错误,那就必须要将其修改后再发布;如果基本功能没有影响,那么就可以适当的保留bug,留到下一个阶段中集中解决。
综上所述,我们认为我们的软件达到了出口标准。
测试报告代码规范
项目初期制定了简要的代码规范,在github的dev-dov分支中
Google Code Style Guidance
类
- 构造函数:避免构造函数中虚方法的调用,并避免不能发出错误信号的初始化失败。
- 隐型转换:不要定义隐型转换,对转换运算符和单参数构造函数使用explicit关键字。
- ……
函数
- 参数顺序:输入、输出
- 写短函数:写短而集中的函数
- 引用变量:所用通过引用传递的参数必须有const标签
- ……
命名
- 通用命名规则:名称应该是描述性的,避免缩写
- 文件名:小写,包括下划线(_)或连字符(-),跟随项目传统的使用方式,如果没有一致的模式,使用下划线(_)
- ……
格式
- 行长度:每行最多80个字符(如果与旧代码有冲突,一致性更为重要)
- 非ASCII字符:必须使用UTF-8编码格式
- 空格vs制表符:只使用空格,每次两格
- ……
从零开始运行项目
需要进行环境配置,可以参考环境配置说明文档
实际进展 返回目录
进度
团队成员贡献 返回目录
基本任务分配和贡献
开发人员 | 测试人员 | 项目经理 | ||
---|---|---|---|---|
安万贺 | 王梓嘉 | 李奕君 | 李欣泽 | 索一奇 |
配置react native环境,学习基础部分 | ||||
学习fetch方法 | 学习react native的组件 | 配置集成测试环境 | 开发前的用户调研和用户需求NABCD | |
阅读API文档,熟悉班级博客相关API | 通过demo学习页面切换、数据显示 | 测试计划方案 | 技术规格说明书 | |
参考现有开源项目,学习和设计API包装方式 | 班级作业和作业详情的数据的获取和内容的显示 | 班级作业和作业详情的界面 | 在linux上搭建集成测试环境 | 代码规范 |
对获取班级作业、作业详情的API的包装 | 登录页面和整个客户端的页面跳转框架 | 找到一些UI素材 | 对现实班级作业和作业详情显示功能的测试 | 功能规格说明书和原型设计 |
对个人博文列表、博文详情、个人所在班级的API的包装 | 个人博客博文列表、博文详情的页面和内容显示 | 班级列表部分的界面和内容显示 | 对个人博客、班级显示功能的测试 | 环境配置说明文档 |
对用户登录API的包装 | 班级成员界面和数据的获取和内容的显示 | 用户个人信息页面和数据的获取和内容的显示 | 班级成员个人信息内容显示功能的测试 | Scrum Meeting1-10 |
涉及内容修改的API的包装,包括添加评论/回复 | 界面优化:去除班级页面不必要的按钮和标签 | 界面优化:去除用户个人信息页面不必要的按钮和标签 | 自动化测试的环境配置 | 找到UI素材、App模板 |
添加班级成员、发布作业API包装 | 完成回复评论功能 | 完成作业发布界面和作业发布功能 | 按照自动测试的要求想组件中添加属性 | 制作图标和启动界面 |
保持用户登录状态功能 | 优化界面:调整字体、边距 | 完成添加班级成员的功能 | 对发布作业、添加班级成员功能和不同身份用户的操作权限进行测试 | 生成Key,打包app |
退出登录功能 | 修复返回键可以返回上一状态的bug | 修改时间输入组件 | 进行压力测试 | 尝试在各个平台发布 |
对客户端进行埋点用于用户数量的统计 | 修复了作业发布功能中发布时间不检查表单内容的bug | 添加关于app页面 | 进行兼容性测试 | 发布说明文档 |
测试报告 |
特殊情况加减分
开发人员 | 测试人员 | 项目经理 | ||
---|---|---|---|---|
安万贺 | 王梓嘉 | 李奕君 | 李欣泽 | 索一奇 |
-1涉及修改的API的测试和包装用时太长,相应功能无法按时实现 | +1完成了登录界面 | +2添加了时间日期选择组件,限制了时间格式 | +2完成了测试报告 | +1完成了logo和启动界面 |
+1完成了保持用户登录状态的功能 | +2完成了整个客户端的页面跳转框架 | -2分工不合理,界面和交互不易分开 | ||
+2完成了用户记录的埋点 | +1对界面进行了优化,调整字体和颜色 | -2安排不合理,导致测试在发布后才完成。 | ||
-1用户记录存在异常 | +1修复了作业发布没有对表单内容进行检查的bug | -1没有进行确认检查导致用户记录存在异常 | ||
51 | 55 | 52 | 52 | 46 |
50 | 53 | 51 | 52 | 44 |