软件测试的作用
①通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品使用信心。
②测试可以记录软件运行过程中产生的一些数据,从而决策提供数据支持。
③测试可以降低同类型产品开发遇到的风险。
测试原则
所谓的测试原则指的就是我们在执行测试工作时必须要遵守的一些规则
①测试证明软件存在缺陷:无论执行什么样的测试操作都不能证明当前软件是有缺陷的。
②不能执行穷尽测试:有些功能是没有办法将所有的测试情况都逻列出,所以任何的测试操作都是有结束的时间。
③缺陷存在群集现象:对于软件功能说,核心功能占20%,非核心功能占80%,在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%,因此我们就会遇到缺陷都集中20%功能模块里的现象。
④某些测试需要依赖特殊环境
⑤测试应尽早介入:为了更多的发现和更好的解决软件中缺陷,我们追求测试工作尽早展开。
⑥杀虫剂现象:同样的一个测试用例不能重复的执行多次,因为软件会对它产生免疫。
⑦不存在缺陷谬论:任何软件不可能是完美。
测试级别
①单元测试:UT
②集中测试:IT
③系统测试:ST
④验收测试
α测试——内测
β测试——公测
UAT测试——由客户派专业团队进行测试,一般这种测试购买软件方
常见的系统测试方法
1、按测试对象进行分类
①白盒测试:这种测试的主体就是软件的底层代码,不会在意,外在界面是否OK,只要求底层功能实现,同时逻辑正确。
②黑盒测试:这种测试就是指测试软件外在主体功能是否可用。
③灰盒测试:介于二者之间接口测试。
④上述三种方法当中的“盒”指的就是被测对象。
2、按测试对象是否执行分类
①静态测试:指的就是测试不执行。
②动态测试:将软降运行在真实的使用环境中进行测试。
按测试手段分类
①手动测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境
②自动化测试:所谓自动化主要有二种形式:一种是自己写脚本,另外一种就是通过第三方的工具对被测对象进行测试,优点就是可以高效的去执行一些人工无法实现的操作。
系统测试分类
①功能测试:验证当前的软件主体功能是否可用
②兼容测试:验证当前软件在不同的环境下是否还可以使用
③安全测试:验证软件是否是能授权用户提供功能使用
④性能测试:相对当前软件消耗的资源它的产出能力
测试对象介绍
对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能)但是需要我们明白是一个软件也不仅仅只有功能需要测试。我们可以将软件分为三个部分组成:功能结合+使用说明书+配置数
对于一款软件说哦从无到有需要不同的过程你,我们可以将这个过程分为不能阶段,然后每个阶段都会相应有测试对象:
①需求分析阶段:各种需求规格说明书;
②软件架构设计:APL接口文档(接口测试);
③编码实现阶段:源码测试(白盒测试、单元测试)
④系统功能使用:软件功能主体(当前行业做的最多的一种测试)
软件测试流程:
1.需求分析
①当前阶段的核心目的就是梳理清楚我们需求设计的点是什么。
②需求的来源:需求规格说明书、API文档、竞价分析、个人经验
-
设计用例
①用例就是用户为了测试软件宽度某个功能而执行的操作过程。
②设计用例就是(等价类、边界值、判定表)
-
评审用例:对当前的用例进行添加或者删除
-
配置环境
①环境:指的就是当前被测对象运行所需要的执行环境,做为测试人员需要具备配置环境能力。
②环境分类:操作系统+服务器软件+数据库+软件底层代码的执行环境
-
执行用例
①一般执行用例之前我们会做一个【冒烟测试】这种测试的核心功能或主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将版本回退给研发。
②如果冒烟测试通过那么才会开展全面的测试
-
回归测试及缺陷跟踪
①回归测试指的是当前我们将某个缺陷提交给开发之后,由他们进行修复,修复完毕之后需要测试人员再次对进行测试。
②缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态的跟踪。
-
输出测试报告:将当前的测试过程中产生的数据进行可视化的输出,方面其他人员去查看。
-
测试结束:当整个测试过程中产生的一些文档进行整理归档,方面后续版本使用。
-
软件质量的六大特性
①功能性:软件需要满足用户显示或者稳定功能;
②易用性:软件易用学习和上手使用;
③可靠性:指的就是软件必须实现需求当中指明的具体功能;
④效率性:类似软件的性能;
⑤可维护性:要求软件具有将某个功能修复之后继续使用的能力;
⑥可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力;
V模型示意图
需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试
1、单元测试:又称模块测试,针对单一的程序模块进行的测试
2、集成测试:又叫组装测试,在单元测试的基础上,对所有模块进行测试。
3、系统测试:将整个软件看做一个整体来进行测试,包括:功能、性能、兼容性
4、验收测试:
(1)内测:(alpha)内部交流版本,可能存在很多bug,不建议用户安装。
(2)公测 (beta)面向所有用户,通过用户的反馈再去修改细节。
(3)候选(gmma)与正式软件相差无几。