如何理解软件测试计划呢?软件测试计划是一份描述软件测试范围、测试环境、测试策略、测试管理、测试风险的文档,由测试经理制订完成。依据这份测试计划,测试人员就可以有计划地发现软件产品的缺陷,验证软件的可接受程度。接下来,本节将对软件测试计划中的内容进行详细讲解。
在软件测试计划中,测试范围用来确定需要测试的功能性需求和非功能性需求。测试计划会明确指出进行系统测试时主要测试哪些内容,哪些内容不在本次测试范围内,是否需要进行外观界面测试、功能测试、易用性测试、兼容性测试、安全性测试、性能测试或其他测试等。
在软件测试计划中,测试环境定义了执行系统测试的软件环境和硬件环境。
软件环境:主要指进行系统测试的软件运行环境,以及软件运行所需的周边软件等。例如,对QQ邮箱做系统测试时,测试人员是在Windows 10操作系统的IE11浏览器上测试的,那么本次系统测试的软件环境就是Windows 10操作系统和IE11浏览器。实际工作中的软件环境不限于Windows 10操作系统和IE11浏览器。
硬件环境:主要是指进行系统测试的硬件设施。例如,用于测试的计算机配置为酷睿i5处理器的CPU、三星8GB的内存等,那么这个硬件配置情况就是本次系统测试的硬件环境。实际工作中的硬件环境并不限于这些硬件配置,还会涉及诸多方面,如测试的温度、湿度,也属于硬件环境。
在软件测试计划中,测试策略指的是测试的依据、测试的准入标准、测试工具的选择、测试的重点及方法、测试的准出标准等内容。
(1)测试的依据。测试时需要指明软件测试依据的标准文档有哪些,其中有两个重要的文档,一个是需求文档,另一个是测试用例,软件测试工作主要是依据它们来开展的。有关测试用例的知识将在第6章详细介绍。
(2)测试的准入标准。测试时需要指明系统满足怎样的条件后才能进行系统测试。通常测试的准入标准是指通过冒烟测试。冒烟测试指当测试人员拿到待测软件后,并不立即投入系统测试的用例执行工作中,而是首先筛选一些基本的功能点进行测试,如果筛选的这些基本功能点经测试后没有问题再进行系统测试,如果有问题则会停止测试,待开发人员修复好这些问题后再进行系统测试。比如,某软件一共有300个测试点,那么可能会筛选出常用的30个测试点来测试一下系统是否正常。只有当这30个测试点都没有问题后,才会进行全面的系统测试,那么对这30个测试点的测试工作就称为冒烟测试。在实际工作中,测试的准入标准可能并不局限于通过冒烟测试这一个条件。
(3)测试工具的选择。测试时需要指明在测试的过程中会使用哪些工具。例如,测试人员在提交Bug的过程中需要用到Bug管理工具,市场上可供选择的Bug管理工具有很多,在制订测试策略时,测试组需要决定具体选择哪个工具,如用工具“禅道”来管理Bug,又如部分的功能点可以利用自动化测试工具“Selenium”进行测试等。有关“禅道”和“Selenium”这两款测试工具,将会在第7章和第11章分别具体介绍。
(4)测试的重点及方法。在进行系统测试的过程中,应当标明要测试的重点模块和区域、测试的优先次序以及所使用的测试方法。目前大家所了解到的测试方法主要是黑盒测试(功能测试),也就是手工测试。
(5)测试的准出标准也叫测试通过的标准。可以理解为,若未关闭Bug的数量不超过规定数量,则可视为通过测试(也可以理解为在未关闭Bug数量不超过规定数量的情况下,软件产品才符合上线的标准)。例如,某测试组测试的准出标准(通过的标准)是,未关闭Bug的数量不能多于3个,并且没有严重和致命的Bug,遗留的Bug并不影响用户对产品的使用和体验。实际工作中测试通过的标准并不局限于Bug的数量,还要看Bug的等级(根据严重程度一般分为致命问题、严重问题、一般性问题、建议问题),有关Bug等级的详细说明,将在第7章讲解。
在软件测试计划中,测试管理主要指测试任务分配、时间进度安排、沟通方式这3个方面的内容。
(1)测试任务分配指的是确定整个测试范围后,测试经理会根据团队中每个测试人员的特长分配相关的测试任务。测试任务主要包括两项重要的工作:一个是测试用例的设计和编写,另一个是测试用例的执行和操作。
(2)时间进度安排指的是根据实际分配的工作任务来指定每个测试人员开展每项测试工作的起始时间和完成时间。
(3)沟通方式指的是测试过程中如果发现有需要沟通的问题,测试人员如何与项目组中其他成员进行沟通。沟通的方式有很多种,测试中常用的是面对面沟通、电子邮件沟通以及通过Bug管理工具沟通。
在软件测试计划中,需要指明测试中存在的各种风险,常见的风险包括没有透彻理解需求文档、对测试时间估计不足及测试执行不到位等。
(1)没有透彻理解需求文档:没有透彻理解需求文档会导致测试人员对软件功能模块的理解存在偏差,进而影响判断,从而产生无效Bug。如果完全不理解需求的某一项,则会导致测试人员无法理解该需求项所对应的软件功能模块,也就无法对软件的功能进行正确测试。
(2)对测试时间估计不足:每个测试人员都要在规定的时间内完成测试,对自己工作量的估计不足而导致在规定的时间内无法完成相应的任务,会直接影响整个测试工作的进度,造成推迟测试计划的风险。
(3)测试执行不到位:有些测试人员存在侥幸心理,认为有些功能模块不重要或是不会存在问题而不需要去执行测试。在实际工作中,也有一些测试人员因不理解某些功能模块而无法执行相关测试,既不积极主动地向相关人员请教,也不去想办法解决疑问,从而导致执行不到位。
当然,测试风险并不局限于以上3条。
对于上述风险,很多时候可以想办法避免或降低。
(1)需求文档评审期间,测试人员需要认真深入地阅读相关内容,凡是有疑问的地方都要和产品人员沟通确认,并且在测试执行期间与产品人员及测试组同事保持沟通,多询问、多请教,明确掌握需求文档中的内容。
(2)在测试过程中如果发现测试时间不够,首先要想办法改进自己的测试方法以提高工作效率,另外可以申请得到团队同事的协助,如果实在工期紧迫,可以适当加班。
(3)软件中很多Bug都是因为测试执行不到位导致的,测试中有这样一条规律:越被认为没有问题的地方,可能就越容易出现问题。测试人员的侥幸心理是不可取的,也是一种不负责任的表现。而对于因不理解需求而无法执行的功能模块,应当及时向测试经理反馈以寻求解决方法,绝不能蒙混过关。测试人员要有认真负责的态度和优秀的专业素养。