简述软件测试

一、软件测试的定义

首先来看看百度对软件测试的定义:“软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。”

看似有些复杂,其实有更简单的定义,引用《软件测试的艺术》一书中对软件测试的定义:“测试是为了发现错误而执行程序的工程。”

二、软件测试的重要性

所有的软件必定不可能是完美的,或多或少都会存在一些错误,而软件测试可以尽早发现错误,予以修正,得以减小损失,提高软件的质量。

但是需要注意,软件测试只能尽可能多的发现错误,但是无法保证发现所有的错误。

软件测试是软件开发中不可或缺的一环,但是其实在很多小型的企业,特别是小型的外包企业,往往会弱化甚至是忽略软件测试以达到节约时间成本和人力成本的目的,代价却是软件的质量难以保证。这些外包企业往往都是想尽快将软件交付给客户,所以很多软件都只是在开发结束后由开发人员对照着需求文档进行简单的功能测试,然后再和客户一起进行最终的确认测试,客户确认后,就达到了交付并收到钱的目的。这样的做法其实是顾前不顾后的,因为如果客户在使用的过程中出现了问题,或者以后软件需要升级,那么所需要的成本会几何倍的增加。

另外还有很多很多由于忽略软件测试后造成巨大损失的案例。

软件测试在软件开发过程中是极其重要的,它在保证软件质量的过程中起到了极其重要的作用。

三、软件测试的原则

  • 测试用例中一个必须部分是对预期输出或结果进行定义
  • 程序员应当避免测试自己编写的程序
  • 编写软件的组织不应当测试自己的软件
  • 应当彻底检查每个测试的执行结果
  • 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  • 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
  • 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
  • 计划测试工作时不应该默许假定不会发现错误
  • 程序某部分存在更多错误的可能性,与该部分已发现的错误的数量成正比
  • 软件测试是一项极富创造性、极具智力挑战性的工作

四、软件测试的步骤

  • 单元测试 ———— 主要使用白盒测试
  • 集成测试 ———— 主要使用黑盒测试
  • 有效性测试(确认测试,验收测试)
  • 系统测试

五、人工测试

在有些项目中可能会用到人工测试,主要的人工测试方法有:

  • 代码检查
  • 代码走查
  • 桌面检查
  • 同行评审

对于一些错误,人工的测试可能比基于计算机的测试方法会更加有效。人工测试和计算机测试有时是可以互补的,可以根据项目的实际情况选择合适的测试方法

发布了49 篇原创文章 · 获赞 10 · 访问量 9261

猜你喜欢

转载自blog.csdn.net/heibuliuqiu_gk/article/details/101993963