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

文章目录

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

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

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

二、简单计算机测试

1、题目

这里是引用
软件测试实用案例上机报告一_第1张图片

2、编码(源代码)

这里是引用
编写test_cal.py文件:
软件测试实用案例上机报告一_第2张图片软件测试实用案例上机报告一_第3张图片
当然,你是需要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目录:
软件测试实用案例上机报告一_第4张图片
有beyond喜欢在本地添加但是不知道python路径在哪是吧(怒)| 打开cmd—输入python进入命令行,输入这两行代码:
软件测试实用案例上机报告一_第5张图片
运行记得选择test_cal.py,不要用默认的pytest或unittest运行 :
软件测试实用案例上机报告一_第6张图片
生成了res1.html文件:①pycharm右上角有浏览器打开 ②右键在资源管理器中点开它(Open in=》Exploer)
软件测试实用案例上机报告一_第7张图片

4、coverage查看覆盖情况

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

软件测试实用案例上机报告一_第8张图片
进入python命令行,输入import coverage,成功导入:
软件测试实用案例上机报告一_第9张图片
输入coverage html -d report 生成report文件夹:
在这里插入图片描述
软件测试实用案例上机报告一_第10张图片
打开index.html
软件测试实用案例上机报告一_第11张图片

三、基本覆盖路径法测试

1、题目

软件测试实用案例上机报告一_第12张图片

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覆盖率:
软件测试实用案例上机报告一_第13张图片
软件测试实用案例上机报告一_第14张图片

四、三角形问题测试

1、题目

软件测试实用案例上机报告一_第15张图片

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覆盖率:
软件测试实用案例上机报告一_第16张图片
软件测试实用案例上机报告一_第17张图片

你可能感兴趣的:(Python,数学建模,单元测试)