什么是软件测试?
软件测试是鉴定软件程序正确性和质量的过程。目的是检查软件是否满足客户特定需求、需要和预期。换言之,测试是通过执行一个系统或者应用来发现故障、缺陷或者错误。测试的任务是为了找出应用失败的原因进而根据需求来更正失败。
例如:汽车厂商测试汽车的最高速度、燃油效能和碰撞安全性。这些测试成为汽车销售过程广告策略的一部分。
开发一款新型软件可能远比想象的要难。毕竟你想要从一开始就确保一切都绝对完美。如果没有执行充分的测试,发布的软件大概率会带着各种严重缺陷和小毛病。软件测试比你认为的更难。在这个基础指南里,你能找到一些建议来保证软件发布前被完整测试。
软件测试基础
首先,也是最重要的,你应该准确理解软件测试是干什么的。它无非是一个分析软件有效性时需要遵循的流程。软件测试阶段让你有机会进行软件评估进而决定它是否满足终端用户。该阶段你能够发现编码中的缺陷,然后采取措施来保证软件完善。
软件测试重要性
归根结底,软件测试远比想象的重要。如果你的软件未经测试,不久的将来大概率会乱套。你的软件带有缺陷,而这会让你的公司名誉受损。毕竟没人会相信一个出版的软件全是缺陷的公司。发布不稳定的产品会刺激客户集体转向一个新程序。软件发行前修复错误也是减少成本的最好方法。事实上,认真完全地测试你的软件最符合公司的利益。公司的名誉和未来都依赖于此。
软件测试经典示例
实际上所有的公司都会发生软件漏洞。事实上,一些最值得信赖和尊重的公司内部遇到过严重的问题。以NASA为例,公司的火星气候探测器由于运行的太低太快而坠毁。最后发现是因为当局使用非公制单位,不幸的是软件需要公制单位。这个简单的失误让公司损失1.25亿美元。千年虫问题让人难以忘记。回望1999年底,每个人都害怕到2000年时他们的电脑会发生故障。这个漏洞简单到不可思议。开发人员认为用两位数字存储年份是个好主意。谢天谢地,问题最后解决掉了,但在这之前软件航司的公司为此损失了数十亿美元。即使那些提供在线文章帮助的公司也被迫调整。可以说,千年虫漏洞是有史以来最贵的漏洞。
- 千年虫漏洞 - 数十亿美元
- 火星气候探测器 - 1.25亿美元
软件测试的益处
综上所述,全面的软件测试会带来大量益处。任何拒绝全面测试自己软件的人将来都会后悔。历年来,每一年软件缺陷都耗费公司数十亿美元。通过实行更好的软件测试流程,这项花费预计能减少三分之一。通过全面测试,能够在研发阶段找出并修复错误。通过软件测试也能够降低维护成本。
测试员角色和职责
很多人并不知晓软件测试员的角色和职责是什么。以下内容会介绍大量的测试员角色和职责。
- 需求规范分析,理解其必要性
- 做出测试预估
- 准备或者理解测试计划
- 撰写测试用例
- 收集测试数据
- 执行测试、发现软件缺陷
- 发现缺陷后立刻报告以便于开发人员修复
- 原始问题修复后再次测试
- 执行回归测试
- 给软件研发生命周期过程提供建议
- 为客户进行软件测试提供支持
- 参与软件实施
- 提供实施后支持
软件测试重要性巨大,这也是越来越多的公司会在软件测试上持续投入更多经费的原因。不久的将来这项花费可能会成为科技公司最大的一项花费。尽管如此,长期来看这项花费非常值得。
测试方式
- 手工测试:手动执行测试用例。
- 自动化测试:利用自动化工具执行测试。
测试类型
软件测试类型多种多样。为确保发现所有的错误,可能需要使用几个不同的测试方法。以下内容会介绍不同的测试类型。
- 白盒测试:该测试要求测试能够理解软件执行和代码,然后尝试分析代码逻辑。多数情况下,开发人员会进行白盒测试。
- 黑盒测试:该测试以用户视角看待事情。执行黑盒测试是为了弄清楚软件是否工作以及是否满足客户需求。为保证该测试正确执行,重要的一点是确保用户不知道软件内部应该是如何运行的。
- 用户验收测试:该测试相对简单。在软件公开发布前由终端用户执行测试。通常在贝塔测试阶段完成。确保卷入尽量多的人加入测试。
- 图形界面测试:最后,你会需要利用图形界面测试。它会保证软件的界面外观符合用户要求。再次提醒,为了保证软件达到预期水平需要使用上述各种测试类型。
- 端到端测试:该测试也尤其必要。它跟系统测试非常类似,但是有一些不同。端到端测试从软件的起跑线开始分析一直到结尾来确保每个模块工作正常。这个阶段,需要模拟生产环境。需要关注的一点的是确保软件与数据库同步正确。
- 回归测试:缺陷和故障修复后都需要执行回归测试。该测试确保之前的修复内容足够好并且不会引发进一步的问题。
|