软件测试实用案例上机报告一

news2024/11/17 12:58:02

文章目录

  • 一、上机内容(单元测试)
  • 二、简单计算机测试
    • 1、题目
    • 2、编码(源代码)
    • 3、HTMLTestRunner生成可视化报告
    • 4、coverage查看覆盖情况
  • 三、基本覆盖路径法测试
    • 1、题目
    • 2、编码(源代码)
    • 3、复读 🐔
  • 四、三角形问题测试
    • 1、题目
    • 2、编码(源代码)
    • 3、复读复读🐔

一、上机内容(单元测试)

我是一个一个喜欢开摆的懒猫罢(悲)
希望能HELP缩短这不必要的一小时甚至半小时,多抽出点时间打电动捏 😋

二、简单计算机测试

1、题目

这里是引用
在这里插入图片描述

2、编码(源代码)

这里是引用
编写test_cal.py文件:
在这里插入图片描述在这里插入图片描述
当然,你是需要HTMLTestRunner.py和Cal.py文件滴:😋

Cal.py:

class calculator:
    a=10
    b=20
    def add(self):
        return self.a+self.b
    def sub(self):
        return self.a-self.b
    def multipy(self):
        return self.a*self.b
    def divide(self):
        try:
            return self.a/self.b
        except ZeroDivisionError:
            return("除数不能为0")

test_cal.py:

import HTMLTestRunner
import unittest
from unittest import TestCase
import Cal as cal
class TestCalculator(TestCase):
    def setUp(self):
        self.calObject=cal.calculator()
    def test_add(self):
        result=self.calObject.add()
        self.assertEqual(result,30)
    def test_sub(self):
        result = self.calObject.sub()
        self.assertEqual(result, -10)
    def test_multipy(self):
        result = self.calObject.multipy()
        self.assertEqual(result, 200)
    def test_divide(self):
        self.calObject.b=0
        result = self.calObject.divide()
        self.assertEqual(result, '除数不能为0')
def suite():
    calTestCase=unittest.TestSuite()
    calTestCase.addTest(TestCalculator('test_add'))
    calTestCase.addTest(TestCalculator('test_sub'))
    calTestCase.addTest(TestCalculator('test_multipy'))
    calTestCase.addTest(TestCalculator('test_divide'))
    return calTestCase
if __name__=="__main__":
    fp=open('res1.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='简单计算机的测试',description='详情')
    runner.run(suite())
    print('测试')
    fp.close()

HTMLTestRunner.py:太长了,话说老师不是会给滴么😋

代码的意思就是说,判断预期结果和实际结果相同不,利用assertEqual()函数

3、HTMLTestRunner生成可视化报告

把HTMLTestRunner.py塞到lib目录:
在这里插入图片描述
有beyond喜欢在本地添加但是不知道python路径在哪是吧(怒)| 打开cmd—输入python进入命令行,输入这两行代码:
在这里插入图片描述
运行记得选择test_cal.py,不要用默认的pytest或unittest运行 😰:
在这里插入图片描述
生成了res1.html文件:①pycharm右上角有浏览器打开 ②右键在资源管理器中点开它(Open in=》Exploer)
在这里插入图片描述

4、coverage查看覆盖情况

安装😺:cmd命令行切换到python里scripts目录,输入pip
install coverage:

在这里插入图片描述
进入python命令行,输入import coverage,成功导入:
在这里插入图片描述
输入coverage html -d report 生成report文件夹:
在这里插入图片描述
在这里插入图片描述
打开index.html 🧐
在这里插入图片描述

三、基本覆盖路径法测试

1、题目

这里是引用

2、编码(源代码)

function.py:

def function(a,b,c):
    if((a>1)and(b==0)):
        c=c/a
    if((a==5)or(c>1)):
        c=c+1
    c=a+b+c
    return c

function_test.py:

import HTMLTestRunner
import unittest
import function as fun
from unittest import TestCase
class TestFunction(TestCase):
    def setUp(self) -> None:pass
    def test_1(self):
        result=fun.function(1,2,1)
        self.assertEqual(result,4)
    def test_2(self):
        result=fun.function(1,2,2)
        self.assertEqual(result,6)
    def test_3(self):
        result=fun.function(5,2,1)
        self.assertEqual(result,9)
    def test_4(self):
        result = fun.function(5, 0, 1)
        self.assertEqual(result, 6.2)
    def test_5(self):
        result = fun.function(5, 0, 5)
        self.assertEqual(result, 7)
def suite():
    calTestCase=unittest.TestSuite()
    calTestCase.addTest(TestFunction('test_1'))
    calTestCase.addTest(TestFunction('test_2'))
    calTestCase.addTest(TestFunction('test_3'))
    calTestCase.addTest(TestFunction('test_4'))
    calTestCase.addTest(TestFunction('test_5'))
    return calTestCase
if __name__=="__main__":
    fp=open('res2.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='基本路径覆盖法',description='详情')
    runner.run(suite())
    print('测试')
    fp.close()

3、复读 🐔

和第一个做法一样捏 😴
年轻人给我发了两张截图,我一看,原来是HTMLTestRunner可视化报告和coverage覆盖率: 😹
在这里插入图片描述
在这里插入图片描述

四、三角形问题测试

1、题目

这里是引用

2、编码(源代码)

triangle.py:

def triangleStyletest(a,b,c):
    if(a<=0 or b<=0 or c<=0 or a+b<=c or a+c<=b or c+c<=a):
        return "无法构成三角形"
    elif(a==b and a==c and b==c):
        return "构成等边三角形"
    elif(a==b or a==c or b==c):
        return "构成等腰三角形"
    else:
        return "构成不等边三角形"

triangle_test.py:

import HTMLTestRunner
import unittest
import triangle as tri
from unittest import TestCase
class TestTriangle(TestCase):
    def setUp(self) -> None:pass
    def test_1(self):
        result=tri.triangleStyletest(1,1,1)
        self.assertEqual(result,'构成等边三角形')
    def test_2(self):
        result = tri.triangleStyletest(3, 4, 5)
        self.assertEqual(result, '构成不等边三角形')
    def test_3(self):
        result = tri.triangleStyletest(4, 5, 11)
        self.assertEqual(result, '无法构成三角形')
    def test_4(self):
        result = tri.triangleStyletest(2, 3, 2)
        self.assertEqual(result, '构成等腰三角形')

def suite():
    calTestCase=unittest.TestSuite()
    calTestCase.addTest(TestTriangle('test_1'))
    calTestCase.addTest(TestTriangle('test_2'))
    calTestCase.addTest(TestTriangle('test_3'))
    calTestCase.addTest(TestTriangle('test_4'))
    return calTestCase
if __name__=="__main__":
    fp=open('res3.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='三角问题进行单元测试',description='详情')
    runner.run(suite())
    print('测试')
    fp.close()

3、复读复读🐔

和第二个做法一样捏 😴
年轻人给我发了两张截图,我一看,原来是HTMLTestRunner可视化报告和coverage覆盖率: 😹
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【构造+数论+Tree】CF1627C

Problem - 1627C - Codeforces 题意&#xff1a; 给定一棵树的形态&#xff0c;让你给这棵树的边赋值&#xff0c;使得每对相邻的边的边权和都是质数 思路&#xff1a; 一开始模拟了一下样例&#xff0c;Sample3告诉我们如果有三条边相邻就是无解&#xff08;可以猜的结论&a…

详解.NET IL代码

IL是什么&#xff1f; Intermediate Language &#xff08;IL&#xff09;微软中间语言 C#代码编译过程&#xff1f; C#源代码通过LC转为IL代码&#xff0c;IL主要包含一些元数据和中间语言指令&#xff1b; JIT编译器把IL代码转为机器识别的机器代码。如下图 语言编译器&am…

让代码创造童话,共建快乐世界

六一儿童节即将到来&#xff0c;小朋友们开心的笑容弥漫了整个城市。对于大多数孩子来说&#xff0c;六一儿童节意味着玩具和糖果。但尽管这些看起来微不足道&#xff0c;却是他们幼小而纯真心灵的欢笑。而心怀童真的大人们则用他们手中的代码&#xff0c;创造出一个快乐而幸福…

CI858K01 3BSE018135R1 简化数据的编译

CI858K01 3BSE018135R1系列由以下部分组成: em4远程:完全连接到安全基础设施em4警报:能够发送短信或电子邮件警报em4本地:为不需要远程通信或只需要局域网的应用而设计 CI858K01 3BSE018135R1 remote的主要优势是可以连接到互联网&#xff0c;从而提供编程、监控和数据记录功…

怎么把图片转换成pdf格式?

怎么把图片转换成pdf格式&#xff1f;PDF 文件是一种非常流行的文件格式&#xff0c;几乎所有的电脑都自带了 PDF 阅读器工具。将图片转换成 PDF 格式后&#xff0c;在任何电脑或移动设备上&#xff0c;都能轻易地查看、共享和传输&#xff0c;兼容性更好。PDF 文件可以加密保护…

Zotero之多篇文献引用

前提 需看下我的这篇&#xff1a;Zotero文献在word中的引用 具体操作 Step01 在Word中引用多篇文献 点击“Add/Edit Citation”在跳出的Zotero搜索框中&#xff0c;选择“经典视图”在跳出的“添加/编辑引注”界面中&#xff0c;点击“多重来源”&#xff08;单一来源&…

MFC (四) 处理文本

默认消息的处理方法 1.确认什么消息 2.添加消息处理函数 3.添加代码 默认消息指在消息定义中已存在的消息 这里我们对文本做换行处理 1.我们在ondraw里修改代码&#xff0c;这样&#xff0c;无论放大&#xff0c;缩小&#xff0c;都不会改变文本 void CMFCpaintView::On…

基于博客系统的测试

目录 1.测试用例 2.编写代码 2.1InitAndEnd 2.2BlogCases 编写测试用例 2.2.1.登录 2.2.2博客列表页 2.2.3写博客 2.2.4博客详情页校验 2.2.5写博客后,校验博客列表页 2.2.6删除刚才测试发布的博客 2.2.7注销 1.测试用例 2.编写代码 创建两个类 2.1InitAndEnd 用于…

【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

一、数据集准备 数据集下载地址&#xff1a;https://github.com/YimianDai/sirst 1. 需要将数据集转换为YOLO所需要的txt格式 参考链接&#xff1a;https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 import os, shutildef checkPngXml(dir1, dir2…

OceanBase并行执行中 DTL消息接收处理的逻辑

OceanBase 并行执行的消息处理框架是很有意思的&#xff0c;里面用到了不少面向对象编程思想&#xff0c;值得分析。 DTL 从宏观上看可以分为三大部分&#xff1a; DTL 消息发送DTL 消息缓存DTL 消息处理 本文介绍 DTL 消息处理。 核心组件 DTL 消息缓冲区 DTL 消息缓冲区…

不懂这10个命令,别说你会调试网络设备

我的网工朋友大家好啊 好久没跟你们聊思科设备了。 虽然目前大方向上&#xff0c;企业用的设备越来越偏向国产化&#xff0c;学习华为、华三等厂商知识的人也越来越多。 但不可否认的是&#xff0c;思科仍然是厂商老大哥。 交换机、路由器这两块&#xff0c;思科占的全球市场…

若依框架请求magic-api接口出现Uncaught (in promise) error Promise.then (async)

错误描述&#xff1a; 在若依前端向magic-api发请求&#xff0c;实际上收到了返回的数据&#xff0c;但是仍出现错误提示。 错误截图&#xff1a; 猜测的原因&#xff1a; 请求参数错误返回参数错误magic-api内部语法错误 排除原因 在magic-api中仅返回一个数&#xff0c;同…

ChatGPT浪潮席卷,维智科技以时空AI赋能数实融合的未来城市

作者 | 伍杏玲 出品 | CSDN 每个时代都有新的技术浪潮&#xff0c;但在短短两年时间里见证两项颠覆全球的技术发展&#xff0c;实在出人意料之外&#xff1a;2021年以来&#xff0c;元宇宙成为互联网产业新风口&#xff0c;今年ChatGPT成为IT圈“顶流”&#xff0c;这两者为地…

Java访问QingCloud青云QingStor对象存储(公有云、私有云)

一、参考API 官网SDK文档参考&#xff1a;Java SDK - 公有云文档中心 (qingcloud.com) 二、环境说明 公有云跟私有云区别&#xff1a; 使用公有云QingStor&#xff0c;直接按照官网sdk直接可对接&#xff0c;私有云QingStor的话&#xff0c;需要设置具体的私有云请求地址及z…

chatgpt赋能python:Python中构造函数的名称

Python中构造函数的名称 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python语言中构造函数的重要性。在本文中&#xff0c;我将着重介绍Python中构造函数的名称&#xff0c;并阐述其在Python编程中的作用。 什么是构造函数&#xff1f; 构造函数是一种特殊类型…

【C#学习记录】添加控件后工具箱不显示是什么原因

大家好&#xff0c;我是雷工&#xff01; 今天在一个Winform程序中用到将WindowsMediaPlayer控件添加到工具箱&#xff0c;但添加了好几次&#xff0c;工具箱内均无法显示&#xff0c;经翻找资料和验证确认是跟创建项目时选择的模板有关&#xff0c;为了遇到同样问题的小伙伴能…

荣获用友年度十佳产业融合生态伙伴称号 | 图扑软件

2023 年 4 月 20 日&#xff0c;由中华全国工商业联合会联合工业和信息化部、国务院国资委组织开展的 2023 年度“百场万企”大中小企业融通对接活动——智能制造 MES 产业融通对接会暨 2023 用友 BIP 技术大会 MES 生态创新专题论坛在用友产业园顺利召开。 用友年度生态合作伙…

C语言学习分享(第九次)------数据的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 数据的存储 1. 前言&#x1f6a9;2…

符合国情的supabase私有化部署(0)

符合国情的supabase私有化部署(0) 符合国情的supabase私有化部署(0) 前言开源 BaaS 解决方案快速开始 获取部署文件服务明细 容器启动后创建一个前端app注册邮箱SMTP协议jwt token和kong网关配置并应用更改数据库密码k8s 部署参考尾言常见问题 name resolution failedInvalid …

Python:Python编程:从入门到实践__超清版:Python标准库

Python标准库 1. OrderedDict2. threading三级目录 Python标准库是一组模块&#xff0c;按照的Python都包含了它&#xff0c;我们只需要在程序开头包含一条简单的 import 语句&#xff0c;就可以使用标准库中的任何函数和类。 下面我介绍几个重点 标准库 os : 提供一些与操作系…