系统测试

系统测试

  系统测试是将已经继承好的软件系统,作为计算机系统的一个元素,与计算机硬件、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。

  系统测试的目标是:通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格说明不符合或与之矛盾的地方,从而验证软件系统的功能和性能等满足规格说明所制定的要求。

系统测试分析

  • 用户层:围绕用户界面的规范性、友好性、可操作性、系统对用户的支持,以及数据的安全性等方面展开。另外,用户层的测试通常还应注意可维护性测试和安全性测试。
  • 应用层:主要是针对产品工程应用或行业应用的测试。从应用软件系统的角度出发,模拟实际应用环境,对系统的兼容性、可靠性等进行测试。针对整个系统的应用层测试,包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试。
  • 功能层:检测系统是否已经实现需求规格说明中定义的功能,以及系统功能之间是否存在类似共享资源访问冲突的情况。
  • 子系统层:针对产品内部结构性能的测试。
  • 协议/指标层:针对系统所支持的协议,进行协议一致性测试和协议互通测试。

系统测试的方法

  • 功能测试:功能测试属于黑盒测试,是系统测试中最基本的测试。功能测试主要根据产品的需求规格说明和测试需求列表,验证产品是否符合需求规格说明。
  • 协议一致性测试:主要用于分布式系统。在分布式系统中,很多功能的实现是通过多台计算机相互协作来完成的,这要求计算机之间能相互交换信息,所以需要制定一些规则(协议)。对协议进行测试,通常包括:协议一致性测试、协议性能测试、协议互操作性测试、协议健壮性测试。
  • 性能测试:主要用于实时系统和嵌入式系统,性能测试是指测试软件在集成系统中的运行性能,目标是量度系统的性能和预先定义的目标有多大差距。一种典型的性能测试是压力测试,当系统同时接收极大数量的用户和用户请求时,需要测量系统的应对能力。性能测试要有工具的支持,在某种情况下,测试人员必须自己开发专门的接口工具。
  • 压力测试:又称强度测试,是在各种超负荷的情况下观察系统的运行情况的测试。
  • 容量测试:在系统正常运行的范围内测试并确定系统能够处理的数据容量。容量测试是面向数据的,主要目的就是检测系统可以处理目标内确定的数据容量。
  • 安全性测试:安全性测试就是要验证系统的保护机制是否抵御入侵者的攻击。保护测试是安全性测试中一种常见的测试,主要用于测试系统的信息保护机制。评价安全机制的性能与安全功能本身一样重要,其中安全性的性能主要包括:有效性、生存性、精确性、反应时间、吞吐量。
  • 失效恢复测试:验证系统从软件或者硬件失效中恢复的能力。失效恢复测试采用各种人为干预方式使软件出错,造成人为的系统失效,进而检测系统的恢复能力。如果恢复需要人为干预,则应考虑平均修复时间是否在限定的范围内。
  • 备份测试:备份测试是失效恢复测试的补充,目的是验证系统在软件或者硬件失效的实践中备份其数据的能力。
  • GUI测试:GUI测试与用户友好性测试和可操作性测试有重复,但GUI测试更关注对图形界面的测试。GUI测试分为两个部分,一方面是界面实现与界面设计的情况要符合;另一方面是要确认界面能够正确处理事件。GUI测试设计测试用例一般要从以下4方面考虑:(1)划分界面元素,并根据界面的复杂性进行分层。通常把界面划分为三个层次,第一层是界面原子层;第二层是界面组合元素层;第三层是一个完整的窗口。(2)在不同的界面层次确定不同的测试策略。(3)进行测试数据分析,提取测试用例。(4)使用自动化测试工具进行脚本化工作。
  • 健壮性测试:又称容错测试,用于测试系统在出故障时,是否能够自动恢复或者忽略故障继续运行。健壮性测试的一般方法是软件故障插入测试,在软件故障插入测试中,需要关注三个方面:目标系统、故障类型和插入故障的方法。
  • 兼容性测试:检验被测的应用系统对其他系统的兼容性。
  • 易用性测试:与可操作性类似。检测用户在理解和使用系统方面是否方便。易用性测试是面向用户的系统测试,包括对被测系统的系统功能、系统发布、帮助文本和过程等的测试。最好在开发阶段就开始进行。
  • 安装测试验证成功安装系统的能力。
  • 文档测试:主要是针对系统提交给用户的文档进行验证。文档测试的目标是验证用户文档的正确性并保证操作手册的过程能正常工作。
  • 在线帮助测试:用于检验系统的实时在线帮助的可操作性和准确性。
  • 数据转换测试:目标是验证已存在数据的转换并载入一个新的数据库是否有效。

系统测试的实施

  • 确认测试:又称有效性测试。其任务就是确认软件的有效性,即确认软件的功能和性能及其它特性是否与用户的要求一致。这一阶段要做的主要工作是进行功能测试和软件配置复审。
  • Alpha和Beta测试:Alpha测试是用户在开发环境下进行的测试,也可以是产品供应商内部的用户在模拟实际操作环境下进行的测试。软件在一个自然设置状态下使用,开发者坐在用户旁边,随时记下错误情况和使用中的问题。这是在受控制环境下进行的测试。Beta测试是由多个用户在一个或多个用户的实际使用环境下进行的测试。通常是在不受控制的环境下进行的测试,开发者通常不在现场。用户记录在测试过程中遇到的一切问题(真实的或想象的),并且定期把这些问题报告给开发者。
  • 验收测试:是以用户为主的测试,软件开发人员和质量保证人员也应参加,由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。
  • 回归测试: 在软件变更之后,对软件重新进行的测试。其目标是检验对软件进行的修改是否正确,保证改动不会带来不可预料的行为或者另外的错误。

系统测试问题总结、分析

  问题严重级别划分如下:

  • 致命问题——对应于系统的可用性。
  • 严重问题——用于分析系统版本稳定性。
  • 一般问题——用于评估测试效率。
  • 提示问题——用于产品的完善性指标。

你可能感兴趣的:(软件测试)