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