软件测试行业基本介绍

简介: 软件测试行业基本介绍

一、为什么需要软件测试 ?

1.一款软件从无到有会经历很多的开发阶段由不同的人来参与开发,所以最终产出的软件功能可能会存在问题,因此为了保证软件的功能是可用的,我们必须要进行测试。

2.当前的软件行业已经不再是功能为王了, 用户不仅仅只盯着软件的功能是否满足需求, 还会对软件是否容易上手,执行效率是否OK等一系列其它体验都有了更高的要求,所以这也需要我们对软件进行大量的测试。


二、为什么选择软件测试 ?

1. 国内的软件行业对于专业的软件测试人员需求是慢慢变大。

2. 有些人喜欢创造世界所以他们做了开发, 而有些人就是希望这个世界变得更加美好所以做了而测试。


三、为什么不让开发自已做测试 ?

1.当前行业有许多的测试从业人员本身之前都是开发岗。

2.专业度:软件测试和软件开发分别属于软件行业当中二个不同的技术方向。所以让专人做专事对于质量更加有保证。

3.思维定式: 在软件的开发周期中 对于程序员来说他们大多数的时间都是在思考如何实现具体的软件功能,而不会去从用户的角度考虑如何去"奇葩"的使用这些功能。

4.测试力度: 相对于开发来说,产品就相当于是他们的"孩子"。所以"下手"就不会那么狠。


四、软件测试的定义

通过手工或者工具对 "被测对象"进行测试操作,从而验证实际结果与预期结果之间是否存在差异。


五、软件测试的作用?

1.通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心

2.测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持

3.测试可以降低同类型产品开发遇到问题的风险


六、 测试原则

1.测试证明软件存在缺陷:无论执行什么样的测试操作都保能证明当前软件是有缺陷的

2.不能执行穷尽测试:有些功能是没有办法将所有的测试情况都逻列出来,所以任何的测试操作都有结束的时间

3.缺陷存在群集现象:对于软件功能说,核心功能占 20%,非核心是 80%。在实际工作中我们会集中测试 20%的核心功能,所以这个部分发现缺陷的几率就会高于 80%。因此我们就会遇到缺陷都集中在 20% 功能模块里的现象

4.某些测试需要依赖特殊的环境

5.测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展

6.杀虫剂现象:同样的一个测试用例不能重的执行多次,因为软件会对它产生免疫

7.不存在缺陷谬论:任何软件不可能是完美的


七、测试对象介绍

对于当前的测试行业来说最经常测试的主体就是软件( 主体功能 ),但是需要明白一个软件也不仅仅只有功能需要测试。

可以将软件分为三个部分组成:功能集合 + 使用说明书 + 配置数据

对于一款软件来说从无到有需要不同的过程,可以将这个过程分为不同阶段,然后每个阶段都会相应有测试对象

1. 需求分析阶段:各种需求规格说明书

2. 软件架构设计:API 接口文档( 接口测试 )

3. 编码实现阶段:源代码( 白盒测试、单元测试 )

4. 系统功能使用:软件功能主体( 当前行业做的最多的一种测试 )


八、测试级别

软件的开发都会依据相应的开发模型, 测试级别指的就在这个模型当中人为定义的开发步骤

其中对于测试来说最常见的一种级别分类如下:

1.单元测试[ UT unit test ]:在软件测试中单元指的就是组成软件最小的底层代码结构, 一般就是类、函数、组件( 当下的软件测试行业,不会刻意要求测试人员对源代码进行测试 )

2.集成测试( IT system ingertaion test ):将多个单元模块组合在一起,然后验证它们之间沟通的"桥梁"是否能正常工作( 接口测试 )

3.系统测试( ST system test ):这是当前行业做的最多的一种测试。由测试人员充当用户然后对软件的功能主体进行测试

4.验收测试

    (1) a测试 ---- 内测

    (2) b测试 -----公测

    (3) UAT( user acceptance test )测试---- 由客户派出对于业务非常精通的人员来使用该软件,从而对功能进行测试

    (4) 验收测试的核心就是让用户为当前软件 "买单"


九、系统测试分类

1. 功能测试:验证当前的软件主体功能是否可用

2. 兼容性测试:验证当前软件在不同的环境下是否还可以使用

3. 安全测试:验证软件是否只是能授权用户提供功能使用

4. 性能测试:相对于当前软件消耗的资源 它的产出能力


十、 常见的系统测试方法

按测试对象进行分类 :

1.白盒测试:这种测试的主体就是软件的底层代码,不会在意外在的界面是否 OK ,只要求底层功能实现,同时逻辑正确

2.黑盒测试:这种测试就是指测试软件外在主体功能是否可用

3.灰盒测试:介于二者之间( 接口测试 )

【 上述三种方法当中的 "盒" 指的就是被测对象 】


按测试对象是否执行分类 :

1.静态测试:指的就是测试不执行

2.动态测试:将软件运行在真实的使用环境中进行测试


按测试手段进行分类:

1.手工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境。

2.自动化测试:所谓自动化主要有二种形,一种是自已写测试脚本,另外一种就是通过第三方的工具对被测对象进行测试。优点就是可以高效率的去执行一些人工无法实现的操作。


十一、软件质量

描述当前软件是否好用,在当前的软件行业里所采用的一套标准是基于 ISO 组织制定的。

软件质量的六大特性:

1. 功能性:软件需要满足用户显式或者稳式的功能

2. 易用性:软件易于学习 和上手使用

3. 可靠性:指的就是软件必须实现需求当中指明的具体功能

4. 效率性:类似于软件的性能

5. 可维护性:要求软件具有将某个功能修复之后继续使用的能力

6. 可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力

【 功能靠用,效率可"以" 】


十二、软件测试流程

1. 需求分析

    (1) 当前阶段的核心目的就是梳理清楚需要设计的点是什么

    (2) 需求的来源:需求规格说明书、API 文档、竟品分析、个人经验

2. 设计用例

    (1) 用例就是用户为了测试软件的某个功能而执行的操作过程

    (2) 设计用例是有方法的( 等价类、边界值、判定表...... )

3. 评审用例:对当前的用例进行添加或者删除

4. 配置环境

    (1) 环境:指的就是当前被测对象运行所需要的执行环境,做为测试人员需要具备配环境的能力。【 一般情况下都会使用一键安装的集成环境 】

    (2) 环境分类:操作系统 + 服务器软件 + 数据库 + 软件底层代码的执行环境。

5. 执行用例

    (1) 一般在执行用例之前我们会做一个冒烟测试,冒烟测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。

         如果冒烟测试阶段有问题,则可以将此版本回退给开发

    (2) 如果冒烟测试通过那么才会开展示全面的测试

6. 回归测试及缺陷跟踪

    (1) 回归测试指的就是当我们将某个缺陷提交给开发之后,由它们进行修复,修复完成之后需要测试认员再次对其进行测试【回归测试】

    (2) 缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态的跟踪

7. 输出测试报告

将当前的测试过程中产生的数据进行可视化的输出,方便其它人去查看

8. 测试结束

当将整个测试过程中产生的一些文档进行整理归档,方便后续版本使用


十三、软件架构

所谓的软件架构可以理解为是用来指导软件开发的一种思想

目前来说最常见的二种架构模式就是 :B/S  和 C/S

       B---browser 浏览器

       C---clent 客户端

       S---server 服务端

二种架构的比较 :

1.标准:相对于 CS 架构来说 BS 架构的两端都是在使用现成的成熟产品,所以 BS 会相对标准一些

2.效率:相对于 BS 架构来说 ,CS 中的客户端可以分担一些数据的处理,因此执行效率会高 一些

3.安全:BS 架构当中的数据传输都是以 HTTP 协议进行的输出,而 HTTP 协议又是明文输出,可以被抓包,所以相对于 CS 架构来说 BS 就显得不那么安全【相对的】

4.升级: 架构只需要在服务器端将数据进地更新, BS 前台只需要刷新页面就可以完成升级, 而 CS 架构当中必须要将两端都进行更新

5.开发成本:相对于 BS 架构来说 CS 当中的客户端需要自已开发,所以相对于来说成本会高一些。


十四、浏览器基本介绍

浏览器是什么:浏览器本质就是一款软件,安装在操作系统之上。一般给用户提供浏览网页的服务。目前来说会人为的将所有浏览器总结出一个所谓的五大生产厂商。

                      【 对于浏览器来说最核心技术就是内核 】

五大浏览器生产厂商:

   1.IE( 微软 )-----trident

   2.Chrome ( 谷歌 )----blink

   3.Firefox( 火狐 )-----gecko

   4.Safari( 苹果 )-----webkit

   5.Opera( 欧朋 )----presto【 现在已经放弃自已东西完全向 chrome 】


十五、常见的图片类型

1. Jpg(jpeg) :这是一种可以高度保留图片色彩信息的格式

2. Png:该类型的图片可以实现透明

3. Gif:图片所占体积小,可以实现动图

4. Psd:它是一种分层的图片

相关文章
|
8天前
|
监控 架构师 Devops
敏捷测试价值观、方法和实践读书笔记(3)
本章节介绍敏捷测试转型框架,涵盖模型概览、实施难度与顺序、文化转变、角色技能需求及测试流程。敏捷测试转型模型包括文化、组织、流程与实践等关键要素,并针对各层面提出具体实施建议与障碍解决方案。此外,详细阐述了不同敏捷测试角色的技能需求与职责,以及从Sprint内至跨Sprint的测试流程与交付物。
16 5
敏捷测试价值观、方法和实践读书笔记(3)
|
8天前
|
敏捷开发 数据可视化 Devops
敏捷测试价值观、方法和实践读书笔记(4)
本章节探讨了敏捷测试执行的关键概念与实践。首先介绍了用户故事及其重要性,强调其在敏捷开发中的角色,并阐述了用户故事的 INVEST 原则。接着分析了用户故事生命周期中的测试关注点,包括定义、处理、完成及验收阶段的测试活动。此外,还对比了不同测试术语的差异,并提供了敏捷测试计划的策略与过程。通过看板等工具实现任务管理与跟踪,确保测试活动高效进行。最后,介绍了敏捷测试中的度量指标,帮助团队评估测试效果。
17 5
敏捷测试价值观、方法和实践读书笔记(4)
|
8天前
|
开发框架 数据可视化 项目管理
敏捷测试价值观、方法和实践读书笔记(1)
敏捷软件开发宣言在身体力行的同时也帮助我们一直在实践中探寻更好的软件开发方法。由此,我们建立了如下价值观:个体和互动 高于 流程和工具工作的软件,高于 详尽的文档客户合作, 高于 合同谈判响应变化,高于 遵循计划。也就是说,尽管右项有其价值,但我们更重视左项的价值。
30 4
敏捷测试价值观、方法和实践读书笔记(1)
|
8天前
|
JavaScript 前端开发 Java
敏捷测试价值观、方法和实践读书笔记(5)
本章节介绍了敏捷功能测试的原则与实践,包括单元测试的概念及其编写步骤,测试驱动开发(TDD)的流程,以及如何通过模拟对象进行测试。详细讲解了单元测试的编写方法,如初始化对象、执行操作及验证结果,并探讨了 TDD 的五个步骤。通过具体案例展示了如何逐步完善储蓄账户的功能测试,包括存款、取款及异常处理。此外,还讨论了代码覆盖率的重要性及其局限性,强调了测试充分性比单纯追求代码覆盖率更为关键。
14 3
敏捷测试价值观、方法和实践读书笔记(5)
|
8天前
|
机器人 测试技术
敏捷测试价值观、方法和实践读书笔记(6)
验收测试驱动开发(ATDD)强调在开发前定义验收标准,并通过自动化测试确保用户价值得到满足。验收测试关注用户需求是否实现,而非代码细节。ATDD涉及用户、产品负责人、开发人员及测试人员,通过讨论、开发和交付三个阶段,确保产品符合预期。此方法有助于团队更好地理解和实现用户需求。
17 5
|
8天前
|
敏捷开发 测试技术
敏捷测试价值观、方法和实践读书笔记(2)
本章节介绍敏捷测试在快速变化的软件开发环境中的重要性。传统测试方法在敏捷环境中面临时间紧迫、文档不足、频繁变更及资源短缺等挑战。敏捷测试遵循敏捷开发原则,强调测试与开发的紧密融合、团队协作及业务价值交付。其特点包括更强的协作、更短的周期、更灵活的计划及高效的自动化。相较于传统测试,敏捷测试具有加快产品上市时间、提升整体质量及简化流程降低成本的优势。
14 3
|
8天前
|
XML 存储 API
敏捷测试价值观、方法和实践读书笔记(8)
本文介绍了API的基础知识,区分了Web Service和Web API的概念,详细阐述了Web Service中的SOAP服务和REST服务的特点及区别。同时,文章还探讨了如何在项目中进行API测试,包括API测试的类型和实施阶段,强调了API在现代软件开发中的重要性和优势。
8 0
敏捷测试价值观、方法和实践读书笔记(8)
|
8天前
|
Devops jenkins 测试技术
敏捷测试价值观、方法和实践读书笔记(10)
本文介绍了敏捷测试的延伸实践,重点讨论了持续集成(CI)和持续部署(CD)的概念与实践方法。持续集成强调频繁提交代码至主干并自动化构建测试,确保快速反馈和高质量代码。持续部署则进一步实现自动化部署,通过蓝绿部署、金丝雀发布等方式提升软件交付效率。此外,文章还探讨了持续反馈机制,如A/B测试和混沌工程,以及DevOps文化下的测试策略,强调测试在整个开发流程中的重要性。
15 0
敏捷测试价值观、方法和实践读书笔记(10)
|
8天前
|
JavaScript 前端开发 Java
敏捷测试价值观、方法和实践读书笔记(7)
本文介绍了BDD(行为驱动开发)的Given-When-Then方法,并详细描述了如何在Java环境中使用Cucumber框架实现BDD测试。内容涵盖配置环境、修改POM文件、编写Feature文件及步骤定义文件、运行测试等过程。同时,提供了使用Cucumber和Selenium对Web页面进行测试的具体示例,并探讨了BDD在团队中的实施策略,包括不同角色之间的协作流程与自动化测试框架的选择。
11 0
敏捷测试价值观、方法和实践读书笔记(7)
|
15天前
|
Web App开发 安全 Java
探索软件测试的奥秘:从基础到进阶
【9月更文挑战第5天】本文旨在揭示软件测试的核心概念、方法及其在软件开发中的重要性。通过深入浅出的方式,我们将一起探索如何通过有效的测试策略来确保软件产品的质量和性能。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你更好地理解并实施软件测试。
14 5