UltraSoft - Beta - 测试报告

  1. 在测试过程中发现了多少Bug?有哪些是Beta阶段的新Bug?有哪些是Alpha阶段没有发现的Bug?

    很多Bug在开发阶段就已经经过测试了,我们在Beta阶段采用了Pull Request的协作方式,前后端完成新功能需要进行连接测试之后才会merge到主分支Master,所以在连接测试的过程中就可以发现Bug并修复解决,在完成的覆盖测试中并没有特别多的Bug出现。

    1. Beta阶段的Bug

      1. 在Beta阶段,我们增加了对后端数据库API调用的验证,如果请求中没有我们需要验证的数据则拒绝,所以在每个后端函数的开头加上了一个判断,然而在用户个人设置中,取出验证数据的方式有误,导致调用会出现 500 Internal Error 的错误,由于平时使用不多,没有发现,在覆盖测试中该bug才被揪出来。

    2. Alpha阶段没有发现的Bug

      在更新课程信息的爬虫中,在爬取个人课程ddl时使用了作业的url作为主键,然而在Beta开发阶段中发现存在同一个作业被创建了两次的情况——完成作业前和完成作业后,经过对比发现是课程中心的作业链接发生了变化:在完成作业前所有人是统一的链接,在完成作业后每个人的提交生成了一个submissionId被插入到了作业的url中,所以用url当作主键的情况下,完成作业前后的url不同,所以出现了两份作业的情况。

  2. 你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?(仅描述新功能即可

    场景测试又称为场景法,主要用于测试软件的业务过程或业务逻辑,场景法是一种基于软件业务的测试方法。测试人员在测试时要模拟用户在使用软件时的各种场景,大致模拟两类:

    1. 模拟用户正确的业务操作过程—验证的是功能是否正确
    2. 模拟用户错误的业务操作过程—验证的是程序的异常处理能力(健壮性)

    场景法主要测试软件的业务逻辑和业务流程。当拿到一个测试任务时,我们并不是先关注某个控件的细节测试(等价类+边界值,判定表等),而是先要关注功能的主要业务流程和主要功能是否正确实现,这就需要使用场景法。当业务流程和主要功能没有问题,我们再从等价类、边界值、判定表等方面对控件细节进行测试(先整体后细节)

    我们在开发过程中会对新增的需求进行测试,并不在最后的覆盖测试中进行,原因是场景测试所需要模拟的操作组合众多,堆积在一起测试会造成任务量的繁重,所以需要走一步测一步。

    在新功能的场景测试中,我们会对所有的可以点击的按钮进行组合点击(因为按钮少所以可以人力全覆盖),包括一些错误的业务操作,如填写日程之后点击关闭而不是取消,在个人信息修改界面修改密码之后没有确认保存直接退出等等。因为我们的大多数操作都是点击响应的,页面以静态页面为主,没有动态的内容,点击静态页面的按钮才会发送API请求,不设置前端的缓存,所以基本没有错误操作流程。

    我们提供的新功能有:

    1. 邮件提醒个性化设置:

      点击立即发送API,没有前端缓存,不存在错误的操作

    2. 如课程视图加入课程通知等:

      大多界面都是静态资源请求没有可以错误操作的按钮

    3. 设置重复提醒事项

      创建新日程前端不设置缓存,错误的操作如填写后点击取消会取消所有的已写内容。

  3. 你是否有回归测试确保新功能的加入没有影响已有功能?请给出一到两个测试用例并解释。

    我们的Web应用一直投入使用,所以我们的回归测试一部分可以说是交给了用户来替代我们执行,用户的操作会在后台留下操作记录,如果有错误发生会进行记录,从结果来看运行良好,由于功能之间耦合低,大多都是独立功能,所以不会有新功能对原有功能的影响。至于测试用例的话,我们团队日常的使用就是测试用例,核心功能如创建日程,同步课程中心资源等,都是在我们使用后可以发现是否有错误的,比如我们就在使用过程中发现了创建重复日程的Bug并进行了修复。

    对于系统的覆盖测试,我们也有一套测试流程,测试结果如下:

    其中覆盖率低的有:

    • automail.py:0% 这是因为这不是后端调用的函数,而是定时发送邮件提醒的脚本,由Crontab每分钟自动执行。
    • webScrap.py:课程中心爬虫脚本,是由Views.py进行传入参数调用,不能自动化执行。
    • admin.py:这是Django后端数据库管理页面显示的页面,是面向开发者的界面,里面根据我们调试的需要增加了一些冗余的字段显示,对用户的使用完全没有影响。
    • apps.py:这个是Django的声明,未使用。
    • views.py:76% 其中存在部分未上线的功能,已经预留接口,所以未测试。
  4. 给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?

    测试使用的浏览器 字体字号
    图片大小
    日历显示 登陆界面
    修改密码界面
    注册界面
    保存图片 添加任务界面 查看任务界面 个人信息修改页面 课程界面
    (作业/资源/通知)
    消息中心 用户反馈
    Microsoft Edge 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常
    Google Chrome 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常
    Firefox 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常
    Safari 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常
  5. 你的软件Beta版本的出口条件(exit criteria)是什么?也即在什么条件下,认定你的软件已经足够好,可以发布Beta版本?

    1. 服务器运行正常
    2. 核心功能正常
    3. 新增功能对原有功能无影响

UltraSoft - Beta - 测试报告的更多相关文章

  1. UltraSoft - Beta - Postmortem事后分析

    UltraSoft - Beta - PostMORTEM 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题和定义都在[软软软]功能规格说明书 ...

  2. UltraSoft - Beta - 项目展示

    UltraSoft - DDL Killer - Beta 项目展示 团队介绍 CookieLau fmh 王 FUJI LZH DZ(转出) Monster hdl(转入) PM & 后端 ...

  3. 【二食堂】Beta - 测试报告

    Beta - 测试报告 测试过程中发现的bug Beta阶段的新bug 我们在Beta阶段的开发过程中就进行了测试,发现了许多bug.这其中后端的bug比较多,在这里我列举一些比较重要的功能性bug. ...

  4. [no_code][Beta]测试报告

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 2020春季计算机学院软件工程(罗杰 任健) 作业要求 测试报告 我们在这个课程的目标是 设计出一个OCR表单处理软件 这个作业在哪个具体方面 ...

  5. UltraSoft - Beta - 设计与计划

    在DDL Killer的Alpha发布版本一周后,我们积累了一定的用户数量和用户反馈,同时也着手准备Beta阶段的继续开发,在正式开始迭代前,先对我们的Beta阶段的需求做一个统计和预估,一是保证工作 ...

  6. UltraSoft - Beta - 发布声明

    1. Beta版本更新内容 新功能 (1)消息中心页面 课程爬取到新DDL.资源时会以通知的方式通知用户,本次同步更新了哪些内容一目了然.此外,当被作为参与成员添加DDL时也会通知.一些系统通知也会放 ...

  7. UltraSoft - Alpha - 测试报告

    遇到的bug bug:在vue.config.js里配置proxy,并修改请求的url后仍无法连接到后端. 解决: url最后忘了'/',导致和后端不匹配,会有404.500等错误. 后端服务未打开或 ...

  8. UltraSoft - Beta - Scrum Meeting 1

    Date: May 17th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 维护Beta阶段文档 Liuzh 前端 增加删除操作按钮 Kkkk 前端 查询增加 ...

  9. UltraSoft - Beta - Scrum Meeting 2

    Date: May 18th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 建立Beta仓库管理增加服务器部署和Git协作文档 Liuzh 前端 查阅响应式布 ...

随机推荐

  1. Flask(4)- URL 组成部分详解

    URL Uniform Resource Locator 的简写,中文名叫统一资源定位符 用于表示服务端的各种资源,例如网页 下面将讲解 Flask 中如何提取组成 URL 的各个部分   URL 组 ...

  2. js 显示日期时间,时间过一秒加1

    html: <div id="data"><font>2017年10月17日 15:11:11</font></span> js: ...

  3. Redis单节点安装与使用

    1.配置阿里云yum源 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7 ...

  4. 【第六篇】- Maven 仓库之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven 仓库 在 Maven 的术语中,仓库是一个位置(place). Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库. 在 Maven 中,任何一个依赖.插件或者项目构建的输出 ...

  5. rune和byte在处理字符/字符串中的应用.

    rune和byte在处理字符/字符串中的应用. 定义: rune是int32的别名,-2147483648->2147483647,常用来表示UNICODE字符集,可以用来处理包含中文/非中文的 ...

  6. 安装Centos7,出现无法联网的问题-----解决办法

    安装Centos7,出现无法联网的问题-----解决办法 我安装的是centos7的版本 在我照着centos7安装教程-CentOS-PHP中文网这个教程安装完后 我发现我的centOS无法联网,在 ...

  7. STM32CbueIDE 体验

    STM32CbueIDE 体验 下载安装 官网下载链接:https://www.st.com/zh/development-tools/stm32cubeide.html. 软件启动时会令设置工作目录 ...

  8. 【PHP数据结构】栈和队列的应用

    通过栈和队列的学习,我们似乎会感觉到其实数据结构还是非常简单的嘛.当然,这只是一个开始,我们从顺序表.链表开始,到现在的栈和队列,其实都是为了将来在铺路.在树和图的遍历算法中,都可以见到栈和队列的身影 ...

  9. 动态查看及加载PHP扩展

    在编译并完成 php.ini 的配置之后,我们就成功的安装了一个 PHP 的扩展.不过, PHP 也为我们提供了两个在动态运行期间可以查看扩展状态以及加载未在 php.ini 中进行配置的扩展的函数. ...

  10. JDK1.8源码(三)——java.lang.String类

    一.概述 1.介绍 String是一个final类,不可被继承,代表不可变的字符序列,是一个类类型的变量.Java程序中的所有字符串字面量(如"abc")都作为此类的实例实现,&q ...