软件测试

构建之法读书心得2

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-24 16:38:33
在第二章中,我们学习了如何进行单元测试,软件是由多个人共同完成的,如果某个模块出现问题,那么整个软件都会出错,所以我们就要进行单元测试。那么怎么样才能算是好的单元测试呢?最基本的一点,就是要在功能和参数上验证程序的正确性。其次,单元测试最好由代码的作者来写,因为代码的作者是最熟悉代码的,能更好的针对代码编写测试程序。单元测试还要保证测试之后,机器状态保持不变,速度也要快,并且重复测试结果应该一致。出了单元测试,还要对程序进行效能分析,保证程序运行的又快又好,占用资源少。效能分析有两种方法:抽样或代码注入。对于个人来说,我们应该对个人开发流程进行规划,大致的任务清单如下:预估任务所需时间、分析需求、生成设计文档、设计复审、代码规范、具体设计、具体编码、代码复审、测试、记录用时、测试报告、计算工作量、时候 总结、提出过程改进计划 来源: https://www.cnblogs.com/zzzzuuuuo/p/6752258.html

阅读《构建之法》1-5章有感

不问归期 提交于 2020-02-24 16:21:34
第一章  概论 软件工程是什么? 软件工程的核心部分(构建管理、源代码管理、软件设计、软件测试、项目管理)和用户体验、用户界面设计等组成了软件工程,而软件=程序+软件工程。 软件开发过程中的难题有5点: 1、复杂性 2、不可见性 3、易变性 4、服从性 5、非连续性 软件的其他特性:1、有许多不同的程序设计语言、软件工具盒软件开发平台。 2、存在许多不同的软件开发流程。 3、软件团队中存在许多不同的角色。 4、软件通 常可以存储在磁带上,也可以存储在CD、DVD上。 第二章  个人技术和流程 个人技术与流程与软件工程有什么关系? 软件是由多人合作完成的,不同人员的工作相互有依赖关系,所以个人技术是会影响整个软件开发的过程,个人技术主要是软件开发过程中的细节问题。在开发出软 件后,必须要经过测试才算是完成了软件,这就需要一个好的单元测试的标准——1、单元测试应该在最低的功能/参数上验证程序的正确性。 2、单元测试必须由最 熟悉代码的人(程序的作者)来写。 3、单元测试过后,机器状态保持不变。 4、单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)。 5、单元测试应该产生可重复、一致的结果。 6、独立性-单元测试的运行/通过/失败/不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。 7、单元测试应该覆盖所有代码路径。 8、单元测试应该集成到自动测试的框架中。 9

软件测试基本概念1

断了今生、忘了曾经 提交于 2020-02-21 11:44:27
1.软件测试的重要性 没有经过软件测试或测试覆盖不全面的软件产品是不健全、存在风险、质量得不到保证的。 存在问题的软件导致的后果,小到软件功能无法使用进而影响人们的日常生活;严重一些的会影响社会的秩序,造成财产的损失;致命的甚至会危及到人们的生命安全。 2.软件测试的定义 2.1Myers认为: 软件测试是为了发现错误而执行程序的过程 *1979 年 G.J.Myers 出版了一本《软件测试之艺术》现在仍被证明为经典的著作* 2.2 IEEE: 使用人工或者工具(视频演示)测试某个系统的过程,其目的在检验它是否满足需求或者是弄清预期结果与是合计结果之间的差别 电气电子工程师协会( IEEE,全称是Institute of Electrical and Electronics Engineers)是一个国际性的电子技术与信息科学工程师的协会,是目前全球最大的非营利性专业技术学会 2.3从软件质量保证的角度看: 1.软件测试是一种重要的软件质量保证活动。 2.测试过程中的活动包括“分析”软件和“运行”软件。 3.也有人认为软件测试就是在软件投入运行前,对软件需求规格、设计规格说明和编码的最终复审,是软件质量保证的关键步骤 3.软件测试的原则 1 所有测试都应基于用户需求 2 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件 3 穷举测试是不可能的 4 缺陷发现的越早

《自拍教程》自动化软件测试

六月ゝ 毕业季﹏ 提交于 2020-02-19 21:46:33
软件测试: 针对软件产品(App端,Web端,终端产品等), 通过一系列的测试用例,通过手动或者自动的方式, 输入到软件产品中去, 验证软件产品是否符合需求定义(预期结果)的过程。 即通过接口输入,验证输出的过程 。 手动软件测试 就是手动输入数据,人为手动操作输入。 人为手动地对测试结果与预期结果进行核验对比的过程。 自动化软件测试 就是 模拟 人为手工操作, 自动进行的输入并自动进行输出结果验证的过程。 相对与手动测试,其主要特点是可以自动化输入与输出验证, 然后大批量操作,长时间等特点。 狭义自动化测试概念 只在测试用例执行过程中, 就是将本来应该手动执行的用例,用自动化的方式来执行。 广义的自动化测试概念 其主要注重自动化数据处理,贯穿于测试的所有过程,包括测试环境搭建阶段, 测试用例设计阶段,测试用例执行阶段,测试用例结果分析阶段,Bug处理, 测试报告等环节。 都可以利用自动化处理,来提供测试效率。 本自拍教程,也主要是介绍如何将python运营到我们测试的各个环节去, 尽量实现批量处理运行,慢慢地往半自动化,再慢慢地考虑全自动化测试。 更多更好的原创文章,请到: www.zipython.com 原文链接: https://www.zipython.com/#/detail?id=fe3a5e9087f64cf591e1d2b51f1dd109 来源: https:/

软件测试总结

这一生的挚爱 提交于 2020-02-18 12:30:23
测试概述 1. lazytest 软件测试概述 https://www.cnblogs.com/lazytest/p/5545571.html 2. Cacra 软件测试概述 https://blog.csdn.net/u014465934/article/details/80931508 3. 软件测试 摘自 wiki 单元测试 1. 我是一名老菜鸟 单元测试概述 2. 四班&田晨阳 单元测试概述 集成测试 1. 印记嘟嘟 软件测试之-集成测试 系统测试 1. zhang_xiaoyi https://blog.csdn.net/zhang_xiaoyi/article/details/79097114 验收测试 1. 飘走的我 https://blog.csdn.net/qq_33642117/article/details/54341831 回归测试 1. zhusongziye https://blog.csdn.net/zhusongziye/article/details/80383878 来源: CSDN 作者: lynchyueliu 链接: https://blog.csdn.net/lynchyueliu/article/details/104370465

软件测试理论

吃可爱长大的小学妹 提交于 2020-02-16 01:11:36
软件测试分类: 按测试阶段划分:单元测试(模块测试),集成测试,系统测试 按是否覆盖源代码:白盒测试,黑盒测试 按是否运行:静态测试,动态测试 其他:回归测试,冒烟测试,随机测试,验收测试 按是否自动化:人工测试,自动化测试 黑盒测试:分为功能测试(逻辑功能测试/界面测试/易用性测试/安装测试/兼容性测试),性能测试(一般性能测试/稳定性测试/负载测试/压力测试) 验收测试:阿尔法测试(内部测试版),贝塔测试(外测,用户测试),伽马测试(与正式版几乎相同) v模型:需求分析,概要设计,详细设计,编码,单元测试,集成测试,系统测试,验收测试 优点:清楚的标识了开发和测试的各个阶段;自上而下逐步求精,每个阶段分工明确,便于整体项目把控。 缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时修改。实际工作中,需求经常变化,导致v模型步骤,反复执行,返工量很大,灵活度较低。 改良:每个步骤进行小型的迭代工作。 w模型:开发伴随整个开发周期,需求和设计同样需要测试;更早的介入测试,可以发现初期的缺陷,修复成本低。 来源: CSDN 作者: 只不停 链接: https://blog.csdn.net/weixin_42082088/article/details/104308497

【零基础开始学习软件测试】测试的定义是什么、测试目的是什么、测试对象是哪些?什么是软件测试?

浪子不回头ぞ 提交于 2020-02-09 18:10:12
说实话,这些概念性的文字在实际工作中并不能用到,工作了1年以上的同学也不需要了解这些东西,那么这些概念性文字有什么作用呢? 1.可以形成文档,比如新人入职、离职交接等。 2.培训,无论是公司内部、还是专职讲师,都需要了解这些概念的。 3.面试,笔试等。无论面试别人,还是被面试。 目录 1.软件测试的定义 2.软件测试的目的 3.软件测试的对象 4.软件质量 功能性 可靠性 易用性 效率 维护性 可移植性 5.初级测试工程师的主要工作 6.总结 1.软件测试的定义 什么是软件测试,软件测试的定义是什么。 软件测试,是通过手工、自动化等手段,来检测软件产品中的错误和缺陷的过程。 对于刚开始进入测试行业的同学们,基本上都是执行测试用例、发现Bug、提交Bug。 2.软件测试的目的 根据软件测试的定义,可以知道软件测试的目的: 寻找缺陷,寻找Bug。 工作中发现缺陷并提交,然后跟进Bug,直到被修改。 1) 以最少的人力、物力和时间,找出软件中潜在的各种错误和缺陷。 2) 通过修复各种错误和缺陷,确保软件质量。避免软件发布后,由于错误和缺陷而造成的影响。 3) 测试过程中的一些信息,要定期进行总结复盘,防止在后续项目开发和测试,重犯错误。 4) 采用更加科学高效的测试管理方法,提高软件测试效率和软件质量。 3.软件测试的对象 软件测试的对象不止是软件。 包括程序、数据和文档等等都是测试对象

《构建之法》阅读笔记六

房东的猫 提交于 2020-02-09 08:51:14
第十三章:软件测试    Bug即软件的缺陷,可以分为三种:症状、程序错误、根本原因。   找出bug则需使用测试,按测试设计的方法分类分为黑箱测试(即行为测试设计)和白箱(玻璃箱)测试(即使用软件的内部结构和知识来选择测试数据和具体的测试方法);   按测试目的分为功能测试和非功能测试(即测试软件的服务质量);   测试方法分为单元测试、代码覆盖率测试、构建验证测试、验收测试、“探索式”测试、回归测试、场景/集成/系统测试、伙伴测试、效能测试、压力测试、内部/外部测试、易用性测试、“小强”大扫荡。其中使用最多的是单元测试,既每次做完软件,并进行过自我复审,然后进行单元测试。 第十四章:质量保障   软件质量=程序质量+软件工程质量   软件工程的质量体现在:软件开发过程的可见性、风险控制、软件内部模块,项目中间阶段的交付质量,项目管理工具的因素、开发成本的控制、内部质量指标的完成。软件的质量不能仅仅依靠测试人员去保证,编程人员在进行编程时要尽力保证自己代码的质量以及各模块连接之间的稳定性。 第十五章:稳定和发布阶段   在软件发布后,软件可能会发有各种各样的bug,所以软件团队中就需要以各个角色为基础成立一个会诊小组,可以对bug进行修复,也可以不修复或者推迟修复。 第十六章:IT行业的创新   每个人都可以创新

Nunit单元测试基础知识

隐身守侯 提交于 2020-02-09 08:39:36
推行单元测试的目的: 1、 减少BUG提高项目的质量 2、 养成良好的编码习惯,提高开发人员编码水平 要测什么What? 最小的可测试软件元素(单元) , 包括单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为 . 由于开发方式的不同,单元测试一般划分方法如下: 1. 面向对象的软件开发:以 Class( 类 ) 作为测试的最小单元。以方法的内部结构作为测试的重点。 2. 结构化的软件开发:以模块(函数、过程)作为测试的最小单元。 如何测试 How? 白盒测试方法:测试单元的内部结构, Nunit Nmock 黑盒测试方法:测试单元的功能和可观测的行为 《通用测试用例》 步骤: 一、 如何设计单元测试 需要弄清楚被测试代码实现的功能和相应的逻辑关系; If…else… Switch..case… While... 同时还要考虑到测试的输入内容,以及返回的结果; 用例的设计要保证面面俱到,是否覆盖了每一条路径。 而如何做到面面俱到这就需要恶我们对每个函数进行详细的分析,将分析和讨论的结果归入相关的测试库中。初期工作的进度慢并不要紧,只要能做得很详细对于以后的测试还是有很大的帮助。或许以后的测试中,只要直接调用原来写过的测试类库,修改部分简单的语句就可以实现新模块的单元测试了 [TestFixture] 表示:类包含了测试代码(这个特性可以被继承)。这个类必须是 公有 的

单元测试之道-使用NUnit(c#)

空扰寡人 提交于 2020-02-09 08:30:40
这几天,在网上找了些关于单元测试的使用说明(NUnit).由于初学,就拿自己的测试用例来说说吧. 1. TDD的简介 首先什么是TDD呢?Kent Beck在他的<<测试驱动开发 >>(Addison-Wesley Professional,2003)一书中,使用下面2个原则来定义TDD: · 除非你有一个失败的自动测试,永远不要写一单行代码. · 阻止重复 我想第一个原则是显而易见的.在没有失败的自动测试下就不要写代码.因为测试是嵌入在代码必须满足的需求中.如果没有需求,就没有必要实现任何东西.所以这个原则阻止我们去实现那些没有测试和在解决方案中不需要的功能. 第二个原则说明了在一个程序中,不应该包含重复的代码.如果代码重复,我想这就是不好的软件设计的象征.随着时间的流逝,它会对程序造成不一致的问题,并且使代码变非常混乱 ,因为我们时常不会记得重复代码的位置.如果发现代码重复,我想我们应该立即删除代码重复.其实这就涉及到重构了.在这里我就不多讲了. 一般来说,测试分为2种类型,一是程序员自己的测试,另外一种是客户的测试.关于客户测试,我推荐一个FIT的框架,非常不错。在这里,我们讲的TDD就是程序员测试.那么什么是程序员测试呢?我认为就是我们常说的单元测试.既然是单元测试,在.NET里势必会用到某些工具,目前最著名恐怕就是我即将介绍的NUnit了, 2.NUnit的介绍