本文版权归“本地化世界网www.GILTWorld.com”所有,转载需要征得本站同意,并注明作者和原始出处。有关本文的任何建议和意见,请发电子邮件到QiliangCui@hotmail.com与作者联系。
软件质量是指软件的功能和性能满足用户需求和期望的程度。随着IT技术在各个行业的广泛深入地应用,软件质量成为普遍重视的因素。如何有效地提高软件质量,增强软件产品的竞争力,是软件企业管理和技术人员共同面对的问题。
软件质量重于泰山
软件质量重于泰山,软件质量是核心竞争力之一。现在和未来软件企业的竞争力不仅体现在产品类型的多样性,产品功能的先进性,更多的体现在产品质量的稳定性和可靠性。软件应用的领域不断深入,设计的复杂程度逐步扩大,开发的周期不断缩短,质量的要求水涨船高,软件企业面临着巨大挑战。
用户对软件产品质量的要求不断提高,促使软件企业把提高软件质量作为增强竞争力的策略。提高软件质量要素在哪里?可以通过采用软件设计技术,加强软件过程管理,实施软件测试等方法。从提高软件质量的显著程度、投资回报率和可实施性等方面比较,实施有效的软件测试,提高软件测试的效率,是保证软件质量的最显著方法。
软件测试是通过技术、流程、工具、人员以及管理手段,检测软件文档、软件中间产品和最终产品,查找和报告软件缺陷、错误以及隐患的专业技术。通过跟踪缺陷、错误及隐患的修正过程,确保软件产品、中间产品和文档符合软件工程过程需求和用户的最终需求。
软件测试创新之道
软件测试在国内仍处于起步阶段,各种软件测试的方法、技术和标准都还在探索阶段。国内软件行业普遍规模偏小,缺乏大型软件产品经验,开发过程不够规范,这决定了国内软件质量和测试行业,必须根据国内行业现状,确定软件质量目标和测试策略方法,而不是照搬照抄国外成熟软件企业的测试方法。
1.观念创新
提高软件质量的决定因素不是软件测试技术,而是对软件质量和测试的思想观念。只有把提高软件质量上升到企业战略发展的高度,才能从根本上解决问题。长期以来,国内软件行业对软件质量重视程度不足,对于软件测试的作用认识不够,造成项目因质量问题造成进度推迟甚至失败。
为了彻底改变这种被动现象,企业高层管理人员必须从管理思想、资源支持等方面为软件质量和测试部门提供全力支持。软件项目经理必须坚持软件开发和软件测试并行处理并且互相协调。软件开发人员重视和配合软件测试人员。
观念创新不要仅停留在口头上,而要落实在具体行动上,通过软件质量和测试的有效流程进行推动,通过过程改进进行提高。通过有效组织管理,形成以重视软件质量为荣,以轻视软件质量为耻的工作氛围。
2.流程创新
测试流程决定软件质量。软件测试如同软件开发一样,需要经过收集测试需求、确定测试策略、设计测试、执行测试、分析测试等流程。软件测试不是软件开发的最后阶段,而是贯穿于软件项目的整个生命周期。决定软件测试成败的关键是软件测试需求是否完整、准确,测试策略是否有效和实用,测试设计是否覆盖了测试需求。
软件测试流程既不是僵化的生搬硬套,也不是随机的增添取舍。软件企业的质量管理部门和项目开发团队需要根据公司技术、资源现状,针对项目的特点和客户需求,从保证软件质量、项目进度和测试成本等方面,进行优化设计并且不断改进流程管理。对于项目周期长、应用领域广、对质量要求高的软件,必须制定和遵守严格的测试流程。
测试流程创新的目标是在公司内部制定和执行完善的项目质量管理体系。优化项目生产方式,跟踪和度量生产过程和产品,使得生产过程和各阶段产品处于可控制和可度量状态,保证产品符合客户的功能和进度需求。
3.技术创新
软件测试是一项软件工程领域的专业技术,而不是简单的把软件测试认为随便找个人运行几次软件,就可以发现全部的软件问题。前文已经提到,软件测试需求和测试设计是决定软件测试效果的关键因素,因此,加强测试技术创新的重点是在测试需求和设计设计的创新。
在软件测试技术创新方面,要避免陷入过渡追求自动化测试技术的误区。自动化测试确实可以在某些方面显著提高测试效率和准确性,但是自动化测试只适合测试软件的某些方面的质量(例如性能测试,回归测试等),80%左右的软件缺陷是靠测试人员手工测试发现的。
对于某些特别需要自动化测试的软件特性,需要加强开发软件测试工具,而不是全部依赖市场上的现有测试工具。这是因为商业工具功能繁多,价格昂贵,培训和学习周期很长,选择不当就会造成巨大浪费。
4.管理创新
软件测试管理的目标是实现软件质量、进度、成本之间的最佳平衡。有效的测试管理需要企业管理层、软件开发团队、质量保证与测试团队通力合作,采用计划、组织、领导、控制等手段,组建高效团队,制定完善的测试流程,做好测试设计,有效执行测试,加强过程跟踪,从而顺利完成质量保证和测试任务。
测试管理创新的核心是软件质量和测试的团队建设,软件质量和测试是技术密集型活动,团队的知识结构、创造力和凝聚力是保证测试流程、测试技术充分实施的基础。质量和测试团队建设的重点是设置和培养各类技术和管理人才,进行有效交流,形成良好的评估和促进机制。
测试管理创新的另一个重点是测试管理平台建设。包括构建测试项目管理的集成系统,实现公司产品和项目数据信息的有效管理和顺序控制,使项目数据透明化,技术知识有效传承,项目质量和进度数据化、图形化。可以根据公司的现状,购买软件测试管理的商业工具,也可以内部开发软件测试管理工具。
软件测试技术路线图
如果把软件测试之道称为测试战略,要发挥测试战略的现实意义,需要把测试战略转化为测试战术。测试的“道”与“术”的无缝集成,才能显著地、持续地、逐步地提高软件产品质量。实施软件测试的战术是一系列过程的组合,涉及测试团队建设、流程设计、测试平台、测试管理等多个方面。
1.测试团队建设
测试团队可以是测试部,也可以是测试组。公司规模决定了测试团队的大小和组织形式。测试团队建设需要执行两个原则:第一,测试团队必须独立于开发团队,而不是附属于开发团队,实现测试的独立性和公正性;第二,测试团队必须具有明确的工作目标,即发现和报告软件缺陷,推动和确认缺陷修正,协助软件开发的过程改进,提高软件整体质量。
软件测试团队根据规模可以设置多个职位,每个职位具有明确的岗位职责,例如,测试部门经理、测试项目经理、测试组长、测试架构师、高级测试工程师、测试工程师等。对于刚刚成立的测试团队,可以一个人兼任多个职位,完成多项测试任务。测试人员的总数应该与开发人员相适应,最好在1:1到1:2之间。
2.流程设计
测试流程设计必须与软件设计流程相对应,基本测试流程包括测试需求分析,测试计划设计、测试用例设计、测试执行、测试评价、测试总结等。
根据软件需求和软件设计规格说明进行测试需求分析,测试需求分析的目的是明确需要测试的对象、特征、范围和方法,从而制定测试计划,确定测试策略。
测试计划设计是为了有效配置测试过程、人员和工具,充分利用现有的资源,按照项目计划进度,组织有效的测试。测试计划设计的输出结果是测试计划文档,它是指导软件测试活动的纲领性文档。
测试用例设计是指导具体测试内容和方法的关键内容,如果需要执行自动化测试,还需要依靠测试用例设计生成对应的测试脚本。测试用例设计的输出结果是不同类型的测试用例,这些测试用例必须以标准的、一致的形式设计、评审、存储、更新。
测试执行是发新和报告软件缺陷的阶段,根据软件计划的进度,分配测试内容,构建测试环境,依靠测试用例运行测试程序和程序文档。测试执行的输出结果是缺陷报告,测试进度报告等。
测试评价是度量软件测试执行效率和有效性的过程。测试评价的输入是测试用例的执行情况,软件缺陷的报告数据。测试评价的输出包括测试用例的有效性分析,软件缺陷的类型和有效性分析等,测试进度和有效性分析等。
测试总结包括测试过程每天或者每周的过程总结,也包括测试项目结束后的测试项目总结。测试总结的输出是测试总结报告,总体评价软件质量,指出测试存在的问题,提出改进的方法和进程,总计测试的有效经验。
3.测试平台设计
测试平台设计包括测试技术平台设计和测试管理平台设计。测试技术平台包括设计测试环境,设计或设置测试工具等。测试管理平台设计包括测试文档系统设计、测试版本配置管理、缺陷数据库设计、测试进度和质量分析系统设计。
测试技术平台设计需要根据测试计划的测试内容和测试环境要求,组织软件、硬件、数据库和网络等,这经常是一项较为耗时的工作,同时它影响着测试的正确性,必须尽快在测试开始阶段完成,最好采用有效的方法把搭建的测试环境进行备份保存,以便今后可以快速恢复,重复利用。
测试管理平台设计,影响测试管理的复杂度,好的测试管理平台可以使测试管理人员,方便的跟踪、查询、分析测试进度,评估测试人员的工作绩效,评价测试的总体质量。对于测试技术人员而言,可以方便的寻找测试对象和测试文档,报告和输出测试结果,共享测试数据,提高测试效率。
4.测试管理
测试管理关注人员、过程、产品三要素的互动与变化,测试管理包含项目计划和组织结构管理,测试阶段管理,时间、资源和质量管理,文档管理和团队管理等。测试部门经理、测试项目经理和测试组长是测试管理的主要执行者,需要与测试团队成员、开发人员、公司管理人员密切配合。
为了加强测试管理,需要确保测试数据信息流通畅,使测试团队、开发团队、质量保证团队之间有效交流。测试管理的其他内容包括团队成员参与各种培训,客观积极的绩效评估,识别项目测试风险,实现人尽其才,信息共享,进度可控,规避风险,降低成本,提高质量。
结论
提高软件质量是提高产品竞争力的重要因素,加强软件测试创新是显著改善软件质量的实用方法。软件测试创新是循序渐进的过程,从建立完整的质量管理体系入手,通过团队建设、优化流程、技术创新,加强管理,实现人员、流程和技术的和谐统一,提高软件质量的可预测试性和可控制性。
分享到:
相关推荐
《软件测试的“道”与“术”》 在IT行业中,软件测试是保障产品质量、提升用户满意度的关键环节。这个主题深入探讨了测试的“道”与“术”,旨在帮助测试人员理解其背后的哲学思想以及具体实践方法。下面将详细阐述...
《Python黑帽子-黑客与渗透测试编程之道》是一本深入探讨使用Python进行黑客技术与渗透测试的书籍。这本书的核心目标是教会读者如何利用Python编写工具,以进行安全评估、漏洞探测以及网络防御。源码部分提供了书中...
本文来自简书,本文主要介绍了Scrum的主要特点以及Scrum的工作过程和Scrum中的测试活动,希望对您的学习有所帮助。 构建复杂的软件应用程序是一项艰巨的任务。Scrum方法是完成这样的复杂任务的一种解决方案。它有助于...
本课程讲解Python语言高级用法的相关知识,兼顾Python编程的术(语言的知识点)与道(编程思维和程序设计方法)。 课程特点: ...或选择套餐:《Python编程的术与道:Python语言入门与进阶(套餐)》
该文档旨在提升开发人员在软件开发过程中的思维层次,从“术”与“道”的角度探讨软件工程的精髓。 “术”与“道”是梁漱溟提出的思维层次理论,它被应用于软件工程的各个阶段。从第一层境界形成主见到第八层境界...
#### 一、系统重构的概念与背景 - **定义**:系统重构是指在不改变软件外部行为的前提下,对其内部结构进行调整以提高代码质量和可维护性的过程。这一概念最初源于Smalltalk社区,并逐渐扩展到其他编程语言领域。 -...
Covert Channels Evaluation Framework (CCHEF) 是一个灵活的软件框架,用于根据经验评估网络隐写术方法或网络协议中的隐蔽通道。 CCHEF 可用于具有真正公开流量的真实网络(例如在研究测试平台中),但也可以使用...
甲方代码审计的道与术.林伟壕、20200320.代码安全.WH、DevSecOps标准解读、DevSecOps落地中的安全测试推动、SDL最初实践.aerfa、安全编码之SQL注入、从软件成分分析的角度看软件安全测试、代码能力在渗透测试实战中...
紫微斗数为一种星命术,是中国传统命理学中的一种。认为人出生时的星相决定人的一生,即人的命运。认为各种星曜对人的命运具有特定的关连,又因为星曜按一定次序出现,相应的人就按照这个次序接受星曜带来的影响。而...
作者通过一系列的随笔和思考,揭示了软件开发过程中的关键问题、挑战以及解决之道。下面,我们将详细探讨其中蕴含的知识点。 1. **软件开发的本质**:书中首先强调了软件开发不仅是技术问题,更是管理问题。软件的...
经过系统性能测试和仿真验证,表明该系统能够在信号幅度变化为0.01%(相当于约500次叠加平均刺激)时进行检测,理论上具备检测光神经信号的能力。 最后,通过CW NIRS系统和提出的信号处理方法,同时结合精心设计的...
首先,我们需要理解“道”与“术”的关系。道是事物的根本,代表自然规律和长远的发展方向;而术则是实现道的方法和技巧,关注的是当前的问题解决。在软件架构中,道可能指的是对业务需求的深刻理解和系统设计的整体...
《试论财务软件陷阱引发的会计信息失真》一文深入剖析了这一问题,对财务软件中存在的“逻辑炸弹”、“截尾术”、“特洛伊木马”、“陷门”及“仿造与模拟”等多种陷阱及其对会计信息影响进行了系统的研究,并提出了...
术的开发测试工作。软件在环效率取决于仿真软件可复现场景的程度。 对交通环境与场景的模拟,包括复杂交通场景、真实交通流、自然天 气(雨、雪、雾、夜晚、灯光等)各种交通参与者(汽车、摩托车、 自行车、行人等)。...
平安DevSecOps之道与术.pdf 应用数据安全主动防御.pdf 数字化转型与数智化安全.pdf 新法规下的数据库安全思考.pdf 甲方安全建设之有效落地安全测试的探索实践.pdf 确保AD域控安全应对网络高级威胁攻击.pdf 货运场景...
术的不断发展,产品性能价格比得到极大的提升,使得以太网交换机技术 有了更广阔的发展空间。三层交换机就是保留了普通的网络交换机的基本 特性,以强大的以太网转发芯片作为转发基础而发展起来的。 三层交换机把...