1.实验内容

使用python实现如下功能的程序: 输入三条边 a,b,c,满足0<=a<=200,0<=b<=200,0<=c<=200,判断是否能构成三角形, 分别输出不能构成三角形、等边三角形、等腰三角形、直角三角形、一般三角形。

  1. 判断三条边是否合法
  2. 判断两条边之和是否大于第三边
  3. 判断三条边是否能够组成三角形
  4. 判断两条边是否相等
  5. 求三角形有几条边相等,返回值:相等边的数量
  6. 判断是否满足两边平方之和是否等于第三边的平方
  7. 判断是否是直角三角形
  8. 判断三角形的类型,返回值: 不能组成三角形 等边三角形 等腰三角形 直角三角形 一般三角形

2.实验步骤

第一步:根据实验内容我使用python编写程序。

第二步:根据实验内容设计测试用例,要求是用白盒测试方法设计路径。

第三步:执行测试用例,并记录测试结果。

第四步:编写实验报告,实验报告的内容包括测试用例的测试结果、程序中存在的bug,白盒测试的特点。

3.实验代码

class Triangle(object):def __init__(self):super().__init__()def triangle(self, a, b, c) :if ((a + b) > c) and ((a + c) > b) and ((b + c) > a):if (a == b) and (a == c):print('等边三角形')return 3elif ((a == b) or (a == c) or (b == c)):print('等腰三角形')return 2elif (a * a + b * b == c * c) or (a * a + c * c == b * b) or (c * c + b * b == a * a):print('直角三角形')if ((a == b) or (a == c) or (b == c)):
print('等腰直角三角形')return 2else: return 1else:print('一般三角形')return 1else:print('不能构成三角形')if __name__ == '__main__':while True:a = int(input('请输入a的值:'))b = int(input('请输入b的值:'))c = int(input('请输入c的值:'))if (a > 0 and a <= 200) and (b > 0 and b <= 200) and (c > 0 and c <= 200):print('输入的三边合法')triangle = Triangle()print('相等边的数量为:', triangle.triangle(a, b, c))breakelse:print('输入的三边值不合法')

4.基路径测试用例

  1. 控制流程

1输入三边的数据

2判断三边的数据是否合法

3三边不合法

4重新输入

5判断任意两边之和是否大于第三边

6不能构成三角形

7判断是否是直角三角形

8直角三角形

9判断三边是否相等

10等边三角形

11判断其中两边是否相等

12等腰三角形

13一般三角形

14结束

  1. V(G)=P+1其中p为判定节点,则V(G)=5+1=6

6条路径:

  1. 1->2->3->4->5->6->14
  2. 1->2->3->4->5->7->8->14
  3. 1->2->3->4->5->7->9->10->14
  4. 1->2->3->4->5->7->9->11->12->14
  5. 1->2->5->6->14
  6. 1->2->5->7->9->11->13->14
  1. 设计用例

测试用例

输入数据

预计输出

实际输出

是否通过

备注

Test1

-2 -3 11

输入的三边值不合法

输入的三边值不合法

路径1

Test2

3 4 5

直角三角形

直角三角形

路径2

Test3

8 8 8

等边三角形

等边三角形

路径3

Test4

8 8 6

等腰三角形

等腰三角形

路径4

Test5

1 2 3

不能构成三角形

不能构成三角形

路径5

Test6

3 6 4

一般三角形

一般三角形

路径6

5.测试代码

import unittest
from triangle import Triangle
''' 这里由于在triangle.py中函数被封装为class所有要构造类来调用方法'''
tr = Triangle()class Testtriangle(unittest.TestCase):''' 路径(1)测试,输入数据不合理'''def test1(self):self.assertEqual(tr.triangle(-2, -3, 11), 3)self.assertNotEqual(0, tr.triangle(-2, -3, 11))''' 路径(2)测试,输入数据构成直角三角形'''def test2(self):self.assertEqual(tr.triangle(3, 4, 5), 1)self.assertNotEqual(2, tr.triangle(3, 4, 5))''' 路径(3)测试,输入数据构成等边三角形'''def test3(self):self.assertEqual(tr.triangle(8, 8, 8), 3)self.assertNotEqual(2, tr.triangle(8, 8, 8))''' 路径(4)测试,输入数据构成等腰三角形'''def test4(self):self.assertEqual(tr.triangle(8, 8, 6), 2)self.assertNotEqual(3, tr.triangle(8, 8, 6))''' 路径(5)测试,输入数据不能构成三角形'''def test5(self):self.assertEqual(tr.triangle(1, 2, 3), 0)self.assertNotEqual(3, tr.triangle(1, 2, 3))''' 路径(6)测试,输入数据构成一般三角形'''def test6(self):self.assertEqual(tr.triangle(3, 6, 4), 1)self.assertNotEqual(1, tr.triangle(3, 6, 4))if __name__ == '__main__':unittest.main()

6.测试截图

7.实验总结

白盒测试实验结果中给出了每一个用例执行的结果的标识,成功是 .,失败是 F,出错是 E,跳过是 S。本实验采用的是python编写程序,并使用python内置白盒测试、单元测试模块unittest进行测试。

白盒测试又叫结构测试,逻辑驱动测试或基于程序本身的测试。与黑盒测试不同,白盒测试会关注代码的过程,关注代码本身的结构,主要方法包括控制流测试(逻辑覆盖 路径测试)、循环测试、数据流测试。而对于基路径的测试方法,首先根据代码来画出控制流程,然后设计路径,路径要全面覆盖,每一条路径加入时都应该是之前没有出现过的。

软件测试'python'版白盒测试三角形问题相关推荐

  1. 软件测试实验4白盒测试,软件测试实验报告白盒测试

    <软件测试实验报告白盒测试>由会员分享,可在线阅读,更多相关<软件测试实验报告白盒测试(8页珍藏版)>请在人人文库网上搜索. 1.软件测试与质量课程实验报告实验3:白盒测试姓名 ...

  2. 洛谷 刷题 深基部分题解(python版)-2022.01.29

    P5703 [深基2.例5]苹果采购(python3实现) https://blog.csdn.net/dllglvzhenfeng/article/details/122690555 P5703 [ ...

  3. python实现输入三角形边长自动作图求面积案例

    三角形是个好东西,比如知道三条边边长,可以判断能不能组成三角形(两边之和大于第三边),如果可以就进一步计算其面积(海伦公式),最后还能把这个三角形画出来(余弦定理求角度),所以说这个作为一个编程题目用 ...

  4. 数据结构与算法 python版 之 递归三定律

    #数据结构与算法 python版 之 谢尔宾斯基三角形 , 树叉 1.为了向阿西莫夫的"机器人三定律"直径,递归算法也总结出"三定律" 1递归算法必须有一个基本 ...

  5. 爆肝5万字❤️Open3D 点云数据处理基础(Python版)

    Open3D 点云数据处理基础(Python版) 文章目录 1 概述 2 安装 2.1 PyCharm 与 Python 安装 2.3 Anaconda 安装 2.4 Open3D 0.13.0 安装 ...

  6. LeetCode 刷题之路(python版)

    摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...

  7. 数据结构python版 答案,中国大学 MOOC_数据结构与算法Python版_章节测验答案

    中国大学 MOOC_数据结构与算法Python版_章节测验答案 更多相关问题 认识的本质是()A.肯定世界是可知的B.主体对客体的能动反映C.主体对客体的直观反映D.实践是 水灰比是影响混凝土()的主 ...

  8. 【Leetcode】刷题之路3(python版)

    回溯专题 1.回溯算法的本质是n叉树的深度优先搜索,同时,需要注意剪枝减少复杂度. 2.回溯算法三部曲 确定参数和返回值 回溯函数终止条件 单层循环 3.回溯法思路 回溯法是一种算法思想,而递归是一种 ...

  9. 统计学习圣经!经典教材《统计学习导论》Python版

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 编辑:张倩,来源:机器之心 <统计学习导论>很经典,但习题用 ...

最新文章

  1. ArrayList和LinkedList区别
  2. SSE图像算法优化系列十九:一种局部Gamma校正对比度增强算法及其SSE优化。
  3. datetime-时间日期模块
  4. 明年1月发布!三星Galaxy S21系列爆料:首发骁龙875旗舰芯片
  5. Python Selenium 调用IE浏览器失败Unexpected error launching Internet Explorer解决方法
  6. linux 0891端口,凯立德导航专用版本号及分辨率、端口、波特率
  7. keras 的dot、multiply区别
  8. 服务器安装字体库解决出现xx问题
  9. 矩形脉冲信号合成_实验10 矩形脉冲信号分解
  10. drupal插入css,drupal8 自定义主题开发——导入自定义css和js
  11. Linux PostgreSQL离线下载与安装
  12. 10个程序员可以接私活的平台和一些建议
  13. CleanMyMac最新2020注册机
  14. KL Divergence ——衡量两个概率分布之间的差异
  15. java中使用 Date 和 SimpleDateFormat 类表示时间
  16. 螺旋矩阵常数复杂度解法
  17. 电脑文件删不掉怎么办?数据误删也能恢复
  18. DASCTF九月挑战赛复现-web
  19. 去角质剂和磨砂膏行业调研报告 - 市场现状分析与发展前景预测
  20. 利用Python进行王者荣耀壁纸下载

热门文章

  1. k8spod生命周期
  2. 交通 流量 时间序列预测,神经网络 机器学习 BPNN
  3. python unpacking_Python在unpacking上的一个小陷阱
  4. ENVI5.3 安装教程,新手入门(超详细)附安装包和常见问题
  5. Sed 删除匹配行,匹配的字符用Shell变量替换,且变量里含有斜杠“/”时,无法删除 解决办法
  6. 新年将至, 程序员如何以代码送出新春祝福
  7. JAVA中native方法调用C语言实现学习
  8. 测试用例(功能用例)——完整demo(一千多条测试用例)
  9. strtok函数的使用
  10. 吊打面试官,笑对 2022 金三银四,2022年最全面试真题大汇总