软件测试概念与基础

简介: 软件测试概念与基础

一. 调试与测试的区别

1. 目的不同: 测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题.


2. 参与角色不同: 测试主要有测试人员和开发人员来执行,黑盒测试主要由测试人员完成,单元/集成测试主要时由开发人员完成


3. 执行的阶段不同:测试贯穿整个软件开发生命周期;调试一般在开发阶段。

二. 什么是软件测试

软件测试就是执行和运行软件的过程,其目的是为了发现软件功能和需求不符合的地方,或者寻找实际输出和预期输出之间的差异。

三. 软件测试和软件开发的区别

1. 研发主要以编码为主,而测试以测试为主,开发为辅


2. 难易程度: 开发广度小,专业度高。测试广度大,专业度低


3. 薪水: 中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差别


4. 繁忙程度: 测试一般比研发轻松,但敏捷模式下差距不大,产品发布前压力比较大


5. 技能要求:测试要求更广泛,业务能力、设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力

四. 软件的生命周期

软件的生命周期分为六个阶段:需求分析阶段,计划阶段,设计阶段,编码阶段,测试阶段,运行维护阶段

• 需求分析:分析用户是否合理(市场分析、技术上分析...)


• 计划:制定需求执行计划


• 设计:将需求细化成一个个任务,进行技术设计(设计哪些接口,采用哪些技术)


• 编码:开发人员按照需求文档以及设计文档来进行编码


• 测试:测试人员参考测试用例来执行测试


• 运行维护:项目上线之后对产品进行线上维护(修复性维护:对项目中未发现的问题进行修复;完善性维护:对功能进行完善;预防性维护:为了避免产品在线上出现一些其他的问题,进行一些预防的手段。

五. 什么是 BUG

当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能和要求时,就是软件错误。

六. 什么是需求

需求就是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和全能,包含用户需求和软甲需求。

七. 软件测试的生命周期

需求分析 -> 测试计划 -> 测试设计、测试开发 -> 测试执行 -> 测试评估

八. 软件缺陷生命周期

New: 新发现的Bug,未经评审决定是否指派给开发人员进行修改。


Open:确认是Bug ,并且认为需要进行修改,指派给相应的开发人员。


Fixed:开发人员进行修改后表示成修改状态,有待测试人员的回归测试验证。


Rejected:如果认为不是Bug,则拒绝修改。


Delay: 如果认为暂时不需要修改或者暂时不能修改,则延后修改。


Closed:修改状态的Bug经测试人员回归测试后验证通过,则关闭Bug。


Reoppen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

九.  测试模型

9.1 V模型

特点: 左边是开发,右边是测试

优点: 测试被划分为许多类型

缺点: 测试人员介入晚,发现问题的时机晚,修复起来的成本高

9.2  W模型

特点: 开发一个V,测试一个V

优点: 测试人员尽早介入了需求

缺点: 测试人员和开发人员在一定程度上还是串行的,不能拥抱变化

相关文章
|
2月前
|
Java 测试技术 Maven
JAVA单元测试概念与实战
单元测试是软件开发中的一个测试方法,用于验证软件代码中最小的、独立的单元是否按照预期工作。在Java中,这通常指的是单个的方法或者一个类的个别功能。单元测试的目的是隔离代码的每个部分,并确保各个部分是正确的。
72 4
|
2月前
|
jenkins 测试技术 持续交付
软件测试:基础概念
软件测试:基础概念
74 0
|
2月前
|
测试技术 UED
软件测试/测试开发|软件测试基础概念
软件测试/测试开发|软件测试基础概念
40 0
|
2月前
|
测试技术
深入探索软件测试:从基本概念到先进方法
【5月更文挑战第30天】 在这篇文章中,我们将深入研究软件测试的各个方面。我们将从基本的软件测试概念开始,然后探讨一些先进的测试方法和工具。我们的目标是为读者提供一个全面的软件测试概览,帮助他们更好地理解这个领域。
|
2月前
|
测试技术 网络安全
精简总结:一文说明软件测试基础概念(二)
本文讲述了软件测试人员应具备的素质,包括技能和非技能方面。技能涵盖测试用例设计、编程、快速学习新技术以及业务学习能力。
27 0
|
2月前
|
SQL 架构师 安全
精简总结:一文说明软件测试基础概念(一)
该内容是关于软件测试的介绍,包括软件测试的基础概念、特点、与开发的区别,以及与调试的差异。文中提到了测试是为了验证软件是否满足用户需求,确保软件质量,并举例说明了日常生活中测试的存在。还讨论了软件测试的不可穷尽性,并列举了软件测试与开发在内容、技能和职业发展路径上的不同。此外,提到了《软件测试的艺术》这本书作为学习资源。内容中包含了两张图片,分别展示了相关概念。
32 0
|
2月前
|
测试技术 开发者
【专栏】测试驱动开发(TDD)和行为驱动开发(BDD)的核心概念与实践
【4月更文挑战第27天】本文探讨了测试驱动开发(TDD)和行为驱动开发(BDD)的核心概念与实践。TDD强调先写测试用例,通过测试推动设计,确保代码质量与可维护性。BDD侧重软件行为和业务价值,提倡使用通用语言描述行为,减少沟通障碍。选择TDD或BDD取决于项目复杂性、团队技能和业务需求。理解两者差异有助于团队做出合适的选择,发挥测试的最大价值。
|
2月前
|
敏捷开发 Web App开发 测试技术
【软件测试】概念篇 -- 详解(下)
【软件测试】概念篇 -- 详解(下)
|
2月前
|
安全 测试技术 程序员
【软件测试】概念篇 -- 详解(上)
【软件测试】概念篇 -- 详解(上)
|
2月前
|
敏捷开发 编解码 测试技术
【测试】1. 概念 + 基础篇
【测试】1. 概念 + 基础篇
49 1