《精通软件性能测试与LoadRunner最佳实战》—第1章1.3节软件测试的定义

简介: 随着计算机行业的不断发展,软件系统规模和复杂性不断扩大,先前由一两个人就可以完成的中小型项目已经不再适用于现在软件项目的开发模式和系统的规模。

本节书摘来自异步社区《精通软件性能测试与LoadRunner最佳实战》一书中的第1章1.3节软件测试的定义,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 软件测试的定义
精通软件性能测试与LoadRunner最佳实战
随着计算机行业的不断发展,软件系统规模和复杂性不断扩大,先前由一两个人就可以完成的中小型项目已经不再适用于现在软件项目的开发模式和系统的规模。现行软件项目通常业务功能复杂,操作人数较多,软件厂商在激烈的市场竞争中不仅需要考虑产品的功能实用性、界面的美观性、易用性等,产品的健壮性,以及快速及时的响应、支持多用户的并发请求等性能测试方面的要求也越来越受到关注,软件的性能测试可以说是软件测试的重中之重。它是测试人员从用户角度出发对软件系统功能、性能等方面进行测试的行为,是一种非常重要的软件质量保证的手段。

软件测试就是在软件投入正式运行前期,对软件需求文档、设计文档、代码实现的最终产品以及用户操作手册等方面审查过程。软件测试通常主要描述了两项内容。

描述1:软件测试是为了发现软件中的错误而执行程序的过程。

描述2:软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计的多组测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序以发现错误的过程,即执行测试步骤。

这里又提到了两个概念:测试和测试用例。

测试包含硬件测试和软件测试,在这里如没有特殊说明,测试仅指软件测试。它是为了找出软件中的缺陷而执行多组软件测试用例的活动。

软件测试用例是针对需求规格说明书中相关功能描述和系统实现而设计的,用于测试输入、执行条件和预期输出,测试用例是执行软件测试的最小实体。

关于软件测试还有一个概念,就是测试环境。测试环境包括很多内容,具体如下。

(1)硬件环境(PC、笔记本电脑、服务器、小型机、大型机等)。

(2)软件环境(操作系统,如Windows 2000、Windows 9x、Windows XP、Windows NT、UNIX、Linux等;Web应用服务器,如Tomcat、Weblogic、IIS、WebSphere等;数据库,如Oracle、SQL Server、MySQL、DB2等;还有一些其他的软件,如办公软件,杀毒软件等)。软件环境的配置还需要考虑软件的具体版本和补丁的安装情况。

(3)网络环境(如局域网、城域网或因特网,局域网是10Mbit/s、100Mbit/s的,还是其他类型的)。

有时在进行软件测试的时候,同一个应用系统,因为测试环境的不同将直接导致软件运行结果的不同(如界面不同、运行结果不同等),为了保证不再出现类似“狮子王游戏”软件兼容性测试方面的问题发生,在进行测试环境搭建的时候,需要注意以下几点。

(1)尽量模拟用户的真实场景。

就是测试环境尽量模拟用户应用的网络应用、软件、硬件使用环境,全面仿真用户的真实场景的测试,与用户的各项配置均一致。有些情况下,完全模拟用户的场景是有困难的,这时可以通过与客户沟通,在特定的时间段(如节假日、下班以后等时间)应用客户的环境来达到测试的目的。

(2)干净的环境。

有时为了考查一款软件是否可以在新安装的操作系统下正常运行,就需要在干净的机器上考查这个软件相关的动态链接库(DLL文件),相应组件是否能够正常注册、复制到相应路径下;有些情况下由于程序的运行需要第三方组件或者动态链接库的支持,然而,在打包的时候忘记把这些内容打进去,而导致在干净的系统中会出现问题。在干净的系统下测试还可以有效避免由于安装了其他软件,产生冲突,影响问题定位方面的事情发生。

(3)没有病毒的影响。

有时,测试人员会发现系统在本机上出现文件无法写入、网络不通、驱动错误、IE浏览器和其他软件的设置频繁被改变等一系列莫名其妙的问题,而这些问题在别的计算机上没有,遇到这些问题,一般情况下可能是您的计算机感染上了病毒,需要杀毒以后再进行测试。在有病毒的计算机上进行测试是没有意义的事情,因为不知道这是系统的问题还是病毒原因而产生的问题。

(4)独立的测试环境。

做过测试的读者可能经常都会被研发和测试共用一套测试环境而困扰,因为测试和研发的数据互相影响。例如,一个进销存软件,测试人员做了进货处理,进了10口电饭锅,进货单价为100元/口,接下来进入库存统计时发现库存金额为800元,原来是因为开发人员销售了两口电饭锅,致使库存统计的结果数据不对。在共用一套环境情况下,研发、测试相互影响的事情比比皆是,不利于缺陷的定位,也不利于项目或者产品任务的进度控制。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
118 1
|
2月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
38 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
255 3
|
2天前
|
自然语言处理 安全 Java
【软件测试】教你如何写一份软件测试报告
【软件测试】教你如何写一份软件测试报告
|
2天前
|
安全 Java 测试技术
【软件测试】测试工具推荐
【软件测试】测试工具推荐
|
16天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
2天前
|
机器人 测试技术 语音技术
LabVIEW使用软件定义进行汽车电子测试
LabVIEW使用软件定义进行汽车电子测试
|
14天前
|
敏捷开发 机器学习/深度学习 Java
Java中的异常处理机制深入理解与实践:持续集成在软件测试中的应用探索自动化测试在敏捷开发中的关键作用
【4月更文挑战第29天】在Java编程中,异常处理是一个重要的概念。它允许开发者在程序执行过程中遇到错误或异常情况时,能够捕获并处理这些异常,从而保证程序的稳定运行。本文将详细介绍Java中的异常处理机制,包括异常的分类、异常的处理方式以及自定义异常等内容。 【4月更文挑战第29天】 随着敏捷开发和DevOps文化的兴起,持续集成(CI)已成为现代软件开发周期中不可或缺的一环。本文将探讨持续集成在软件测试领域内的关键作用、实施策略以及面临的挑战。通过对自动化构建、测试用例管理、及时反馈等核心要素的详细分析,揭示持续集成如何提高软件质量和加速交付过程。 【4月更文挑战第29天】 在当今快速发
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:智能化测试用例生成策略
【4月更文挑战第28天】 随着软件开发的复杂性不断增加,传统的软件测试方法面临巨大挑战。为了提高测试覆盖率并确保软件质量,需要投入大量的时间和资源去设计、执行和维护测试用例。本文探讨了一种基于人工智能(AI)技术的智能化测试用例生成策略,该策略能够自动识别关键的测试路径,动态调整测试用例,并优化测试集合。通过引入智能化工具和算法,显著提升了软件测试过程的效率和有效性。
|
17天前
|
测试技术
【测试】优化软件测试:有效测试用例设计的关键
【测试】优化软件测试:有效测试用例设计的关键