以淘宝为例的系统六种属性

软件的可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。James Bach 这样描述可测试性:软件可测试性就是一个计算机程序能够被测试的容易程度。

以下是一个常见的软件可测试性检查表:

· 可操作性-运行地越好,被测试的效率越高;

· 可观察性-所看见的,就是所测试的;

· 可控制性-对软件的控制越好,测试越能够被自动执行与优化;

· 可分解性-通过控制测试范围,能够更好地分解问题,执行更灵巧的再测试;

· 简单性-需要测试的内容越少,测试的速度越快;

· 稳定性-改变越少,对测试的破坏越小;

· 易理解性-得到的信息越多,进行的测试越灵巧;

一.软件测试有几个过程?分别由谁进行测试?

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

开发人员进行:单元测试,集成测试.

测试部门进行:系统测试,验收测试.

客户进行:测试。

单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

如何提高软件的可测试性?

(https://www.cnblogs.com/lane_cn/articles/68871.html)

首先为什么一些代码难以测试 

在进行单元测试的时候,会发现程序中某些部分很难进行自动测试,比如耦合程度比较高的类、用户界面、数据库、Servlets和EJB类、等等。本文主要说明程序中这些“难以测试”的部分应该采用什么样的方式去测试。是什么因素使得这些代码难以测试呢?首先是不知道测什么,其次是一些代码之间互相依赖严重,在测试环境中要建立起这些类的实例都很难。 

1.进行类设计时应尽量满足高内聚,低耦合的要求。

2.在设计时充分考虑类之间的联系,类与类之间的关系要基于接口,而不是基于实现。这样的方式也会为程序带来最大的灵活性。 一般说来,下列模块都应该通过接口的方式进行调用: 硬件; 数据库; 还没有完成的类。

4.程序设计一般遵循层次原则,一般说来,上层的程序可以调用下层的程序,同层之间也可能存在互相的调用。 

3.一般说来,程序应该尽力减少UI和UI模块之间的互相调用。

原文地址:https://www.cnblogs.com/877612838zzx/p/10550120.html