初识软件测试
--想了解软件测试,我们先来简单的介绍一下软件测试中的“软件”。
一、软件的简介
1、含义
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据、文档的完整集合,也就是说:软件=程序+数据+文档。
2、概念
对数据进行加工处理(增删改查)的工具
3、名词解释
源程序:未经编译的文本文件,也就是源代码指的是.html、.Java后缀的文件。
目标程序:源程序经过编译以后,可被计算机直接运行的机器码集合。比如.class、.exe文件。
解释性文档:代码中的注释,软件里面的概念性解释。
指导性文档:游戏软件的一些入门教程,客户的使用或者帮助手册。
4、软件的特点
1)计算机软件即是作品也是工具,是作品性与工具性紧密结合的智力成果;
2)计算机软件开发的成本高、周期长、工作量大,但复制又极其容易并且成本低;
3)计算机软件具有无形性、可以重复多次使用,但是商业寿命一般较短
5、软件的危机
1)软件竞争越来越激烈 – 软件危机:价格更低,质量更好
2)新技术不断涌现,学习上的危机
3)客户的需求越来越复杂,导致软件开发越来越难
4)遇到的问题没有解决方案(技术瓶颈)
5)研制周期长、正确性难以保证(测试人员解决的)
--软件了解完了之后,我们就来看什么是软件测试吧~
二、软件测试简介
1、定义
早期的定义:
为了发现程序或者系统在运行过程中的错误,也就是为了发现错误而执行或者运行系统或程序。
标准的定义:
使用人工或自动手段来运行或测试某个系统的过程,其目的在于检它是否符合并满足规定的需求或者核对实际结果与预期结果之间的差别。(实际结果就是实际操作产生的结果)
2、软件缺陷(bug)
2.1什么是缺陷
不满足用户确定需求的(用户讲的,隐性的)。影响软件功能的实现问题,出现了故障。是对软件产品与预期属性产生了偏离现象。
2.2缺陷的定义
所有的软件问题都叫缺陷,但是要满足以下任意一个条件,才能称之为缺陷
1)软件没有实现产品说明书中要实现的功能;
2)软件出现了产品说明书中指明了不会出现的错误;
3)软件的功能超出了产品说明中规定的范围;
4)软件没有实现产品说明说明书中未指明但应该有的功能;(根据经验判断)
5)软件测试人员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用体验不好。
2.3产生BUG的原因
- 人员之间的沟通交流不够,交流上有误解或者根本不进行交流。人员包括用户、设计、开发、测试、技术支持。 走流程、写文档、开会、出差
- 文档不完善甚至没有文档:中小型企业做法:前期的需求文档,不会去维护。开发设计文档不会维护。需求凌乱的小文档很多。
- 需求不断的变化:由于用户讲述的需求不专业,用户业务描述不具体、错误,导致需求不断变化(做出成型给用户看的时候发现);市场趋势导致需求变化等等。
- 参与人员的过度自信:这块问题主要集中在开发人员和测试人员。当测试人员测试系统到一定程度时,就会习以为常,这时容易造成测试遗漏。
- 程序设计本身有错误。
- 软件复杂程度大,缺陷很难避免:1+1=2的测试和WINDOWS、WORD(系统复杂度高)的测试对比
- 工期短,任务重,时间压力大:软件规定交付时间,由于预算时间偏离实际、软件出现不可解决的问题等,这些都会浪费时间,导致交付时间晚于规定的时间。这个时候加班加点。
- 软件开发工具与系统软硬件的支持:体现在兼容性测试。比如开发的.exe的程序不能在Linux系统运行,大型的游戏软件需要硬件配置要求。
3、测试与调试的区别(测试不是调试)
l 完成的任务不同
– 测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题。
l 执行的人不同
– 测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
l 执行的周期不同
– 测试贯穿整个软件开发生命周期,调试一般在开发阶段(单元测试阶段)。