1. 软件测试的定义
Ø所谓软件测试,就是出于正常合理的目的,在特定的时间环境,用事先制定的标准衡量一种软件产品或特性是否符合预期。
Ø软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:
定义1:软件测试是为了发现错误而执行程序的过程。
定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
1.1软件是什么
Ø狭义上来说,软件[software](中国大陆及香港用语,台湾作软体)是一系列按照特定顺序组织的计算机数据和指令的集合。
Ø广义上来说,软件是指计算机程序、数据以及解释和指导使用程序和数据的文档的总和。
Ø简单的说,软件=程序+文档
1.2 软件测试的历史
Ø1947年9月9日,哈佛大学在测试马克II型艾肯中继器计算机时,操作员在电板编号为70的中继器触点旁发现了一只死了的飞蛾,然后,操作员威廉姆·比尔·伯克把飞蛾贴在计算机日志上了,并写下了“First actual case of bug being found(首个发现bug的实际案例)”

Ø早期的程序规模都很小、复杂程度低,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。
Ø20世纪70年代,随着计算机程序的广泛应用,代码的错误数量也不断增加。人们开始失去对计算机工业中撰写的代码的信任,因为它没有任何清晰的标准。这是由于缺少质量控制措施造成的。1979年出版了Glenford J.Myers的《软件测试的艺术》(The Art of Software Testing),其中介绍了更多关于有效软件测试的原则。
1.3软件缺陷与故障案例
Ø苹果遭遇11小时服务器宕机
–刚刚发布了AppleWatch的苹果公司似乎兴奋过头了。从2015年03月11日下午开始,由于服务器宕机,苹果的iTunes商店、AppStore软件店以及多个互联网在线服务发生了全球性大面积中断,故障时间长达11个小时。–苹果用户发现,自己在登录苹果的软件商店时看到了系统错误提示“STATUS_CODE_ERROR”,无论是iTunes商店、AppStore软件商店都无法正常进行应用购买。很快,全球各地的苹果用户都开始通过社交媒体在网上抱怨。–苹果公司在对外的声明中对此次故障表示道歉,并称此次大面积服务故障属于一个“内部系统错误”。–此次重大事故也影响到了苹果的股价。周三,苹果股价下跌了1.82%,收盘价为122.24美元,为苹果股价2月10日以来的最低点。
Ø温州7.23 动车事故
–2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。
–上海铁路局局长安路生28日说,根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误显示为绿灯。

