测试策略设计与实现

1. 什么是单元测试策略?

概念:针对单元测试选择测试的一种方式

2. 单元测试策略-方式

1. 自上向下
2. 自下向上
3. 孤立策略    

2.1 策略 自上向下

方式:从最上层函数往下开始逐层测试

案例1

两个函数(求和、求减),求和函数内调用求减函数;

案例1分析

1. 编写求和函数
2. 编写求减函数
3. 在求和函数内调用求减函数
4. 调用求和函数

代码:

# 定义求和函数
def sum(a,b):
    print(a+b)
    sub(a,b)

# 打桩
def sub(a,b):
    return 20

# # 定义求减函数
# def sub(a,b):
#     print(a-b)

if __name__ == '__main__':
    sum(10,5)

 案例1 问题

1. 我们只想测试求和函数不测求减函数该如何做?

答:打桩

概念:打桩就是模拟编写一个我们需要引用的函数

提示:一般我们只模拟写个函数名,直接返回相应的结果即可
示例:
     def fun_1(self):
         return true

自上向下-总结:

1. 方式
2. 打桩(模拟调用的函数)
3. 缺点(成本高)

2.2 策略 自下向上

方式:从最底层函数往上开始逐层测试

自下向上-总结:

1. 方式
2. 缺点(周期长)

2.3 策略 孤立策略

方式:选择需要进行测试的函数进行测试

孤立策略-总结:

1. 方式
2. 【推荐使用】
3. 优点:选择重要的代码进行测试

3. 测试策略实现

3.1 什么是测试策略实现?

概念:把我们选定的代码,转向流程图、流图及用例的过程

3.2 测试策略实现如何操作?

1. 将测试代码转换成流程图
2. 根据流程图转换为流图

案例2

函数(test001)判断参数a,如果a>0,输入语句1;

代码:

def test001(a):
    if a>0:
        print("语句1被执行")

if __name__ == '__main__':
    test001(0)

案例2 流程图

什么是流图?

概念:表达程序业务逻辑的复杂度一种示意图
构成:   
     1) 圈:判断条件、语句块(一条或多条语句)两者都圈    
     2) 线:箭头指向的线,用来连接圈和圈的指向    

流图的目的?

    1) 确定单元的复杂度级别
    2) 确定测试用例

备注: 路径的个数为复杂度的级别(一条路径为1个复杂度级别)

案例2 流图

测试用例 模板

案例2 总结

1. 路径:2 (1-2-3,1-3)
2. 复杂度:2
3. 用例个数:2

案例3

函数(test002)判断参数a,b;如果a>0 and b<10  输入语句1;否则输入语句2;

代码

# 函数(test002)判断参数a,b;如果a>0 and b<10  输入语句1;否则输入语句2;
def test002(a,b):
    if a>0 and b<10:
        print("语句1被执行")
    else:
        print("语句2被执行")

if __name__ == '__main__':
    test002(-1,1)

流程图和流图

案例4

输入两个数,如果两个数同时为大于0小于10,那么就进行求和运算;否则判断两个数是否同时大于等于10小于20那么
就进行求减运算,否则输入错误;

代码: 

# 输入两个数,如果两个数同时为大于0小于10,那么就进行求和运算;否则判断两个数是否同时大于等于10小于20那么
# 就进行求减运算,否则输入错误

a=int(input("请输入第一个数:"))
b=int(input("请输入第二个数:"))
if a>0 and b>0 and a<10 and b<10:
    print(a+b)
elif a>=10 and b>=10 and a<20 and b<20:
    print(a-b)
else:
    print("输入错误")

流程图与流图

案例5 while循环

使用while循环求1-10相加之和;

代码:

sum=0
i=1
while i<=10:
    sum+=i
    i+=1

if __name__ == '__main__':
    print(sum)

流程图和流图

案例6

提示输入三角形三条边,进行判断三角形类型(等边、等腰、普通)并进行提示,否则提示不是三角形;

提示:
三角形:两边之和大于第三边;
等腰三角形:两条边相等
等边三角形:三条边相等

代码:

a=int(input("请输入第一条边:"))
b=int(input("请输入第二条边:"))
c=int(input("请输入第三条边:"))
# def sjx(a,b,c):
    # 首先判断是否为三角形
if a+b>c and a+c>b and b+c>a:
    if a==b and b==c:
        print("等边三角形")
    elif a==b or b==c or a==c:
        print("等腰三角形")
    else:
        print("普通三角形")
else:
    print("不是三角形")

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动端app的自动化测试设计实现是一项非常重要的任务,因为移动应用程序已经成为人们日常生活中不可或缺的一部分。为了确保应用程序的质量和稳定性,开发人员需要对其进行充分的测试。本次答辩记录综述将讨论移动端app自动化测试设计实现。 在答辩中,研究人员首先介绍了移动应用程序的自动化测试的必要性和重要性。由于移动应用程序的复杂性和多样性,手动测试是一项非常耗时且易出错的任务。因此,自动化测试成为一种更加高效和可靠的测试方式。 然后,研究人员讨论了移动应用程序自动化测试设计实现过程。他们介绍了一些主流的自动化测试框架和工具,包括Appium、Robotium、Calabash和Monkey等。这些工具提供了多种自动化测试策略,包括UI自动化测试、性能测试、安全测试和功能测试等。 接下来,研究人员详细介绍了一个基于Appium的自动化测试框架,该框架包括测试环境的搭建、测试用例的设计和执行、测试结果的分析和报告等方面。他们还提供了一些实例来说明如何使用该框架进行自动化测试,并分享了一些经验和技巧,以帮助开发人员更好地进行移动端应用程序的自动化测试。 最后,在答辩中,研究人员总结了移动端应用程序自动化测试设计实现,强调了自动化测试的重要性和优势,并鼓励开发人员采用自动化测试来提高软件质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值