软件测试概念: 开发人员:更多的是如何实现功能,而不会从用户的角度去考虑用户奇葩的使用。 测试人员:需要去考虑用户如何会把这个软件给用错。 测试力度:相对于开发来说,产品就相当于是他们的孩子。所以下手就不会那么狠。
测试定义 通过手工或者工具对“被测对象”进行测试操作,从而验证实际与预期结果之间是否存在差异 1、软件测试,可以通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。 2、测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持(比如模拟大量的用户来进行同时操作)。 3、测试可以降低同类型产品开发遇到问题的风险。 测试原则: 所谓的测试原则指的就是我们在执行测试工作时必须要遵守的一些规则 1、测试证明软件存在缺陷(无论执行什么样的测试操作都保证证明当前软件是有缺陷的) 2、不能测试穷尽测试(有些功能是没有办法将所有的测试情况都罗列出来,所以任何的测试操作都有结束的时间) 3、缺陷存在群集现象28理论(对于软件功能来说,核心功能占20%,非核心是80%,我们会集中测试20%的核心功能所以这个部分发现的缺陷的几率就会高于80%,因此我们就会遇到缺陷都集中在20%功能模块的现象) 4、某些测试需要依赖特殊的环境(例如手机冬天太冷会馈电) 5、测试应尽早介入(应该提前设计好测试方案,为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展) 6、杀虫剂现象(用药用多了以后就会产生抗体,就不会产生效应了,同样的一个测试用例,不能重复的执行多次,因为软件会产生免疫) 7、不存在谬论(任何软件都不可能存在缺陷,任何软件不可能是完美的)
测试对象: 测试的主体就是软件(主体功能。功能集合),一个软件也不仅仅只有功能需要测试。 软件可以分为三个部分组成:功能集合+使用说明书+配置数据(例如缓存数据) 阶段性(周期): 对于一款软件来说,从无到有需要不同的过程,可以将这个过程分为不同阶段,然后每个阶段都会相应有测试对象
1、需求分析阶段:各种需求规格说明书 2、软件架构设计:API接口文档(接口测试) 3、编码实现阶段:源代码(白盒测试、单元测试) 4、系统功能使用:软件功能主体(做的最多的一种测试)测试人员充当用户
测试级别: 软件的开发都会依据相应的开发模型,则测试级别指的就在这个模型当中我们人为定义的开发步骤,其中对于测试来说我们最常见的一种级别分类如下: 1、单元测试[UT unit test](在软件测试中,单元指的就是组成软件最小的底层代码结构,一般就是类、函数、组件) 2、集成测试[IT system ingertaion](将多个单元模块组合在一起,然后验证他们之间沟通的桥梁是否能正常工作【接口测试】) 3、系统测试[ST system test] (这是当前行业做的最多的一种测试,由测试人员充当用户然后对软件的功能主体进行测试) 4、验证测试[UAT] (1)α(阿尔法)测试 — 内侧 (2)B测试 — 公测 (3)UAT(user acceptce test)测试 — 由客户派出对于业务非常精通的人员来使用该软件。从而对功能进行测试 (4)验收测试的核心就是让用户为当前软件“买单”
系统测试分类: 1、功能测试:验证当前的软件主体功能是否可用 2、兼容性测试:验证当前软件在不同的环境下还可以使用(各种系统,浏览器,嵌入式等) 3、安全测试:验证软件是否只能授权用户提供功能使用(各类权限问题) 4、性能测试: 相对于当前软件消耗的资源 他的产出能力(吃多少饭,干多少事儿)
|