西门子S7-200模块CPU224CN紧凑型单元
种可能的路径都执行一次的穷举测试是不可能的,即使能穷举测试,也没法找到程序中所有隐藏的错误。同时费用将大幅增加,漏掉的软件错误数量并不会因费用上涨而显著下降,越是在测试后期,为发现错误所付出的代价就会越大。因此,要根据测试出错误的概率以及软件可靠性要求,确定**停止测试时间,而不能无限地测试下去。
(9)注意回归测试的关联性。回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
(10)妥善保存一切测试过程文档。妥善保存一切测试过程文档的意义是不言而喻的,测试的重现性往往要靠测试文档。
1.4.3 软件测试过程模型V模型指出,单元测试和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样需要仅仅给出了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其他流程可以是任意的开发流程,例如设计流程或编码流程。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行。
H模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备,尽早执行。不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
1.4.4 软件测试的分类
软件测试的技术和方法是多种多样的,对于软件测试技术,可以从不同的角度加以分类。1. 按测试方式分类在软件交付周期的不同阶段,通常需要依据不同类型的目标对软件进行测试,从独立程序模块开始,到*终进行验收测试,共分为4个过程。
(1)单元测试。单元测试在早期实施,侧重于核实软件的*小可测试元素,对单项功能或一段子程序进行测试,包括对每一行代码进行的基本测试。单元测试通常应用于实施模型中的构件,核实是否已覆盖控制流和数据流,以及构件是否可以按照预期工作,测试的内容包括界面测试、局部数据
求组装起来进行测试,主要目标是发现与接口有关的问题,主要测试模块之间的数据传输是否正确、模块集成后的功能是否实现、模块接口功能与设计需求是否一致。集成测试紧接在单元测试之后,当单元测试通过后,便可开始配置集成测试环境。
(3)系统测试。系统测试是将被测试的软件,作为整个基于计算机系统的一项元素,与计算机硬件、外部设备、支持软件、数据和人员等其他系统元素结合在一起,在实际运作环境下,对计算机系统进行一系列的测试,全面查找被测试系统的错误,测试系统的整体性、可靠性、安全性等,该类测试是从客户或*终用户的角度来看待系统的。
(4)验收测试。验收测试是为了检验接受测试的系统是否满足需求,测试的重点是测试产品在常规条件下的使用情况,主要由市场、销售、技术支持人员和*终用户一起按规定的需求,逐项进行有效性测试,检验软件的功能和性能及其他特性是否与用户的要求相一致,验收测试一般采用黑盒测试法。验收测试的基本事项包括功能确认(以用户需求规格说明为依据,检测系统对需求规定功能的实现情况)和配置确认(检查系统资源和设备的协调情况,确保开发软件的所有文档资料编写齐全,能够支持软件运行后的维护工作)。配置确认的文档资料包括设计序外接口测试。在接口测试中,测试人员在单元测试阶段进行一部分工作,大部分工作是在集成测试阶段完成的。
(4)性能测试。性能测试主要测试系统的性能是否满足用户要求,即在特定的运行条件下验证系统的能力状况。性能测试主要是通过自动化的测试工具模拟正常、峰值以及异常负载状况,对系统的各项性能指标进行测试,测试中得到的负荷和响应时间等数据可以被用于验证软件系统是否能够达到用户提出的性能指标。
(5)强度测试。强度测试是一种性能测试,强度测试总是迫使系统在异常的资源配置下运行。强度测试的目的是找出因资源不足或资源争用而导致的错误,例如,如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷,这些缺陷可能由于争用共享资源(如数据库锁或网络带宽)而显现出来。一个系统在366MB内存下可以正常运行,但是降低内存容量后就不可能运行,系统提示内存不足,这个系统对内存的
求就是366MB。
(6)压力测试。压力测试是一种性能测试,主要是在超负荷环境中,检验程序是否能够正常运行。压力测试的目的是检测系统在资源超负荷的情况下的表现,是通过极限测试方法,发现系统在极限或恶劣环境中的自我保护能力。压力测试的目标是确定并确保系统在超出*大预期工作量的情况下仍能正常运行。此外,压力测试还要评估软件的性能特征,例如响应时间、事务处理速率和其他与时间相关的性能特征。例如,在B/S结构中,用户并发量测试就西门子压力测试,测试人员可以使用Webload工具,模拟上百人客户同时访问网站,看系统响应时间,处同工具软件的不同版本下的兼容性,其目的是测试系统与其他软件、硬件兼容的能力。
(14)负载测试。负载测试是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出*大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
1.4.5 软件测试流程据是项目开发计划和测试的需求分析结果。测试计划一般包括以下几个方面。
(1)软件测试背景。软件测试背景主要包括软件项目介绍、项目涉及人员(如项目负责人等)介绍以及相应联系方式等。
(2)软件测试依据。软件测试依据主要包括软件需求文档、软件规格书、软件设计文档等。
(3)测试范围的界定。测试范围的界定就是确定测试工作需要覆盖的范围。在实际工作中,人们总是不自觉地调整软件测试的范围,比如在时间紧张的情况下,通常优先完成重要功能的测试。所以测试计划者在接收到一项任务的时候,需要根据主项目计划的时间来确定测试范围。如果在确定范围上出现偏差,会给测试执行工作带来消极的影响。
确定范围前需要管理人员进行任务划分,简单地说就是分解测试任务。分解任务有两个方面的目的,一是识别子任务,二是方便估算对测试资源的需求。完成分解任务之后,可根据项目的历史数据