基于Python的高职软件测试实践课设计

2020-03-16 03:17余婧
电脑知识与技术 2020年2期
关键词:软件测试课程设计

余婧

摘要:Python是人工智能领域重要编程语言之一,是高职计算机相关专业一门新兴课程。软件测试课程理论抽象、实践操作性较强,使用Python为软件测试课程设计教学案例,加深学生对软件测试重要概念的理解;同时,使用Python设计典型的测试用例,培养学生动手实践能力,提高教学效果。

关键词:软件测试;Python;课程设计

中图分类号:TP311;G712       文献标识码:A

文章编号:1009-3044(2020)02-0095-02

2018年4月,教育部印发了《高等学校人工智能创新行动计划》,提出:加强人工智能领域专业建设。推进‘新工科建设,形成‘人工智能+X复合专业培养新模式。根据《普通高等学校高等职业教育(专科)专业设置管理办法》,教育部确定了“人工智能技术服务专业”为2019年度新增专业。该专业人才就业方向“从事人工智能产品的开发与测试、数据处理、系统运维、产品营销、技术支持等工作。”高等职业教育阶段培养社会应用型人才为主,计算机及相关专业在课程设置、教学设计、实训实践等环节应积极向人工智能方向靠拢。随着人工智能行业的迅速发展,人工智能主流语言Python语言也成为高等职业院校人工智能专业的必修课之一。

在软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上[1]。而在软件开发的总成本中,用在测试上的开销要占30%~50%。《軟件测试》课程是一门理论抽象、实践性很强的计算机专业课程。课程体系设计时,应融入人工智能的理论及实践环节的操作[2]。

1 基于Python的软件测试课程教学目标

基于Python的软件测试教学实践课,需要学生已经学习并且基本掌握Python语言编译运行、能够编写结构化程序代码、调用模块、理解面向对象的思想。

Python语言有强大的编程能力、良好的可移植性以及丰富的类库。Python在软件测试中可以用于编写测试用例、自动化测试模块调用。

在软件测试课程中,渗透Python语言的模块调用、编写测试用例,使学生在掌握软件测试基本测试方法、测试步骤的同时,巩固已学的Python知识,并加以应用。

2 Python软件自动化测试

软件测试课程中,十分重视模块独立性,强调“高内聚、低耦合”。在模块独立性讲解过程中,引入Python语言自带的测试模块帮助学生理解模块的概念及应用。例如,C++语言单元测试由CPPUnit类实现,Python语言由PyUnit模块实现[3]。PyUnit是基于JUnit和XUnit开发的单元测试框架。该框架提供了统一的方法测试由Python语言开发的软件,同时,提供了图形用户界面,提高单元测试的可用性。

白盒测试中,根据测试程度由弱到强,分别有:语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖。Python程序使用Coverage.py工具进行代码覆盖率测试。该工具提示程序已经执行的部分,然后对数据进行分析,确定未被执行的代码。根据未被执行的程序,增加未覆盖语句的测试用例,提高了软件测试的质量。

3 软件测试Python实践课设计

三角形问题是软件测试中的一个典型案例,使用Python设计测试用例具有较强的教学实践意义。

3.1 三角形分类程序的测试方案的设计

读入三个整数值代表三角形的三条边的长度,程序判断这三个值能否构成三角形,如果能够,则输出三角形是等边、等腰或任意三角形的分类信息。综合使用边界值分析、等价类划分和错误推测等技术为此程序设计测试用例。第一步,确定测试策略。由于被测程序已有明确的要求,判断能否构成三角形,如能构成,则再判断能构成等边、等腰或任意三角形哪一种。首先运用黑盒测试法设计测试用例,然后再用白盒测试法验证其完整性,必要时再补充测试用例。第二步,在黑盒测试中首先要用等价类划分法划分输入等价类,然后用边值分析法和错误推测法作补充。 测试用例设计如表1所示:

3.2 三角形问题的分析

三角形问题接受三个整数a、b和c作为输入,作为三角形的边。程序的输出是:等边三角形、等腰三角形、不等边三角形和非三角形。整数a、b和c必须同时满足以下条件:f1:a>=1、f2:b>=1、f3:c>=1、f4:a

3.3 三角形问题的Python代码实现

#!/usr/bin/python

# -*- coding: UTF-8 -*-

flag=False

IsATriangle = False

Step1: Input a,b,c

a = int(input('a='))

b = int(input('b='))

c = int(input('c='))

if (a>=1) and (b>=1) and (c>=1):

flag = True

Step2: Isnot a Triangle?

if (a

IsATriangle = True

Step3: Determine Triangle Type

if flag == False:

print (“输入有误,请重新输入”)

if IsATriangle == False:

print (“非三角形”)

if flag and IsATriangle:

if (a==b) and (b==c):

print (“等边三角形”)

elif (a!=b)and (b!=c) and (c!=a):

print (“不等边三角形”)

else:

print (“等腰三角形”)

4 软件测试Python实践课教学效果

如下图1~图5,是课堂教学中学生使用Python语言完成测试情况,分别是:等边三角形、等腰三角形、不等边三角形、非三角形、输入有误这五种情况。

教学过程中,将学生分成4~5组,每组学生负责其中一组测试结果。组长组织讨论,组内同学协调完成一组实验,并由其中一位同学代表进行总结或体会分享。学生动手实践后体会及总结主要有以下四点:第一、测试用例设计的原则,黑盒测试的有效等价类和无效等价类的设计;第二、Python编程及调试中遇到的问题;第三、Python语言模块化在软件测试中的应用;第四、人工智能背景下,软件测试的新变化。

通过实践交流学习,大家对软件测试用例有了更深刻的了解。比较纯理论教学,引入Python实践环节,学生对课程的参与度有所提高,学生掌握新知识、新技能的兴趣较强。

5 结束语

软件测试质量的高低直接关系项目的成败,测试质量越高,就能越早发现问题,减少后期解决问题的成本。Python语言功能强大,具有很好的跨平台性,可以运用于很多领域的测试:数据库测试、网页测试、性能测试等。

人工智能时代的到来,计算机专业软件测试课程应顺应时代发展需求,改进教学内容、增加教学实践环节,提高学生的动手实践能力。

参考文献:

[1] Jorgensen P C. Software Testing[M]. 4 版. 北京: 机械工业出版社, 2017.

[2] 朱少民. 軟件测试课程的问题驱动教学模式探索[J]. 中国大学教学, 2018(10):32-36.

[3] 朱少民. 全程软件测试[M]. 北京: 人民邮电出版社, 2019.

【通联编辑:谢媛媛】

猜你喜欢
软件测试课程设计
基于OBE的软件测试课程教学改革探索
龙凤元素系列课程设计
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
基于Articulate Storyline的微课程设计与开发
基于自动化系统的PLC课程设计
开放大学课程设计与资源开发