11 2011 档案

摘要:我们谈了不少测试的名词, 规范和原则 (link1, link2). 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人问: 为什么这个bug 没有测出来啊?! 我们看看一类简单的bug是如何发生的,以及如何预防它们再度发生:闰年软件少不了和日期打交道, 日历系统算是人类的一个 legacy system, 这个系统在逐步进化的过程中, 打了好多补丁, 闰年就是补丁之一, 现在的spec 是: 4 年一闰, 100 年不闰,400年又闰。错误之一: 算不清那一年是不是闰年。 1900 年是闰年么?电子表格软件Excel 就有这样一个Bug:Excel 的日期. 阅读全文
posted @ 2011-11-29 09:19 SoftwareTeacher 阅读(6499) 评论(7) 推荐(3) 编辑
摘要:2022/8 更新: 最新的讨论和信息请看这里:《构建之法》课程讨论社区 软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程 (不信就请看 微博上的软工)。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做 阅读全文
posted @ 2011-11-27 23:32 SoftwareTeacher 阅读(99226) 评论(33) 推荐(46) 编辑
摘要:这是现代软件工程课的作业 个人作业 Individual Homework: 个人完成的作业 (读书报告等), 着不同于 “个人项目 Individual Project”. Individual Homework #1 a good question is 50% of a good solution, now let’s share your questions about the tex... 阅读全文
posted @ 2011-11-27 15:19 SoftwareTeacher 阅读(1772) 评论(0) 推荐(0) 编辑
摘要:这是现代软件工程课的作业列表, 老师可以根据情况选用, 建议要保证每周都有作业。 团队作业 Team Homework: 适合团队完成的作业 这些作业都要团队的成员互相配合才能完成, 团队可以选出一位同学完成作业的具体写作和发博客部分, 大家可以轮流完成。 一个团队通常由 5-7名队员组成, 因此即使每周都有作业, 也只是团队中一个人要做文字工作, 因此负担不算重。 Team Homewor... 阅读全文
posted @ 2011-11-27 15:12 SoftwareTeacher 阅读(2508) 评论(0) 推荐(0) 编辑
摘要:这是现代软件工程课的作业结对项目 Pair Project: 一对同学用结对编程的方法完成结对编程课件:现代软件工程讲义 3 结对编程和两人合作软件工程讲义 3 两人合作(2) 要会做汉堡包2015 年的要求: (任选一个) 在手机上实习原来一些PC 端的简单游戏。 自己设计一个小游戏。 设计... 阅读全文
posted @ 2011-11-27 15:08 SoftwareTeacher 阅读(2051) 评论(2) 推荐(0) 编辑
摘要:这是《构建之法》现代软件工程课的个人项目作业 程序的测试,回归测试,效能测试C/C++/C# 等基本语言的运用和 debug。 考虑到同学的基础参差不齐,这个作业提供了多种要求,请按先易后难的次序实现。 用户需求:英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作 阅读全文
posted @ 2011-11-27 13:59 SoftwareTeacher 阅读(5407) 评论(0) 推荐(0) 编辑
摘要:1) PM of each team need to write a blog, sharing the spec of your most important/challenging feature (deadline: 12th week) 2) Tester of each team need to share out your test plan to the world, in you... 阅读全文
posted @ 2011-11-27 13:07 SoftwareTeacher 阅读(880) 评论(1) 推荐(0) 编辑
摘要:[内容来自 移山之道] 白话MSF方法论 2.1 果冻的预习 果冻:超总,听说你要讲MSF,我就先预习了一下,但是MSF的名词太多了,我真是头大,能不能解释一下这两句: “MSF的一个基础原理是学习所有的经验。这一原理在MSF过程模型里的关键里程碑上得到了充分的应用,在过程模型里愿意学习这一关键概念成功应用这一原理所需要的。愿意学习这一概念通过后里程碑回顾的经过检验的做法在项目里得到体现。在大... 阅读全文
posted @ 2011-11-21 21:21 SoftwareTeacher 阅读(3790) 评论(0) 推荐(2) 编辑
摘要:一个里程碑结束了, 下面怎么办? 团队有什么经验教训? 产品怎么才能做得更好? 我们常说 “软件的生命周期”- 这个软件开发的周期结束了, 生命也结束了。 我们能不能像医学的尸体解剖一样, 把这个软件开发的流程解剖一下? 解剖的过程可以叫: Postmortem, Retrospective, Re 阅读全文
posted @ 2011-11-20 17:29 SoftwareTeacher 阅读(9851) 评论(8) 推荐(6) 编辑
摘要:第10章 第10章 代码规范与代码复审 在第9章中,同学们完成了WC程序,经过评比,九条的程序获得了第一名。这时,阿超说,现代软件产业经过几十年的发展,已经不可能出现一个人单枪匹马完成一个软件的事情了,软件都是在相互合作中完成的。阿超建议大家互相看看别人的代码,在TFS中每个人都把各自项目的权限放宽 阅读全文
posted @ 2011-11-20 12:36 SoftwareTeacher 阅读(11956) 评论(12) 推荐(6) 编辑
摘要:[原文来源于 移山之道 第11章] 1单元测试 [原文来源于 移山之道 第11章] 1单元测试 你的RP是由你的程序质量决定的。 ——阿超 这一章讲的是两人合作,既然程序是两个人写的,那就会出现一个人写的模块被另一个人写的模块调用的情况。很多误解、疏忽都发生在两个模块之间。如何能让自己写的模块尽量无 阅读全文
posted @ 2011-11-20 10:52 SoftwareTeacher 阅读(13284) 评论(7) 推荐(5) 编辑
摘要:[移山之道 第九章]9.4 VSTS 效能分析工具啊,效能分析,Performance!这是每一个程序员都梦想的事儿,让自己的程序跑得又快又好,最好是比别的同学快一个数量级,别人的程序是O(N^2),而我的程序是O(n*logN),或者是O(N),这是多爽的一项成就呀!VSTS提供了方便的效能分析工具,让我们能很快地找到程序的效能瓶颈,从而能有的放矢,改进程序。下面我们看一个具体的例子。和同学们的作业类似,有这样一道题:写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来。果冻很快用C#写好了程序,命名为WordFreq.exe,然后运行了一下,验证了正确性,程序的 阅读全文
posted @ 2011-11-20 10:34 SoftwareTeacher 阅读(4478) 评论(4) 推荐(0) 编辑
摘要:[来自 移山之道 第 13 章]13.8 测试计划测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划(又叫测试总纲)要在计划阶段大致定下来,并指导所有测试工作的进行。那测试总纲到底讲什么呢?测试计划描述了一次测试活动的主要方面:为什么(Why),测试什么(What),谁来测试(Who)和什么时候测试(When),详细地说,包括以下方面:(1)测试的总体策略和方法。(2)测试日程安排:何时开始什么样的测试。(3)质量目标:测试要达到什么样的目标才能算通过——这个目标也决定了“验 阅读全文
posted @ 2011-11-19 21:40 SoftwareTeacher 阅读(3917) 评论(3) 推荐(1) 编辑
摘要:在一个软件团队里, 不同的人有不同程度的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务: 开发人员 (大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展) 项目经理 ( 内容在这里) 测试人员 ( 本篇博客 ) 团队中的管理人员/PM 负责分析市场, 阅读全文
posted @ 2011-11-14 10:13 SoftwareTeacher 阅读(7780) 评论(7) 推荐(1) 编辑
摘要:在一个软件团队里, 不同的人有不同的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务, 我们也要讲一下. 开发人员 (大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展)项目经理 ( 这篇博客 )测试人员 ( link )0. PM 我碰到的不少大学同学都有一个想法 - 先做几年技术, 然后做管理; 也有一些同学说 - 我技术不行, 希望直接找到一个管理的工作, 就像PM 那样。PM 的M 就是 manager, 但是 P有这几种: Product Manager, Project Manager, Program Manager, 在不同的行业 阅读全文
posted @ 2011-11-07 13:39 SoftwareTeacher 阅读(14892) 评论(5) 推荐(7) 编辑
摘要:说到用户界面 (User Interface),我们先看一个图:[来源]有些同学认为UI 设计是充满创意和非常潇洒的工作, 另一些同学 (特别是有一定实际项目经验的)也许会抱怨, UI 的工作就是在衣服后面夹夹子,让前面好看一些。其实,计算机软件的用户界面 (User Interface) 和用户体验 (User eXperience) 是一个巨大的领域 (学者们, 顶级会议, 个人电脑GUI的演变), 网上也流传了许多建议。 这篇文章只是记录了一些我最近碰到的零星例子, 在软件工程课上和同学分享。软件, 硬件都有很多功能部件, 各个部件还要有机地结合起来,才能满足用户的需求。 一个著名的例子 阅读全文
posted @ 2011-11-06 00:01 SoftwareTeacher 阅读(6161) 评论(10) 推荐(4) 编辑