软件测试的对象包括软件需求、概要设计、详细设计、软件运行环境、可运行程序和软件源代码等。软件测试包括质量、人员、资源、技术和流程五大要素,以及测试覆盖率和测试效率两个目标。
软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试。
//No.1//
单元测试
单元测试是对软件中的最小可验证单元进行检查和验证,比如对Java中的类和方法的测试。
测试原则:
· 尽可能保证测试用例相互独立(测试用例中不能直接调用其他类的方法,而应在测试用例中重写模拟方法)
· 此阶段一般由软件的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
单元测试又称模块测试、逻辑测试或结构测试,是针对软件设计的最小单元------程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验每个程序单元能够正确实现详细设计说明中的模块功能、性能、接口、和设计设计约束等要求,发现各个模块内部可能存在的各种说明。
特点:
单元测试以白盒技术为主,黑盒技术为辅。单元测试一般由开发人员本身完成,并在开发组组长的监督下进行。单元测试时中使用的数据,通常不使用真实数据,当被测单元要求操纵大量数据,并且有很多单元都有这种需求时,可以考虑使用正式数据的一个较小的有代表性的样本。
单元测试的好处:
· 尽早的发现缺陷
· 利于重构
· 简化集成
· 文档
· 用于设计
单元测试的不足:
· 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误;
· 每行代码需要3~5行代码进行单元测试,存在投入与产出的平衡。
//No.2//
集成测试
集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。
集成测试包括BigBang、自顶向下、自底向上、核心系统集成、高频集成。
集成测试又称组装测试、综合测试或联合测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
特点:
集成测试阶段以黑盒测试为主,白盒测试为辅。集成测试人员一般从开发组中选出,在开发组组长的监督下进行,在集成测试过程中,有由一个独立测试观察员来监测测试工作,测试集成过程中应考虑邀请一个用户代表非正式地观看集成测试。集成测试 一般也不使用真实数据,测试人员可以使用手工制作一部分代表性的测试数据。
//No.3//
系统测试
将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
系统测试为验证和确认系统是否达到原始目标,而对集成的硬件和软件进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括计算机硬件、外设、网络、和系统软件、支持平台等)正确配置、连接,并满足客户需求。系统测试的主要依据是《系统需求规格说明书》文档。
特点:
系统测试阶段完全采用黑盒测试技术。系统测试由独立的测试小组在测试组组长的监督下进行,在系统测试过程中,由一个独立测试观察员来监控测试工作,系统测试过程也应该考虑邀请一个客户代表给正式地观看测试,同时,得到用户反馈意见并在正式验收测试之前尽量满足客户要求。系统测试所使用的的数据必须尽可能的地像真实数据一样精确有代表性,也必须和真实数据的大小和复杂性相当,在不使用真实数据的情况下应该考虑使用真实数据的一个拷贝。
集成测试和系统测试之间的比较:
· 测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能。
· 测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。
//No.4//
验收测试
验收测试又称交付测试,是软件在完成了单元测试、集成测试、系统测试之后,产品发布之前进行的软件测试活动。验收测试又分为Alpha测试和Beta测试,Alpha测试是由一个用户在开发环境下进行的测试,或者是公司内部的用户在模拟实际操作环境下进行的受控测试。Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行测试。
特点:
验收测试阶段也完全采用黑盒测试技术。验收测试一般在测试小组的协助下,由用户代表执行,测试组组长负责保证在合理的质量控制和监督下使用合适的测试技术执行充分的测试,测试人员在验收测试工作中协助用户代表执行测试,并和测试观察员一起像用户解释测试用用例的结果。只要有可能,在验收测试中就应该使用真实数据,在不使用正式数据的情况下,应该考虑使用真实数据的一个拷贝。
END
免费领取软件测试课程笔记+超多学习资料+学习完整视频,微信关注官方公众号:特斯汀软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。