巧妇难为无米之炊 走出软件测试的困境

软件测试难点总结 1. 软件测试过程的基本模型     1)V模型——是软件开发瀑布模型的变种,它反映了测试活动    与分析和设计的关系。      2)W模型——基于“尽早地和不断地进行软件测试”的原则,    增加了软件各开发阶段中应同步进行的验证 (verification)和确认(validation) 活动。      3)H模型——它将测试活动完全独立出来,形成一个完全独立的流程,将 阅读详情
巧妇难为无米之炊 走出软件测试的困境 

作者:刘利君 北京市凯迪四维软件有限公司总经理  
发文时间:2004.06.04 

来 源: 软件世界

  随着信息技术在国内不同行业应用的开展,人们已经不再怀疑软件对于社会运转的巨大作用。但是,随着人们对软件作用期望值的提高,已经有越来越多人将关注点转移到软件的可靠性上,因此,国内软件测试公司或测评中心如雨后春笋般出现。 

软件测试并非万能药 

  我们在进行软件测试市场开发的过程中,发现了这样的一个问题:不少企业认为软件测试确实很重要,于是提出:我将执行程序(或者还有没有写完整的用户手册)给你,你给我测吧(“对不起,代码不能给,因为涉及产权问题”);如果测完通过了,用户就不应该再可能提出问题了。如果最终用户提出了问题,企业就会找到软件测试公司:“看,你是怎么搞的,用户提出了问题,你们为什么不能通过测试找到问题?”。 

  我们也遇到这样的情况,某地软件开发商与用户多次出现因软件质量引发的纠纷。于是该公司找到我们说:“既然你们是软件测试的行家,你们来做测试吧,只要测试费用一个软件控制在2万元以内,我们给你们介绍生意。”最终我们没有敢承担这样的业务,因为我们担心会陷入进退维谷的境地。因此也可以看到,人们对软件测试的理解存在一些误区。 

  对于航空工业之中最高级别的软件,为了保障其可靠性,进行测试的工作内容包括语法规则检查和程序分析、条件覆盖、边界覆盖、语句分支覆盖、需求覆盖、强壮性、功能性及输入输出的测试,最终全部通过,也只能保证10-9的缺陷概率。 

  因此,软件测试是提高软件质量与可靠性的重要一环,但并不意味着有了软件测试,软件就不存在问题了。如果仅仅是模拟用户进行一下简单的试用,则对于软件质量的验证效用就更差了。 

  不妨做一个类比,如果一个工程验收时,外部装修极为符合标准,给人的感觉十分良好,我们是不是可以断定这个工作是质量优良的好工程呢?实际情况经常是,里面豆腐渣外面金钢玉。当然你打开水龙头、打开灯泡不会有问题,如果出现了火灾、大风,这个工程还行吗?不知道。为什么不知道?因为没有看到施工过程是否符合规范;施工过程即使合格,不知道材料是否合格。 

  因此,软件测试并不是保障软件可靠性的万能药。 

软件测试要分层 

  如果仅凭用户手册,做出来的用户验收测试仅仅是以偏概全的特例测试。有经验的测试者不过是将测试用例设计得更科学些系统些,另外就是增加一些强壮性测试及压力测试。对于一个安全性可靠性要求不是很高的软件,这样做也许就够了。 

  但是,我们知道,目前我们国家在搞以“十二金”为代表的电子政务工程。这些工程中涉及财税的部分以及电信、金融、保险、航空、航天等高科技领域或对软件可靠性要求高的领域,他们的对软件的测试仅仅如此是远远不行的。不妨简单地想象一下,航空机载嵌入式软件要求出现缺陷的概率是10-9,仅凭前面的测试能够满足要求吗? 

  而进行如此严格要求的测试,投入的人力与财力将是十分巨大的。一般来讲,至少是开发费用的3~5倍,而且要求开发过程十分规范。 

  总体来讲,我们不赞成简单地进行用户模拟测试的方式,因为这种做法欠系统和完整。 

  我个人认为,进行验收测试要完成如下工作:功能遍历、链接测试、界面测试、稳定性测试、数据接口测试、安全性测试、性能测试、负载测试、压力测试、平台测试、浏览器测试、强壮性测试等等。 

  如果在测试过程中发现问题,则要根据相关的设计文档,将问题隔离到部件进行部件测试。对于核心模块,如功能核心或主要的控制部分,则要进行模块一级的白盒测试。 

测试应与开发过程控制相配套 

  许多开发商或用户关注软件质量也重视软件测试,但是由于其开发过程尚不规范,往往导致测试,尤其是模块级的黑盒与白盒测试难以正常开展。原因很简单,就是缺少详细的设计文档以及对应于各模块代码的流程图与接口关系。其结果测试就如盲人摸象——仅靠读程序是不能看出程序本身是否与设计思想一致、软件的输入输出的正确性的。 

  因而,要进行软件测试,特别是严格的软件测试,软件的开发过程不要仅符合一般的规范;不仅如此,文档的完备、细致化程度也应相当高才行。为保证测试效果及回归测试的顺利开展,开发过程的配置管理也应该严格有效。 

  “巧妇难为无米之炊”。作为专业的软件测试公司,我们希望通过我们的努力也通过开发商和用户的共同努力,完善并改进开发流程的过程控制和开发文档,使测试工作能更好地提高软件的可靠性。 

从选卡到验证:CST仿真GPU加速全流程实战指南 本文详细介绍了CST仿真中GPU加速的全流程实战指南,从硬件选型到软件配置,再到性能验证和常见问题排查。通过对比专业卡与游戏卡的性能差异,提供硬件选型建议,并分享驱动安装、关键设置及CST软件配置的黄金法则,帮助用户显著提升仿真效率。 阅读详情

相关推荐

使用 Wireshark 分析 PPPoE 流量中的 BRAS 名称 AC-Name

客户端发出广播请求,寻找 PPPoE 服务器。: BRAS 服务器响应 PADI 请求,提供服务并包含AC-Name。: 客户端选择一个 BRAS 并发起连接请求。: BRAS 确认连接并分配会话 ID。在这些阶段中,AC-Name是 BRAS 提供的一个关键字段,用于标识服务器名称。

caca_66的博客 2066

软件测试职业困境分析

现代社会分工越来越精细,软件测试也算是IT行业里的一个小分支了,那我们来看看这个细分行业有哪些优缺点. 哪类人会做测试? 如果去找些IT行业的人 员做个调查,可能大部分人会觉得这几类人会做测试,IT女,开发技术不行的IT男,被IT行业高薪吸引转行的非IT男女。作为一个资深测试者,我有接触过很多测试人员,也问过很多人选这行的原因,客观的讲大部分人还真是属于这三类。 所以很多开发会比较鄙视测试,认为他们技术不行。很多测试者自己也不自信,熟人问起来可能还不好意思说自己是测试,谎称是做开发。 软..

weiwenhp 1138

单细胞分析R包monocle3服务器安装教程

由于centos7系统yum只能安装到低版本gdal,而monocle3依赖包需要 gdal>2 版本,从gdal官网下载2.4.4版本编译安装。monocle3的安装是通过cole-trapnell-lab安装的,该包挂在github上,需要通过github先安装leidenbase包,需要提前安装devtools包下载工具。接着利用BiocManager安装相应的依赖包,由于这些包的特殊性,所以不要切换到国内Bio_Mirror镜像,否则会找不到,如果一次不成功,缺啥补啥即可。运行 ldconfig。

qq_36608036的博客 1万+

程序员的困境

英文原文:Programmer’s dilemma   译者:cssmagic    最近我为一个内核程序员的职位面试了十几个候选人。这些候选人都来自一些不错的大公司,这些公司在芯片或嵌入式操作系统领域十分有名。这些候选人大多声称自己在内核方面有着十年的在职工作经验。他们的简历看起来非常耀眼——各种相关的项目、术语和奖项……   但他们几乎无人能够回答一个非常基础的问题: 当我们

amicablehj的专栏 697

ABAQUS二次开发中创建SET

在ABAQUS中创建加载、边界条件时,需要使用set,创建set时需要使用对象集合对象中的Set函数,这个函数需要提供加入对象集合的列表,但这个对象列表好像并不能自行创建,只能通过ABAQUS各类对象集合中的findAt、getSequenceFromMask、getByBoundingSphere、getByBoundingCylinder或getByBoundingSphere函数得到,但这几个函数在直接使用PYTHON编程时都不太好用。这个函数返回一个字典,如下所示。

hohoyu的专栏 2482

C#与大数据分析:如何通过上位机进行设备故障诊断与预测

设备故障诊断是通过对设备的运行状态数据进行分析,识别和确认故障的类型和位置。而设备故障预测则是通过对设备的历史数据和运行状态进行分析,预测设备何时可能出现故障,从而进行预防性维护。数据采集:通过各种传感器、PLC、嵌入式设备等采集设备运行数据,如温度、压力、振动、转速、功率等。数据预处理:对采集到的数据进行清洗、去噪、缺失值处理、标准化等操作,以确保数据质量。特征工程:从原始数据中提取出有助于故障诊断和预测的特征,例如统计特征、时域特征、频域特征等。数据分析与建模。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1060

如何战胜软件测试的困境

随着信息技术在国内不同行业应用的开展,人们已经不再怀疑软件对于社会运转的巨大作用。但是,随着人们对软件作用期望值的提高,已经有越来越多人将关注点转移到软件的可靠性上,因此,国内软件测试公司或测评中心如雨后春笋般出现。 软件测试并非万能药 我们在进行软件测试市场开发的过程中,发现了这样的一个问题:不少企业认为软件测试确实很重要,于是提出:我将执行程序(或者还有没有写完整的用户手册)给你,你给...

weixin_33727510的博客 111

YOLOv11【第六章:模型压缩与极致优化篇·第15节】YOLOv11 专用剪枝工具库使用指南!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1312

测试数据管理平台设计:解决“巧妇难为无米之炊”的痛点

本文探讨软件测试中测试数据管理的核心痛点,指出测试工程师面临数据获取难、质量差、环境脱节、安全风险高和资源浪费等问题。提出通过构建自动化、智能化的测试数据管理平台(TDMP)来破解困境,详细阐述了TDMP的设计目标、核心功能模块和架构要点,包括统一门户、数据源管理、供给引擎、脱敏系统等关键组件。文章强调TDMP实施需要分阶段推进,注重跨部门协作和用户体验,最终实现提升测试效率、保障数据安全和优化资源利用的目标,为持续交付提供坚实的数据基础。

2501_94436372的博客 997

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

Horn-Schunck光流算法的Python实现

光流是计算机视觉领域中的一个重要概念,它描述了图像中物体在时间上的运动。Horn-Schunck光流算法是一种经典的光流估计方法,通过对图像的亮度变化进行建模,来估计像素的运动速度。在本文中,我们将使用Python实现Horn-Schunck光流算法,并提供相应的源代码。请注意,该算法假设图像上的亮度变化主要由物体的运动引起,并且假设光流在整个图像上是稠密的。在上面的示例中,我们首先读取了两个输入图像,然后使用我们实现的Horn-Schunck光流算法估计了它们之间的光流。首先,我们需要导入一些必要的库。

持续更新 495

测试数据准备难题?一个Dify工作流,让你告别“巧妇难为无米之炊”

本文提出利用Dify工作流平台构建智能化测试数据工厂的解决方案,以解决测试数据准备耗时、质量低、维护成本高等痛点。该方案采用分层架构设计,通过声明式数据需求描述、智能生成引擎和数据生命周期管理,实现测试数据的自动化生成。文章详细介绍了环境搭建、核心工作流设计(包含需求解析、模式识别、数据生成和质量校验等节点),并以电商平台为例展示了实战应用。通过对比分析,该方案可将数据准备时间减少85%,准确率提升至99.9%。最后提出了分阶段实施建议,帮助团队从繁琐的数据准备中解放,实现测试数据的智能化管理。

王同学的博客 1064

【unity实战】Unity手搓脚本工具实现合并网格功能

本文介绍了在Unity中优化网格性能的方法,通过合并重复网格减少绘制调用。主要使用Mesh.CombineMeshes方法实现网格合并,支持统一材质和多材质处理。核心内容包括:1)基础合并脚本实现,将子网格合并到父对象并禁用原网格;2)统一材质设置,支持自定义或默认材质;3)多材质合并方案,通过设置mergeSubMeshes=false保留子网格材质索引。文章还提供了完整代码示例和操作演示,适用于实际项目中的网格优化需求。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 558

低代码的谎言:为什么资深开发者更应该警惕“全民编程”

低代码平台以"全民编程"为噱头迅速走红,但其背后隐藏着诸多风险。本文从软件测试视角揭示:1)低代码并非真正"无代码",业务人员面对个性化需求时仍依赖开发者;2)低代码应用存在测试覆盖不足、平台稳定性隐患等问题;3)技术债务累积将侵蚀行业生态。资深开发者应主动参与平台优化、加强业务协作、坚持技术创新,测试人员需探索新方法保障质量。只有理性看待低代码,才能在数字化转型中实现高质量发展。

2501_94471289的博客 260

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

用Dify工作流打造你的AI测试智能体,效率提升500%

Dify是一个开源的大模型应用开发平台,其核心优势在于。

慕漓的博客 1135

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LogicEval:评估大语言模型修复逻辑漏洞能力的框架与实践

在软件安全领域,自动漏洞修复(AVR)是提升开发效率与安全性的关键技术。传统方法在处理内存破坏型漏洞时已取得进展,但其核心挑战在于理解复杂语义与上下文,以应对由业务逻辑错误引发的逻辑漏洞。大语言模型(LLM)凭借其强大的代码语义理解能力,为自动化修复带来了新希望。其技术价值在于能够将自然语言描述的漏洞报告与代码逻辑关联,生成潜在的修复方案。然而,LLM生成的补丁可能存在“幻觉”或逻辑偏差,因此需要系统化的评估方法来确保其合理性。LogicEval框架应运而生,它并非补丁生成工具,而是一套专门用于评估LLM在

weixin_30376509的博客 548

MES系统核心模块解析与实施指南:从车间透明化到智能制造

在制造业数字化转型中,企业资源计划(ERP)与过程控制系统(PCS)之间常存在信息断层,导致生产管理如同“黑箱”。制造执行系统(MES)作为连接两者的核心枢纽,其原理在于通过实时数据采集与业务逻辑整合,打通信息孤岛,实现生产全过程的可视、可控与可追溯。该技术的核心价值在于将生产管理从经验驱动升级为数据驱动,显著提升设备综合效率(OEE)、质量管控水平与物料协同能力。其典型应用场景覆盖离散制造与流程行业,用于解决排程优化、质量追溯、绩效分析等关键问题。本文聚焦于MES系统的功能模块构成与落地路径,深入探讨了如

weixin_30414305的博客 315

训练数据示例

针对“规格书生成测试用例脚本”的任务,在 LLaMA-Factory 中使用即可。关键是把“规格书内容”放进input字段,把“期望的脚本输出”放进output字段。

liuxs2009的专栏 58

从瀑布到流水线:DevOps 入门与 GitLab + Jenkins + Docker 落地实践

先看清软件开发生命周期(SDLC)的全貌,再对比瀑布模型与敏捷开发,随后进入持续集成与 CI/CD 的机制内核;最后落到实操——在 GitLab、Jenkins、Docker 组成的四机实验环境里,走完源码托管、自动化构建、镜像封装与远程部署,直到参数化构建与版本回滚。概念与命令并重,既是入门地图,也是操作手册。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 250

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 125

DNS 不是把域名翻译成 IP:递归解析、TTL 缓存、CNAME 与报文排错实战

本文通过离线Python实验,拆解DNS递归解析、缓存机制与报文结构,揭示“DNS不是全局映射表”的本质。重点解析递归器角色、TTL衰减、CNAME链处理、负缓存隔离及修改记录延迟生效等核心问题,结合实战排错案例,阐明缓存层级、事务匹配、截断处理与安全边界,强调从应用到权威的逐层排查逻辑,实现可复现、可验证的DNS教学系统。

此人很懒,什么都没有写~~ 348

密码存储不是 MD5 加盐:PBKDF2、scrypt、参数升级与安全验证实战

本文通过实战演示密码存储的正确做法:摒弃MD5加盐,采用PBKDF2与scrypt等高成本密钥派生函数,结合随机盐、版本化记录与严格解析,确保离线破解成本可控。模块实现安全验证、参数校验、透明升级与统一错误处理,强调算法选择需兼顾安全性与可维护性,提供教学级密码存储方案,助力构建可迁移、可审计的认证边界。

此人很懒,什么都没有写~~ 233
上一篇: 软件测试的现实和理想
下一篇: 软件测试过程的持续完善
SafeF8
博客等级 码龄22年 10粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值