软件测试学习(一)

软件测试的概念

由于早期的软件代码行数很少,程序员可以独立进行开发、调试,直至最后的发布使用。然而,随着真正的商业软件的出现,程序规模爆炸式的增长,程序代码行数增加为千万数量级。随着软件的复杂度不断增加,开发的难度也越来越大,要保证程序的正确性和可靠性,要在程序的技术内涵和用户特定领域的需求之间找一个平衡点,必须提升软件测试的专业化,必须将软件测试工程师视为一个专门的工种。
IEEE对测试的定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的是在于检验它是否满足规定的需求或是弄清楚预期结果与实际结果之间的差别。

软件测试的目的

  1. 确保产品完成了它所承诺或公布的功能
  2. 确保产品满足性能和效率的要求
  3. 确保产品是健壮的、适应用户环境的

软件测试的重要性

  1. 软件测试可以减少软件的不正确执行导致的资金、时间和商业信誉损失,甚至能减少人员伤亡风险。
  2. 软件测试可以降低软件开发成本,强化项目进度和质量上的控制。有调查显示,通过必要的测试,软件缺陷可以减少75%,而软件的投资回报率则可增长到350%。在软件测试上投入更多成本,会降低软件项目的整体成本和风险。
  3. 软件测试的发展推动了软件工程的发展,通过分析在若干项目中发现的缺陷和引起缺陷的根本原因,我们就可以改进软件开发过程。过程的改进又可以预防相同的缺陷再次发生,从而提高以后系统的质量

软件质量保证和软件测试的区别

软件测试是软件质量保证的一部分,有助于提高软件的质量,但不是软件质量保证的全部
软件质量保证(Software Quality Assurance,SQA)目的是提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”和“产品质量”,从而实现持续地改进质量,是一种有计划的、贯穿于整个产品生命周期的质量管理方法。

软件测试技术分类

软件测试的方式有黑盒测试和白盒测试

  • 黑盒测试
  1. 黑盒测试是把软件产品当作是一个黑盒子,在不考虑程序内部结构的情况下,在程序接口进行测试,它只检查程序功能是否按照需求说明书的规定正常使用,程序是否能接收输入数据而产生正确的输出结果。(简单来说就是只看结果不看过程)
  • 白盒测试
  1. 白盒测试是一种以理解软件内容结构运行方式为基础的软件测试技术。测试人员采用各种仪器设备对软件进行检测,甚至把软件摆上手术台剖开来看个究竟。通常需要跟踪一个输入在程序中经过了哪些函数的处理,这些处理方式是否正确。(简单来说就是要看过程)
手工测试和自动化测试
  1. 手工测试:利用人工的方式去执行测试,由人一个一个的输入用例数据,然后观察结果,和自动化测试相对应,属于最基本的测试方法。
  2. 自动化测试:利用工具或程序来代替人工的测试方法。自动化测试有很强的优势,它借助了计算机能力,可以重复地、不知疲倦地运行,对于数据能进行精确的、大批量的比较,而且不会出错。(缺点:其局限性,测试工具非常昂贵。脚本的维护量也很大,需要专人去维护。)
V模型的测试级别
  1. 单元测试:也称为组件测试,是指对软件中的最小可测试单位进行检查和验证,如一个模块,一个过程等等。它的目的是检验软件基本组成单元的正确性。
  2. 集成测试:通过测试的单元模块组装成系统或子系统再进行测试,目的是对组件之间的接口进行测试,以及测试一个系统内不同部分的相互作用。
  3. 系统测试:将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。
  4. 验收测试:是在软件产品完成了功能测试和系统测试之后,产品发布之前所进行的软件测试活动,是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是建立对系统、系统的某部分或特定的系统非功能特征建立信心。发现缺陷不是验收测试的主要目标。(用户验收测试,运行测试,合同和法规性验收测试,α测试和β测试)
功能和非功能测试
  1. 功能测试:指系统能做什么。功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。外部规格说明是一份从最终用户的角度对程序行为的精确描述。
  2. 非功能测试:指为了测量系统和软件的特征,需要进行的测试。这些特征可以用不同尺度予以量化,比如进行性能测试来检验响应时间。国际标准化组织ISO在ISO9126中定义了几个非功能属性。(性能测试,负载测试,压力测试,可靠性,可用性,可维护性,可移植性,兼容性测试,安全性测试,本地化测试,配置测试)
静态和动态测试
  1. 静态测试:是指不运行被测软件,只是静态地检查程序代码、界面或文档可能存在的错误的过程方法。 静态测试方法包括检查单和静态分析方法,对文档的静态测试方法主要以检查单的形式进行,而对代码的静态测试方法一般采用代码审查、代码走查和静态分析,静态分析一般包括控制流分析、数据流分析、接口分析和表达式分析。
  2. 动态测试:相对于静态测试而言的,是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程。
其他测试术语
  1. 确认测试
  2. 回归测试
  3. 冒烟测试
  4. 探索性测试
  5. 随机测试
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没关系的朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值