模块测试

整理软件工程最基本的几个概念

假装没事ソ 提交于 2019-12-25 18:58:33
引言: 发现很多的学科概念性的东西总是会忘记,因为没有用到日常的学习项目中,但是很多的东西往往是经常接触却不知道其中的意思,比如,什么叫软件???是不是一脸懵,作为一个计算机专业的人,虽然逻辑的思维很重要,但是也要掌握一些最基本的概念。所以这里我就 总结一些软件工程基本的概念 。 1、什么叫软件工程? 答: 软件工程就是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。 2、软件工程有哪些原则? 答: 抽象、模块化、信息隐藏、局部化、一致性、完整性和可验证性。 3、什么叫软件? 答: 软件的定义是计算机程序及其说明程序的各种文档。 4、什么是软件生命周期?什么是软件的生命周期模型?主要有哪些模型 答: 软件生命周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期(软件分析时期、软件设计时期、编码与测试时期、运行维护时期)。 关于这个重点说一下,我们平时的编写一些程序的时候,其实就有这个时期,你想刚开始可行性研究(当然,我们一般考虑的是自己的能力和时间是否可以去做这个项目),然后我们的脑子里面有一个大概的想法(概要设计),然后有了数据结构算法(详细设计),之后就开始利用编程语言编写(编码),然后运行测试看看是否符合(测试时期),之后小的程序基本就结束了,像一般的网页或者大一点的程序,就还有运行维护阶段。

python--unittest框架之testcase

匆匆过客 提交于 2019-12-17 23:09:16
** 一 unittest是什么? ** unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件。是标准库,安装方式:pip install unittest 使用unittest前需要了解该框架的五个概念: 即test case,test suite,testLoader,test runner,test fixture。 test case :一个完整的测试单元,执行该测试单元可以完成对某一个问题的验证,完整体现在: 测试前环境准备(setUp),执行测试代码(run),以及测试后环境还原(tearDown); test suite :多个测试用例的集合,测试套件或测试计划; testLoader :加载TestCase到TestSuite中的,其中loadTestsFrom__()方法用于寻找TestCase, 并创建它们的实例,然后添加到TestSuite中,返回TestSuite实例; test runner :执行测试用例,并将测试结果保存到TextTestResult实例中,包括运行了多少测试用例, 成功了多少,失败了多少等信息; test fixture:一个测试用例的初始化准备及环境还原,主要是setUp() 和 setDown()方法; ** 1.unittest的属性如下: [‘BaseTestSuite

今天来讲下白盒测试和黑盒测试的区别

让人想犯罪 __ 提交于 2019-12-16 17:52:25
一. 软件测试方法 软件测试方法:白盒测试、黑盒测试、灰盒测试、静态测试、动态测试 白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。 白盒测试技术一般可被分为静态分析和动态分析两类技术。 静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。 动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。 白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。 在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。 灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法

面试技巧篇01

拥有回忆 提交于 2019-12-16 12:36:37
1.问:你在 测试 中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。   首先,将问题提交到 缺陷管理 库,类似禅道,进行备案,   根据需求文档,产品说明,设计文档等,确认实际结果是否与计划有不一致的地方,   如果没有文档,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;   根据一般用户的使用习惯,来确认   与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;   合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪   等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。    2. 给你一个网站,你如何测试?   首先,查找需求说明、网站设计等相关文档,分析测试需求。   制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试; 性能测试 ; 数据库 测试;安全性测试;兼容性测试   设计 测试用例 :   功能性测试可以包括,但不限于以下几个方面:   链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。   提交功能的测试。   多媒体元素是否可以正确加载和显示。   多语言支持是否能够正确显示选择的语言等。   界面测试可以包括但不限于一下几个方面:   页面是否风格统一

pytest使用总结笔记

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-11 23:27:18
简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。并且pytest兼容unittest的用例,支持的插件也更多 安装 pip install pytest 简单上手,创建个 test_sample.py文件 def func(x): return x + 1 def test_answer(): assert func(3) == 5 运行测试,直接在当前文件夹运行pytest collected 1 item test_sample.py F [100%] ================================= FAILURES ================================= _______________________________ test_answer ________________________________ def test_answer(): > assert func(3) == 5 E assert 4 == 5 E + where 4 = func(3) test_sample.py:6: AssertionError ============================ 1 failed in 0.12s ===

【maven】测试

狂风中的少年 提交于 2019-12-11 17:51:30
针对spring-boot项目 通过命令行执行mvn命令来启动测试模块。 1、引入plugin 并自定义参数ignore.test 2、命令行传递参数启动test mvn clean package -Dignore.test=false 来源: https://www.cnblogs.com/kbian/p/12023998.html

软工造梦厂团队总结

。_饼干妹妹 提交于 2019-12-08 15:19:31
作业课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/10121 作业要求 https://www.cnblogs.com/harry240/p/11524252.html 团队名称 C#软工造梦厂 作业目标 总结团队开发项目的经验 GitHub地址 https://github.com/shisan9527 一、队员列表 姓名 学号 张旭(组长) 201731024123 周成杰 201731024136 邹扬锋 201731024134 赵俊安 201731024121 黄涛 201731024119 陈欣 201731024102 马芸慧 201731024104 马昊妍 201731024107 二、正文 姓名 张旭 学号 201731024123 博客地址 http://home.cnblogs.com/u/shisan9527/ 第一篇博客地址 https://www.cnblogs.com/shisan9527/p/11512084.html 提出的问题 1.好的想法会赢 关于这个问题我还是保持了刚开始的想法,好的想法当然会赢,只是这个“好”体现在哪个方面,如果在某一领域这个想法无法获得成就那就说明这个想法在这个领域其实是不算好的

【软件工程】期末复习笔记

爱⌒轻易说出口 提交于 2019-12-08 11:01:06
程序的三种基本控制结构: 顺序 选择 重复 面向对象的分析方法主要是建立: 对象模型 动态模型 功能模型 模块独立性的衡量标准: 耦合性 内聚性 软件开发是 自顶向下逐步求精 ;软件测试是 自底向上集成 面型对象: 多态性 唯一性 封装性 继承性 功能内聚 内聚性最高; 偶然内聚 内聚程度最低 继承性是子类自动共享其父类的 数据结构和方法 白盒覆盖测试六种覆盖方法中,由 弱 至 强 :语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖 软件测试用例主要由 测试输入数据 和 测试的预期结果 组成 E-R图包含: 实体 联系 属性 数据流图包括: 处理 数据流 动作对象 数据存储对象 着重描述数据对象及数据对象之间的关系 分层数据流图:顶层数据流图描述了系统的 输入与输出 软件结构图: 扇入 指一个模块的直接上级模块个数,能反映程序重用率; 扇出 指一个模块的直接下级模块个数; 宽度 指同一层次上的模块总数最大值 对象图:用于描述对象模型 层次图:软件结构使用的图形工具 SC图:软件结构化设计(总体设计)使用的图形工具;详细设计与概要设计衔接的图形工具 PAD图:经常用于详细设计阶段 McCall模型:适应性属于面向软件产品修改 COCOMO模型:用于成本估算 螺旋模型:引入了“风险驱动”思想,适用于大规模的内部开发项目 瀑布模型:缺乏灵活性 喷泉模型

软件工程的几个步骤

青春壹個敷衍的年華 提交于 2019-12-06 12:29:37
软件工程的几个步骤[转载] 2008年01月08日 星期二 15:36 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。 IEEE:软件工程是开发、运行、维护和修复软件的系统方法。 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、 软件工具 和 软件开发环境 ;软件工程管理学包含软件工程经济学和软件管理学。 软件工程基本原理 著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。 (1)用分阶段的生存周期计划进行严格的管理。 (2)坚持进行阶段评审。 (3)实行严格的产品控制。 (4)采用现代程序设计技术。 (5)软件工程结果应能清楚地审查。 (6)开发小组的人员应该少而精。 (7)承认不断改进软件工程实践的必要性。 B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。 软件工程(SoftWare

python中的单元测试模块unittest

我的未来我决定 提交于 2019-12-06 07:09:02
unittest的属性: 该文以思维导图的形式描述unittest的重要属性。 其中前四个是unittest最核心的三个属性。 testcase:测试用例; testsuite:测试套件,多个测试用例组成一个测试套件; test runner:执行测试用例,该类中的run()方法会执行testsuite/testcase中的run()方法。测试的结果会保存在testresult中。 还有一个很重要的就是fixture,看着是挺陌生的,其实就是一个测试用例执行之前环境的准备和执行之后环境的销毁。 三、实例: 首先准备一些待测方法,functions.py: def fun_div(x): return x/2 def fun_add(x): return x+2 def fun_minus(x): return x-2 def fun_multi(x): return x*2 接下来写一些测试用例来测这些方法,test.py import unittest from functions import fun_add,fun_minus,fun_multi,fun_div class TestFun(unittest.TestCase): times = 0 @classmethod def setUpClass(cls): print('setUpclass') def setUp