软件测试的13项原则

软件测试分类&原则 文章目录1、软件测试分类 1、软件测试分类 按照开发阶段划分 (1)单元测试:一般要读程序和代码。大多数时候,单元测试由开发人员自己去完成(开发交叉完成)(但是一般不认为是在做测试)。测试人员为什么不做单元测试?因一般测试人员不懂代码和算法。 (2)集成测试:比较多地设计到接口测试。它是一个持续不断的过程。 (3)确认测试:功能是否实现,一般都是正向的测试。通过了确认测试之后的软件,才具备进入系统测试的资质。有时候也把确认测试称为冒烟测试。一般不作为正式的测试环节。 (4)系统测试:是全面的测试,是系统 阅读详情

 

 软件测试过程中,我们应注意和遵循一系列的具体原则,在ISTQB 软件测试基础认证大纲上,列出了7 项原则,但其中最后一项原则“不存在缺陷(就是有用系统)”的谬论不能算是一项合格的原则,所以可以认可的原则是6 项。除此之外,在这里还列出作者认为比较重要的7 项原则,合起来共13 项原则。

  1、ISTQB 的6 项原则

  1)原则1——测试显示缺陷的存在,但不能证明系统不存在缺陷。测试可以减少软件中存在未被发现缺陷的可能性,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全正确的。

  2)原则2——穷尽测试是不可能的。由于有太多的输入组合、有太多的路径,而且时间是有限的,无法做到完全的测试(100%测试覆盖率)。通过运用风险分析和不同系统功能的测试优先级,来确定测试的关注点,从而替代穷尽测试。

  3)原则3——测试尽早介入。软件项目一启动,软件测试就应开始,也就是从项目启动的第一天开始,测试人员就应参与项目的各种活动和开展对应的测试活动。测试工作进行得越早,软件开发的劣质成本就越低,并能更好地保证软件质量。例如,在代码完成之前,可以进行各种静态测试,主导或积极参与需求文档、产品规格说明书等的评审,将问题消灭在萌芽阶段。

  4)原则4——缺陷集群性。版本发布前进行测试所发现的大部分缺陷和软件运行失效是由于少数软件模块引起的。一段程序中发现的错误数越多,意味着这段程序的质量越不好。错误集中发生的现象,可能和程序员的编程水平、经验和习惯有很大的关系,也可能是程序员在写代码时情绪不够好或不在状态等。如果在同样的测试效率和测试能力的条件下,缺陷发现得越多,漏掉的缺陷就越多。这也就是著名的Myers 反直觉原则:在测试中发现缺陷多的地方,会有更多的缺陷没被发现。假定测试能力不变,通过测试会发现产品中90%的缺陷。如果在模块A 发现了180 个缺陷,在模块B 发现了45 个缺陷,意味着模块A 还有20 个缺陷没被发现,而模块B 只有5个缺陷未被发现。所以,对发现错误较多的程序段,应进行更深入的测试。

  5)原则5——杀虫剂悖论。采用同样的测试用例多次重复进行测试,最后将不再能发现新的缺陷。为了克服这种“杀虫剂悖论”,测试用例需要进行定期评审和修改,同时需要不断地增加新的不同的测试用例来测试软件或系统的不同部分,从而发现潜在的更多的缺陷。

  6)原则6——测试活动依赖于测试背景。针对不同的测试背景,进行的测试活动也是不同的。比如,对要求安全放在第一位的软件进行测试,与对一般的电子商务软件的测试是不一样的。

  2、其他重要的7 项原则

  1)持续地测试、持续地反馈。软件测试贯穿着整个软件开发生命周期,随时发现需求、设计或代码中问题,及时将发现的问题反馈给用户、产品设计人员、开发人员等,主动、积极地交流,持续提高软件产品质量,这在敏捷测试中更为重要。

  2)80/20 原则。在有限的时间和资源下进行测试,找出软件中所有的错误和缺陷是不可能的,因此测试总是存在风险的。测试的一个重要目标是尽量减少风险,抓住重点进行更多的测试。根据80/20 原则,即帕累托法则(Pareto Principle),用户80%的时间在使用软件产品中20%的功能。“重点测试”就是测试这20%的功能,而其他80%的功能属于优先级低的测试范围,占测试20%的资源。

  3)建立清晰的阶段性目标。饭要一口一口地吃,不能一口就吃成胖子。测试的目标也要逐步达到,不可能在某一瞬间就达到。根据软件开发生命周期的不同阶段性任务,我们要决定相应的测试目标和任务。如在需求分析阶段,要参与需求评审以全面理解用户需求、发现需求的问题;在功能测试执行阶段,测试人员不仅要对新功能进行测试,而且要有效地完成回归测试。

  4)测试独立性。测试在一定程度上带有“挑剔性”,心理状态是测试自己程序的障碍。同时,对于需求规格说明的错误理解也很难在程序员本人进行测试时被发现。程序员应避免测试自己的程序,为达到最佳的效果,应由独立的测试小组、第三方来完成测试。

  5)确保可测试性。事先定义好产品的质量特性指标,测试时才能有据可依。有了具体的指标要求,才能依据测试的结果对产品的质量进行客观的分析和评估,才能使软件产品具有良好的可测试性。例如,进行性能测试前,产品规格说明书就已经清楚定义了各项性能指标。同样,测试用例应确定预期输出结果,如果无法确定所期望的测试结果,则无法进行正确与否的校验。

  6)计划是一个过程。虽然通过文档来描述软件测试计划,并最后归档,但计划是一个过程,是指导各项软件测试活动的持续过程。在项目开始时很难将所有的测试点、测试风险等都了解清楚,随着时间推移,通过需求和设计的评审和探索式测试,对产品的理解越来越深,对测试的需求和风险越来越了解,可以进一步细化、不断丰富测试计划。其次,计划赶不上变化,软件产品的需求常会发生变化,测试计划不得不因此做出调整。所以,测试计划是适应实际测试状态不断变化而进行调整的一个过程。

  7)一切从用户角度出发。在所有测试活动的过程中,测试人员都应该从客户的需求出发,想用户所想。正如我们所知,软件测试的目标就是验证产品开发的一致性和确认产品是否满足客户的需求,与之对应的任何产品质量特性都应追溯到用户需求。测试人员要始终站在用户的角度去思考、分析产品特性,多问问类似下面这样的问题:

  这个新功能对客户的价值是什么?

  客户会如何使用这个新功能?

  客户在使用这个功能时,会进行什么样的操作?

  按目前设计,用户觉得方便、舒服吗?

  如果发现缺陷,去判断软件缺陷对用户的影响程度,系统中最严重的错误是那些导致程序无法满足用户需求的缺陷。软件测试,就是揭示软件中所存在的逻辑错误、低性能、不一致性等各种影响客户满意度的问题,一旦修正这些错误就能更好地满足用户需求和期望

 

软件测试基础知识巩固(面试准备) (以下内容是本人在准备面试时从相关网站整理出来的软件测试汇总,实际面试做题时果然有很多熟悉的题目,贴在这里供日后自己回顾和大家参考) 1、什么是软件测试? 从广义上说,软件测试是软件生命周期中的所有检查、评审和确认工作,包括在分析、设计阶段,以及完成开发后确认阶段的各类文档、代码的审查和确认。 从狭义上说,是识别软件缺陷的过程,即实际结果与预期结果不一致。 2、软件测试的目标? 最终目标... 阅读详情

相关推荐

Day 1 认识软件测试——(软件测试定义、目的、原则)

软件测试就是证明软件不存在错误的过程。“软件测试的目的在于证明软件能够正确完成其预定的功能。“软件测试就是建立一个‘软件做了其应该做的’信心的过程。这些定义都是本末倒置的。每当测试一个程序时,总是想为程序增加一些价值。通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。因此不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立),然后测试程序,发现尽可能多的错误。

老板来片烤面包的博客 1687

软件测试

集成测试与系统测试:    集成测试也叫组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统。     集成测试与系统测试的区别:1.系统测试所测试的对象是整个系统以及与系统交互的硬件和软件平台。系统测试更过程度上是站在用户的角度上对系统作功能性的验证,同时还对系统进行一些非功能性的验证,包括性能测试、压力测试、容量测试、安全测

albertliangyg的专栏 860

利用 vivado实现加减法器的设计

本科计组实验:利用 vivado实现加减法器的设计

qq_52052302的博客 1万+

软件工程-需求说明

软件的作用 软件是现代系统中的重要元素,使这些产品/系统成为用户的解决方案 软件是容易修改的,但修改正确是很难的 《软件工程最佳实践 - 项目经理的指南》 需求分析 通过分析分配给软件的那些系统需求,确定软件需求及约束 软件体系结构设计 为软件需求及约束,确定一组解决方案,进行实例研究,分析可能的方案,并选择一个最佳的方案 产品评估 以需求为准则,通过测试、演示、分析及审...

1252

HDRnet——双边滤波和仿射变换的摇身一变

layer层数越多,下采样得到的图越小,low-level features的好处是最后的grid会更coarser,最后的特征图的感受野也越多,非线性更好,表达力更强。所以最终grid是5维的[B,in*out,n,H,W],permute之后是[B,H,W,n,in*out],B是batchsize,n表示对guide的量化级数,in*out表示每个cell的变换系数。这部分的处理对象是低分辨率图,利用CNN进行特征提取(局部和全局),最后fuse得到grid,这里面包含了变换的系数。

zcg1942的博客 1576

图生文【学习中】

图生文:提供图像,把图像对应的信息用文本描述出来

qq_19072921的博客 1787

需求规格说明书模板

需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。它应该尽可能完整地描述系统预期的外部行为和用户可视化行为。除了设计和实现上的限制,软件需求规格说明不应该包括设计、构造、测试或工程管理的细节。   1)采用软件需求规格说明模版: 采用需求规格说明书模板在你的组织中要为...

aisuocuo6821的博客 1358

形式化方法(Formal Methods)和人工智能(Artificial Intelligence)

一、形式化方法(Formal Methods) ​ 形式化方法最初应用在硬件上,验证硬件的正确性,后面逐渐应用到软件编程中,能够在软件中找到软件的错误,验证软件的安全可靠。形式化方法更加接近离散数学,所以其应用难度非常大,同时学习成本也较高。再加上形式化方法的大多数理论还停留在上个世纪,由于程序越来越复杂,导致形式化方法进行验证需要大量人工和时间,以至于现在绝大部分软件开发人员完全没有考虑过这个方法,甚至没有听说过这个名词。 ​ 形式化方法最新的应用成果是在工业上,比如一些极其重要且对安全性要求极高的领域(

qq_37030400的博客 4004

IT项目管理中的假设约束依赖和承诺

原文:http://blog.sina.com.cn/u/493a8455010003ko来源:人月神话的BLOG项目中的假设约束依赖和承诺是制定项目计划的时候要确定的内容。 项目假设是我们先说严格意义的和非严格意义的:严格意义是在当前时间点根据当前拥有的各种工具无法确定的事物或事件,而且这些事件会对你的项目 造成影响。你的项目是在假设条件成立的情况下进行了。由于假设是不确定因素,所有项目

森林木的专栏(fasiondog) 5456

simulink建模仿真实例1000例--第375例:基于Simulink进行复杂交通流的仿真建模

特点多车互动:模拟多个车辆之间的相互作用。动态变化:交通流量随时间和事件(如事故、天气变化)而变化。多样化驾驶行为:考虑不同的驾驶员行为模式(激进型、保守型等)。挑战准确性:准确地模拟各种因素对交通流的影响。实时性:处理大量车辆数据,并迅速做出反应。可扩展性:支持从简单场景到复杂城市交通网络的扩展。首先明确要模拟的任务内容。模拟不同类型的车辆(轿车、卡车、公交车等)。考虑不同驾驶员的行为模式。分析交通拥堵、事故对交通流的影响。

xiaoheshang_123的博客 202

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 254

rose顺序图转换为协作图_软件工程专题:UML顺序图

关注BeTester,学习更多知识让碎片成体系,让测试更专业1、概述顺序图(Sequence Diagram),也叫时序图,简而言之就是描述参与者或子系统之间自上而下(时间维度)的交互。交互主要通过对象之间发送消息来实现。顺序图也可以用来展示出用例图的行为顺序,当参与者执行/触发一个用例时,都会有一条消息从触发者发送给接收者,从而引起状态转换。因为顺序图是按照时间顺序现实对象之间的交互,所以顺序图...

weixin_39891272的博客 3206

YOLO11训练中的批量大小(Batch Size)选择策略:分析Batch Size对训练速度、显存占用和模型性能的影响

在深度学习训练过程中,Batch Size(批量大小)是一个至关重要的超参数,它指的是单次迭代中用于更新模型权重的样本数量。简单来说,当我们训练神经网络时,不会一次性将所有数据喂给模型,而是将数据分成若干个小批次(batch),每个批次包含一定数量的样本,这个数量就是Batch Size。 Batch Size的核心作用在于平衡训练效率与模型性能。较小的Batch Size意味着每次更新权重时参考的信息较少,可能导致训练过程更加随机,但有时能带来更好的泛化能力;较大的Batch Size则能提供更稳定的梯

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 323

软件测试的十三原则

软件测试过程中,我们应注意和遵循一系列的具体原则,在ISTQB 软件测试基础认证大纲上,列出了7 项原则,但其中最后一项原则“不存在缺陷(就是有用系统)”的谬论不能算是一项合格的原则,所以可以认可的原则是6 项。除此之外,在这里还列出作者认为比较重要的7 项原则,合起来共13 项原则。 一、ISTQB 的6 项原则 1)原则1——测试显示缺陷的存在,但不能证明系统不存在缺陷。测试可以减少软件中...

Frank_girl的博客 754

【中项】案例分析 | 答题技巧 | 备考 

对偏差原因的分析和对项目未来趋势的理解。如果偏差是由一次性事件或特殊原因引起的,那么这种偏差是非典型的,意味着未来的绩效将回归到预期的绩效水平。例如,如果项目初期的CPI小于1,原因是意外的自然灾害导致成本增加,那么这种偏差被认为是非典型的,因为它不太可能在未来重复发生。例如,如果项目初期的CPI小于1,且原因是低效的团队协作,那么这种偏差被认为是典型的,因为它可能在整个项目生命周期中持续存在。在实际应用中,项目经理通常会结合CPI、SPI和偏差趋势图等工具,综合分析偏差的性质,以制定合理的项目控制策略。

静谧、淡雅 1245

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

软件测试入门之软件测试的原则与测试工程师的要求(了解即可)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.youkuaiyun.com/qq_41782425/article/details/103496007 一、 软件测试的原则 1.所有的测试都应追溯到用户需求 1.1 缺陷的源头 根据相关调查,软件缺陷出现最多的地方是软件需求规格说明书(即软件需求定义),而不是程序代码。 1.2...

cdtaogang's blog 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

软件测试的原则与测试工程师的要求

一、 软件测试的原则 1. 所有的测试都应追溯到用户需求 1.1 缺陷的源头 根据相关调查,软件缺陷出现最多的地方是软件需求规格说明书(即软件需求定义), 而不是程序代码。 1.2 如何应用此原则 测试第一个任务是需求分析 测试需求分析要做好 时刻都要提醒自己考虑用户需求 制造缺陷的罪魁祸首不是程序员 做好需求评审 审查所做的内容是否符合用户的需求 2. 尽早启动测试工作 2.1 缺陷雪崩 2.2 测试的成本 2.3 如何应用此原则 测试应该早进行。 测试应该是与软件开发或维护工作并行进行的一

yang_yang_heng的博客 1532

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

软件测试的原则

软件测试的原则 文章目录前言1.所有软件测试都要追溯到用户源头1.1缺陷的源头1.2如何应用此原则2.尽早启动测试工作1.缺陷雪崩2.测试成本3.如何应用此原则3.尽早做测试计划4.穷尽测试不可能 & 软件测试有风险5.测试中的 Good-enough原则1.含义2.运用6.Pareto法则应用于软件测试1.含义原则使用7.尽可能使用分阶段测试8.为达到最佳效果,应由独立的第三方来构造...

qq_40992152的博客 1017

软件测试的原则有哪些?来自十年测试老鸟的总结

软件测试是一项极富创造性、极具智力挑战性的工作。只有建立了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。同样,测试用例应该确定期望输出结果。如果无法确定测试期望结果,则无法进行检验。必须用预先精确对应的输入数据和输出结果来对照检查当前的输出结果是否正确,做到有的放矢。系统的质量特征不仅仅是功能性要求,还包括了很多其他方面的要求比如稳定性、可用性、兼容性等等。!!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境。

MXB_1220的博客 4365

软件测试 -- 入门 4 软件测试原则

软件测试 -- 入门 4 软件测试原则

Rolei的博客 9373
上一篇: 【团队管理】--马云谈离职
下一篇: Command:
jasonteststudy
博客等级 码龄16年 152粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值