上课之前,我们先聊聊几个问题。
第一个问题,为什么要软件测试? 简单来讲,就是你不测试的代价
比测试的代价要更大的时候,这时候我们需要软件测试。
举个例子,同学们有很多软件工程的作业。
这些作业,大部分是不需要软件测试的。
因为,你们的这些项目运行失败,
代价非常低,顶多被老师说几句、扣几分,仅此而已。
但是,有很多项目, 在实际运用当中,可能会涉及到有重大的一些经济
或者甚至人的生命。那这些系统是
需要软件测试,而且需要非常严格的一些软件测试。
同时我们也会问,为什么要学这门课?
这门课不仅仅是为测试人员而设计的,
里面有很多内容,其实是面向开发者而设计的。我们希望
开发者通过去理解这些bug的基本原理
和它引发的一些场景,进而来提高编码的质量,提高软件的质量。
第二个问题,
这门课讲哪些内容?这门课分为三部分。
第一部分是基础部分,主要介绍bug的一些基本知识, 它的一些基本原理。虽然看起来这个问题很简单,
我们大概也要花四次课来讲解。
第二部分,软件测试方法,也是这门课最重要的部分。
我们介绍结构化测试、数据流、逻辑测试, 还有黑盒部分的随机、等价类划分等等。
我们最后,会介绍所有这些测试方法都基于一种基本的
原理,多样性原理。在讲完测试方法以后,我们需要把测试方法付诸于实现。
那得借助一些测试工具。我们使用到的工具有这些, 第一部分有,eclipse上面加载JUnit
、Soot等等, 完成Java的一些白盒测试。
第二部分,面向移动应用,我们用testdroid、Robotium 等,
完成移动应用测试。还有一部分是JMeter, 做性能测试。这一部分是作为大家测验,
最终成绩计入总成绩。还有些是作为课外大家有兴趣去使用的一些工具。
这里面有,Selenium做外部测试, PICT做组合测试,
Randoop做Java的一些 随机测试,Monkey
Test做移动应用的随机测试, GUITAR做界面的自动化测试。
第三个问题,如何来学习这门课?第一部分, 也是最重要的,就是Coursera看我们的教学视频。
参考书我们推荐,《Introduction To Software Testing》,由George Mason两位教授写的这本教材。
同时,有问题的部分,我们依然可以通过Google和百度来搜索你的资料。
最后,我们重点讲一下, 我们这门课的一个教学辅助平台,Mooctest.net。
我们有80%的作业,都在Mooctest.net完成。
请大家登陆Mooctest.net注册账号,并且确保这个账号跟Coursera的账- 号一致。
使得我们能够方便的记录你的成绩。
在Mooctest.net我们需要完成,JUnit 测试、
移动应用测试、性能测试,还有一次Java的 debugging 调试。
同时,我们提供微信公众号,方便大家的沟通和交流。
你准备好了吗?我们开始软件测试课程。