一、系统测试
系统测试是将已经继承好的软件系统,作为计算机系统的一个元素,与计算机硬件、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。目的在于通过与系统的需求定义做对比,发现软件与系统定义不符合或者矛盾的地方。使用黑盒测试技术即可。
二、alpha测试和beta测试
α测试:由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
β测试:软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。
由于Alpha和Beta测试的组织难度大,测试费用高,测试的随机性强、测试周期跨度较长,测试质量和测试效率难于保证,所以,很多专业软件可能不再进行Beta测试。随着测试技术的提高,以及专业测试服务机构的大量涌现,很多软件的Beta测试外包给这些专业测试机构进行测试。
三、因果图测试
黑盒测试是一种常用的软件测试方法,将软件视为一个打不开的黑盒,主要根据功能需求设计测试用例,运行测试。常用的黑盒测试方法有:等价类划分法、边界值分析法、因果图法、决策表法。
等价值划分和边界值分析都是着重考虑输入条件,如果输入条件之间没有什么联系 ,采用等价类划分和边界值分析是一种有效的方法,如果输入之间有关系,如约束关系、组合关系,这种关系用等价值划分法和边界值法是很难描述的,测试效果难以保证,因此必须考虑一种适合于多种条件的组合,产生多个相应动作的测试方法。
因果图着重于测试规格说明中的输入与输出之间的依赖关系,适用于不同输入组合产生不同输出的情况 ,输入数据有多种组合的情况。
四、桩模块和驱动模块
模块结构图:
以B模块为例,当B模块要开始进行单元测试时,由于B模块需要调用D模块和E模块,在 D、E模块为开发完成时,B模块无法进行编译测试;而B模块也被A模块调用时会被编译,所以进行B模块的单元测试时,需要A模块中调用,同时需要调用D、E模块 ,所以在A、D、E未开发完成时,测试B模块就需要sd代替D模块,se代替E模块,sa代替A模块 ,其中 ,sd和D模块、se和E模块、sa和A模块有相同的函数名、返回值、传递的参数;
sd、se模块就是桩模块,sa为驱动模块;
五、增量集成测试、非增量集成测试、自顶向下结合、自底向上结合
增量集成测试和非增量集成测试
增量集成测试:集成是逐步实现的,即逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,已发现连接过程中产生的问题。
非增量集成测试:采用一步到位的方法来进行测试,对所有模块进行单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作整体测试。
自顶向下测试和自底向上测试:均属于增量式测试
自顶向下的测试:(1)主控模块作为测试驱动器 (2)根据集成的方式(广度或深度) ,下层的桩模块一个一个被替换为真正的模块 (3)在每个模块被集成时,都必须进行单元测试.。重复第二部,直到整个系统结构被集成完成。
优点:可以自然的做到逐步求精,一开始就可以让测试者看到系统的框架
缺点:需要提供桩模块,并且在输入/输出模块接入系统之前,在桩模块中表示测试数据有一定难度
自底向上的测试:逐步集成和逐步测试的工作是按照结构图自下向上进行的,由于是从最底层开始集成,因此不需要使用桩模块来辅助测试。
优点:由于驱动模块模拟了所有的调用参数,即使数据量并未构成有向的非环状图,生成测试数据也不会有困难。
缺点:直到最后一个模块被加进去之后才能看到 整个程序的框架。
六、单元测试、集成测试、系统测试、确认测试
单元测试:又称模块测试,是对程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编法中或算法中的错误,该阶段设计编码和详细设计文档。主要是基于白盒测试,a)验证代码与设计是相符合的 ; b)发现设计和需求中存在的错误; c)发现在编码过程中引入的错误
集成测试:又称组装测试或者联合测试,是单元猜测的逻辑扩展,他的最简单的形式,两个已经测试过的单元组合成为一个组件,并且测试他们之间的接口。即组件是指多个单元的集成聚合。集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。
系统测试:系统测试是将经过测试的子系统装配成一个完整系统来测试,他是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。系统测试主要针对概要设计,检查了系统作为整个整体是否有效的得到运行,例如在产品设置中是否达到了预期的高性能。
确认测试:主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。
七、测试用例和文档的对应
单元测试---详细用例; 集成测试---概要设计; 确认测试和系统测试----需求文档; 验收测试--用户需求;
W模型: