团队作业5——测试与发布(Alpha版本)

Alpha版本测试报告
请根据团队项目中软件的需求文档、功能说明、系统设计和测试计划,写出软件的测试过程和测试结果,并回答下述问题。 
  1.  在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? 
  • Bug的分类:
  1. 修复的bug;
  1. 不能重现的bug
  1. 这个产品就是这样设计的,不是bug;
  1. 没有能力修复,将来也不打算修复;
  1. 这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复。
  1. 场景测试(scenario testing),包括以下内容:
  1. 你预期不同的用户会怎样使用你的软件?

学生:上网做题练习四则运算,当老师发布考试的时候,上网进行考试并查看自己的成绩排行;

老师:在网上进行考试出题,并查看学生成绩情况。

  1. 他们有什么需求和目标?

学生:提高自己的四则运算能力

老师:更高效地进行对学生运算能力的考试

  1. 你的软件提供的功能怎么组合起来满足他们的需要? 

软件提供的功能不仅能够进行四则运算练习,还能进行四则运算考试,结合起来提高学生的运算能力

  1. 你们在什么样的平台、硬件配置、浏览器类型等条件上对你们的软件进行测试?——测试矩阵(test matrix) 

 

  1. 认为你们团队的软件在什么条件下,就可以认定其已经足够好,可以发布Alpha版本?——出口条件(exit criteria)
 
Alpha版本发布说明
软件发布的同时,在团队博客上写一个发布说明
    ▪ 列出这一版本的功能(在原有项目基础上开发的列出新功能)
版本在原有项目的基础上完成了用户注册、登录、出题的功能。增加了计时器、排行榜、考试、难度选择、查看答案等功能
    ▪ 以原有项目为基础开发的,列出这一版本修复的缺陷
    ▪ 对运行环境的要求
    ▪ 安装方法
    ▪ 描述系统已知的问题和限制
    ▪ 说明软件的发布方式以及发布地址
   
对于功能的描述除了文字以外,可以通过图片、视频等进行辅助说明。
 
 
项目管理
 
源代码管理的重要性无需赘述,但是在实际中,很多团队都是小和尚念经 - 有口无心。请各个团队举出例子,如何处理团队开发中可能会遇到的各种问题。
每个团队回答下列问题,(每个回答要加上截屏显示):
  1.  在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新、最稳定版本的软件编译出来,并运行必要的单元测试? (在这过程中,不需要和老队员做任何交流) 
  1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?                 
  1.  文件锁定的场景: 程序员果冻正在对几个文件进行修改,实现一个大的功能, 这时候,程序员小飞也要改其中一个文件,快速修复一个问题。怎么办? 
  1.  一个代码文件被 check in (签入,即把代码更新到 Coding 上)之后,另一个团队成员是否可以 check out (签出,从 Coding 上拉取代码到本地)这个文件,并修改,然后签入?
  1. . 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),以及缺陷修复 (bug fix) 的关系。
  1. 版本差异的场景: 程序员果冻看到某个文件被修改了,他怎么看到这个文件在最近的修改究竟改了哪些地方?
  1. 场景: 程序员果冻看到某个文件在最新版本被改动了100 多行, 那么和这100多行对应的其他修改在什么文件中呢? 这个修改是为了解决哪些问题而作的呢? 那些问题有工作项 (work item,issue),或者bug 来跟踪么?
  1. . 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?
  1. 你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?
  1. 场景: 程序员果冻要签入 20 个文件,他一个一个地签入, 在签入完5 个 .h 文件之后, 他发现一些 .cpp 文件和最新的版本有冲突,他正在花时间琢磨如何合并... 这时候, 程序员小飞从客户端同步了所有最新代码, 开始编译, 但是编译不成功 - 因为有不同步的 .h 文件和 .cpp 文件!  这时候, 别的程序员也来抱怨同样的问题,果冻应该怎么办?
  1. 你的PC 上有关于三个功能的修改,但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management。
  1. 如何给你的源代码建立分支?
  1. 场景1:假设你们需要做一个Alpha版本的演示,需要在演示版本所在的分支中对Alpha版本各处的代码做一个临时的修改。同时,主要的分支还保持原来的计划开发。 你们该怎么做? 在演示之后,演示版本的某些修改应该合并到主分支中,另一些则不用,你们该怎么做?
  1. 场景2: 你们的软件发布了,有很多用户,一天,一个用户报告了一个问题,但是他们是用某个老版本,而且没有条件更新到最新版本。 这时候,你如何在本地构建一个老版本的软件,并试图重现那个问题?
  1.  一个源文件,如何知道它的每一行都是什么时候签入的,为了什么目的签入的 (解决了哪个任务,或者哪个bug)?
  1. 场景: 一个重要的软件忽然出现崩溃的情况, 程序员果冻经过各种debug手段,发现问题是在某一个文件中有一行代码似乎显然出了问题,但是这个模块被很多其他模块调用,这行代码是什么时候,为了什么目的,经过谁签入的呢?如果贸然修改,会不会导致其他问题呢? 怎么办?
  1. 如何给一个系统的所有源文件都打上标签,这样别人可以同步所有这个标签的文件版本?   代码每天都在变, 有时质量变好,有时变差,我们需要一个 最后稳定的好版本(Last Known Good) 版本, 这样新员工就可以同步这个版本, 我们如果需要发布,也是从这个版本开始。那么如何标记这个 Last Known Good 版本呢?
  1. 你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?
  1. 在签入之前,程序员能否自动在自己的机器上运行自动测试,以保证本地修改不会影响整个软件的质量?
  1. 在程序员提交签入之后,服务器上是否有自动测试程序, 完成编译,测试,如果成功,就签入,否则,就取消签入? 
posted @ 2017-11-26 22:30  陈颖锋  阅读(140)  评论(0编辑  收藏  举报