Beta阶段测试报告

Beta阶段测试报告

Beta阶段发现的bug

  • 网页端页面刷新会出现空白页,
  • 社团信息编辑英文名称不能为空,
  • 场地选择没有添加错误处理,导致可以选择已经被预定的场地,
  • 通过域名访问不能跳转到网页端登陆页面,
  • 信息编辑请求数据(数组)和返回数据(对象)类型不一致,
  • 社团信息编辑标签显示问题(添加标签后,再次进入编辑页面无显示),
  • 小程序端无法获得新闻文章列表

Alph阶段发现的bug

  • 编辑页面的问题
  • 登陆问题(登陆后不登出无法再次登录)

场景测试

北航社团社长

用户信息 用户情况
用户姓名 小明
用户身份 北航红楼梦协会会长
用户动机 准备开一次红楼梦线下研讨会,让大家相互交流自己的读书心得
用户困难 没有社团活动场地查询的平台,只能向社联管理者直接询问
典型场景 通过网页端实现活动场地的查询,并选择适当的场地进行申请

场景测试:小明

  • 需求分析:马上就要到举办社团活动的日子了,然而小明不知道北航有哪些社团活动场地可供申请,也不知道想申请的活动场地是否已被占用,想要一个平台可以查询相关信息。

  • 使用场景:小明用注册的账号登录北航社团管理网站,在页面上方导航栏中选择场地查询,通过搜索框搜索想要的时间地点,点击查询/刷新按钮后成功的得到了自己需要的场地信息,确定好所需的场地后,进入社团活动界面,点击编辑按钮选择确定好的时间地点,完成场地的申请。

北航社联管理员

用户信息 用户情况
用户姓名 小王
用户身份 北航社联管理员
用户动机 希望对各个社团开展的活动进行审核,并对其进行评价
用户困难 没有实用的审核评价平台,只能社联内部自己统计信息
典型场景 通过网页端完成对社团活动信息的审核,审核通过后还可以对活动进行评分

场景测试:小王

  • 需求分析:小王是北航社联的管理员,负责对社团申请的活动进行审核,审核通过后还需要根据活动的开展情况对活动进行评分,他希望有一个统一的管理平台来完成这些功能,而不需要自己和社团人员单独沟通活动信息。
  • 使用场景:小王使用注册的账号登录北航社团管理网站,在主页可以看到自己负责管理的社团,点击社团下方的审核即可进入该社团的活动审核评价界面,点击审核按钮查看社团提供的信息材料,根据材料选择其是否通过审核,若通过审核,后续可以点击评价按钮给出对于该活动的评分及建议,这便捷的帮助小王完成了他的工作。

回归测试

test 文件夹下,我们主要在 controllersmodels 中的 *_test.rb 文件写了大量关于控制器及模型的测试代码,通过 Rails 自带的 rails test 单元测试命令进行回归测试。

  • 测试用例 1,测试活动更新功能

    test 'should update activity' do
        club = clubs(:acapella)
        activity = activities(:singer)
        put activity_update_path(club_id: club.id, activity_id: activity.id), params:
            {
              name: 'PUBG',
              start_time: '2020-05-20 13:14:00',
              position: 'home',
              post_horizontal_image_token: 'one',
              post_vertical_image_token: 'two',
              host_clubs: %w[kkk acapella_club],
              end_time: '2020-05-22 13:14:00',
              date: '2020-05-20',
              begin_time: '2020-05-20 13:14:02',
              finish_time: '2020-05-20 13:14:10'
            }
        assert_response 200
        assert_match activity.id.to_s, @response.body
    end
    

    通过提前设置好的 fixtures 中的 .yml 文件,并借助 Rails 原生方法,选择阿卡贝拉社团及此社团开展的歌手活动,向活动更新路径发出 put 请求,并且通过参数传递想要更新的字段。如果更新操作成功,则浏览器应该返回200响应,通过 assert_response 进行断言。同时,根据 app/controllers/club_management_controller.rb 中活动更新方法的这段代码:

    if @activity.save 
      render status: 200, json: response_json(
        true,
        data: {
          activity_id: @activity.id
        }
      )
    else
      render status: 400, json: response_json(
        false,
        code: ClubManagementErrorCode::ACTIVITY_UPDATE_FAILED,
        message: 'Activity profile update failed.',
        data: {
          errors: @activity.error_messages
        }
      )
    end
    

    如果更新成功,在 html 响应中应当返回被更新活动的 id,这一断言通过正则表达式匹配 assert_match 实现。以上操作模拟了一次活动更新的过程,运行测试后没有错误发生,表明回归测试成功。

  • 测试用例 2,测试对社团活动的审核功能

    test 'should review activity' do
        activity = activities(:basketball)
        club = clubs(:kkk)
        review_state = true
        review_reason = 'whatever'
        put activity_review_path(club_id: club.id, activity_id: activity.id),
            params: { review_state: review_state, review_reason: review_reason }
        assert_response 200
        puts JSON.parse(@response.body)['data']
        assert_equal review_state, JSON.parse(@response.body)['data']['review_state']
        assert_equal review_reason, JSON.parse(@response.body)['data']['review_reason']
    end
    

    同上,选择 kkk 社团(胡编的奇怪名字)的篮球活动,向活动审核路径发出 put 请求,传递审核成功及自定义的审核原因。同样,浏览器应该返回200响应。puts 将响应中的 data 字段输出,用于观察信息。最后,使用 assert_equal 断言审核信息与我们传递的无误

测试矩阵

网页端

浏览器 版本 注册账号绑定 社团信息编辑 活动信息上传 新闻信息上传 活动审核 新闻审核
Chrome 81.0.4044.129
Safari 13.4.1
Edge 44.18362.449.0
火狐 76.0.1

出口条件

完成Beta阶段的计划,且新增部分没有bug

原文地址:https://www.cnblogs.com/RogerPirates/p/13040183.html