原贴地址:http://pku-group3.spaces.live.com/php
设想和目标面试
1. 咱们的软件要解决什么问题?是否认义得很清楚?是否对典型用户和典型场景有清晰的描述?算法
随着城市化的加速发展,城市交通问题也显得越来 越突出,咱们提出要作一个智能交 通疏导系统和模拟系统。这个系统能够经过地图编辑来绘制不一样的道路、路口,能够 经过设定车辆数目来实现不一样的路况,能够用来测试不一样的调度算法。从严格的意义上来讲,它应该是一个带有地图编辑功能的调度算法模拟平台。它支持用户经过 编程方式来实现不一样的调度算法,可 觉得交通控制理论的研究工做人员提供交通模型模拟和实验数据,也能够检验各类交通控制和调度算法的实际效果。编程
2. 是否有充足的时间来作计划? 项目原来预计有多少用户,实际有多少用户? 为何有如此落差?编辑器
3. 计划的时间比较充足,预计的用户不会不少,由于使用本软件须要有必定的编程基础和交通领域的相关知识,或是相关领域的研究工做者。他们使用本 软件主要就是为了测试实现的算法是否“智能”,固然,若是从长期效应来说,本软件为交通智能调度和算法研究提供了良好的工具。本软件的预计下载量在30,实际下载量在40左右。工具
4. 团队在计划阶段如何解决同事们对于计划的不一样意见的? 单元测试
主要经过开会讨论来统一不一样意见,开会后会得出一个你们都 一致接受的结论。学习
计划测试
1. 你原计划的工做是否最后都作完了? 若是有没作完的,为何?google
计划的工做并无彻底作完,咱们定义了4个scope而且预计实现其中的2~3个,最终实际完成了第一和第二个scope。没有彻底完成的主要缘由仍是由于项目的时间吃紧,尤为是到项目进行的后期。另一个缘由就是咱们缺乏熟悉交通领域知识的人来支持我 们完成系统的开发,不少交通领域的专业知识是咱们发现不足后临时学习的,这也很大程度的拖慢了项目的进度。
2. 有没有发现你作了一些过后看来不必,没多大价值的事?
没有。
3. 每一项任务都有清楚定义的和衡量的交付件?
大的任务咱们有清楚的定义和衡量,但并非具体到每个任 务都有定义,开发过程当中弹性很大。
4. 在项目的整个过程都按照计划进行?
大致上是按照计划来进行。在全组人员的共同努力下,项目按照原定计划在6月23日发布Beta版本, 并开始收集该版本的用户反馈信息。在发布Alpha版本以后的两个星期,咱们陆续收到了用户反馈信息。项目的进行基本按照计划,在不影响版本发布的前提下,对进度和任务作了一些必要的 调整。
5. 在计划中有没有留下缓冲区,缓冲区有做用么?
留下了缓冲区,缓冲区主要是用来处理项目后期系统临近发布 时浮现出来的各类Bug。
6. 未来的计划会什么修改? (例如: 缓冲区的定义,加班)?
应该不会有什么修改。
资源
1. 咱们有足够的资源来完成各项任务么?
没有,在项目过程当中,因为组员本学期课业任务比较重,能投入项目的 时间并很少,因此项目时间比较紧张。
2. 各项任务所需的时间和其余资源是如何估计的,精度如何?
项目中的各项任务都基本按照经验来估计,放宽必定的缓冲 区,采用保守估计,如今看来,这个方法虽然估计精度不是很高,可是从结果来看仍是保证了项目按照计划如期交付。
3. 用户测试的时间,人力和软件/硬件资源是否足够?
Alpha版本的测试时 间是2周,有点短,收集的用户反馈深度不是很 够;并且项目人力也存在问题。软硬资源获得了 保障。
4. 你有没有感到你作的事情可让别人来作(更有效率)?
主要是关于交通领域的专业知识咱们小组仍是有所欠缺,若是 有一个有这方面背景的人可以给予支持效果确定会好不少,至少能够节约大量的时间。系统也能更加专业和贴近用户的使用习惯。
变动管理
1. 每一个相关的员工都及时知道了变动的消息?
咱们经过SVN来管理代码,每一个员 工都会受到变动消息。另外咱们还有QQ群等辅 助手段来进行沟通。
2. 咱们采用了什么办法决定“推迟”和“必须实现”的功能?
咱们采用了划分优先级的方式肯定了哪些功能必须实现,哪些 功能推迟实现。调度算法是推迟的功能,由于项目必须实现的是一个算法模拟的平台,即平台自己,而算法是能够由用户自行实现的。固然,咱们也致力于找到很好 的调度算法,目前,只实现了几种简单的调度供用户参考使用。
3. 项目的出口条件 (Exit Criteria)是否获得清晰的定义? 到底什么叫 ”作 好了”?
咱们经过验收测试来测试系统是否“作好了”,出口条件就是 开发出这个系统而且完成需求阶段定义的90%以上的功能。
4. 对于可能的变动是否能制定应急计划?
没有应急计划,项目变动时经过开会讨论的方式来控制和处理 变动。
5. 员工是否可以有效地处理意料以外的工做请求?
员工基本能在完成本职工做的同时,完成意料以外的工做请 求,例如,文档、BUG修复等等。团队比较团结,组员积极性 较好。
设计/实现
1. 设计工做在何时,由谁来完成的?是合适的时间,合适的人么?
第一周头脑风暴肯定要作的系统为:城市交通智能管理模拟系统,肯定主要的功能模块为:地图编辑器和 路况监视器,并肯定每一个模块要实现的具体功能,如地图编辑器模块的地图保存功能,路况监视器中的局部查看功能,全局查看功能,局部放大功能,打印实时信息 功能等,头脑风暴由全组人员参加。第二周讨论具体的实现,由PM(沈阳),一个DEV(何 建杉),一个TEST(万成铖)参加。
2. 设计工做有没有碰到模棱两可的状况,团队如何解决的?
没有。
3. 团队是否运用单元测试(unit test), 测试驱动的开发(TDD), UML, 或者其余工具来帮助设计和实现?这些工具备效么?
在开发的过程当中进行了单元测试,可是是经过直接编写测试代码进行的,没有用到专门的工具。
4. 什么功能产生的bug 最多,为何?
汽车自主控制功能,包括当前的车道,当前所处的路口,前方是否有车辆阻挡,前方是否为路口,相位是 否已打开等等。由于汽车所处的状态是一直变化的,不一样车道的行为时不一样的,并且有随机行为,因此比较容易出现问题。
5. 代码复审 (Code Review)是如何 进行的,是否严格执行了代码规范?
因为时间限制,对关键模块的代码由测试人员进行了人工走查。
测试/发布
1. 团队是否有一个测试计划?为何没有?
测试工做开始的初期就制定了测试计划,测试计划就肯定了软 件的特性和测试范围而且决定进行如下测试
Code Reviews
Blackbox Testing
Fault Injection
Stability Testing
在开发过程当中由开发人员完成了基本的单元测试和白盒测试。
2. 是否进行了正式的验收测试?
在需求阶段咱们定义了4个scope,目前咱们实现到第二个scope而且发布了相应的Beta版。根据需求阶段定义的系统特性咱们进行了验收测试来确保系统实 现了预期的功能。咱们找不到最终用户来帮助咱们进行验收测试,因此是由软件测试人员完成。
3. 团队是否有测试工具来帮助测试?
系统开发主要使用MFC技术,咱们没有找到 比较适合的针对MFC程序的开源或者免费的测 试工具,更没有时间来开发钻用的测试工具,因此全部的测试代码都是由开发人员和测试人员手动编写。系统的特殊性决定了咱们很难找到合适的测试工具。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工做有用么?应该有哪些改进?
对软件效能的测试主要是经过运行系统而且观察结果来完成 的,软件运行之后效能必须在用户能够接受的范围之内,从软件实际运行的结果来看这些测试工做仍是颇有效的,咱们前后争对效能进行过两次改进,每次改进都有 明显提升运行效率。
5. 在发布的过程当中发现了哪些意外问题?
在发布过程当中遇到的意外问题就是上传的资源意外被CSDN删除,或者是因为CSDN资源站不稳定致使用户下载资源是出现“当前资源不存在”的提 示。咱们发现后又从新上传了对应版本。