软件工程

【测试基础】软件测试用例基本概念

喜夏-厌秋 提交于 2019-12-09 15:56:11
测试过程中遇到的问题 不知道是否较全面的测试了所有功能 测试的覆盖率无法衡量 对新版本的重复测试很难实施 存在大量冗余测试影响测试效率 容易出现漏测,重复测试 测试人员没有明确的工作目标,工作效率低 软件测试用例的概念 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 测试用例一般可以简单划分为:场景测试用例(简称“测试用例”)和基本测试用例(或称为“公用测试用例”) 设计测试用例的方法 等价类 边界值 场景法 错误推断法 因果图 状态图 正交排列 路径覆盖 设计测试用例的优缺点 优点 有效性 完整性 组织性 缺点 测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行所花费的时间还多 随着测试用例的不断积累,所带来的维护成本也会越来越高,维护难度也会逐渐增加 测试用例的执行效率低 需求的变更导致写的测试用例变的一文不值 测试用例的要素 测试用例的组成元素及作用 用例编号:该用例在整个测试套件中的编号 所属模块:测试用例所对应的测试模块 用例标题:清晰表达出该测试用例是测试什么问题的(包含测试目标/测试对象) 操作步骤:执行测试时的步骤 测试数据:测试用例执行时所需要使用的数据 预期结果:根据所输入的测试数据,期望得到怎么样的结果 实际结果:根据所输入的测试数据,实际得到的测试结果

【课程总结】

别来无恙 提交于 2019-12-09 14:12:36
一、简介 这个作业属于哪个课程 https://www.cnblogs.com/harry240/p/11524252.html 这个作业的要求在哪 https://www.cnblogs.com/harry240/p/11524252.html 团队名称 六扇门 二、总结 (1)请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。 要求:请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。 链接到以前提问题的博客 尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的 是否产生了新的问题?请提出。 第一次博客作业链接 对于曾经提的问题的回答 现在的回答:曾经自己认为书中提到的“大作业”无新意。在结束本门课程后,自己也感受到了,本门课程更加注重的是软件过程,其次才是创意和技术。本门课程也应该是旨在让学生感受团队的工作流程。 这个问题提出于自己实际结对编程之前。在结对编程后自己有了更加深刻的体验。首先,结对编程的两人应该是技术相近或者有一定的差距,但是这个差距也应该是在可以接受的范围内的。否则一个技术很强的人和一个刚入门的进行结对编程也毫无意义。因此结对编程的应该是有一定的前提的。 这个问题,其实没有什么意义。无论程序员个人的性格是如何。团队总是要大于个人的,因此团队对于个人指出的问题应该是需要及时的听取和改正的。 对于这个问题

软件工程作业2

吃可爱长大的小学妹 提交于 2019-12-09 09:42:14
1、Fork 码云项目 2.码云项目地址 https://gitee.com/hellolv/PersonalProject-Java 3.PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 30 30 · Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 30 50 Development 开发 650 950 · Analysis 需求分析 (包括学习新技术) 50 60 · Design Spec 生成设计文档 20 30 · Design Review 设计复审 40 50 · Coding Standard 代码规范 10 15 · Design 具体设计 45 85 · Coding 具体编码 120 170 · Code Review 代码复审 30 25 · Test 测试(自我测试,修改代码,提交修改) 60 240 Reporting 报告 60 80 · 测试报告 15 10 · 计算工作量 5 5 · 并提出过程改进计划 10 15 4.解题思路 1.确定相关编程语言:Java 2.基本思路: 根据题目的要求,首先需要在对已经建好或导入的文档进行读取,这里就需要有文件读取类,对文件中的所有进行读取。 文件读取之后,将相应的字符、单词、行数等进行计数,根据题目中要求进行计算。

软工基础个人总结

纵饮孤独 提交于 2019-12-08 11:53:31
所属课程 软件工程基础 作业要求 团队最后一次作业:总结 团队名称 我带你们打 作业目标 在课程结束的最后对之前的内容进行回顾并总结 回顾第一次软件工程课 一开始选择这门这门课程时,感觉“软件工程”是会将各种各样高端的技术传授一下,在循序渐进中像其他的课一样去学习专业知识。 没想到经过一个学期竟然大部分是在自学,课上讲基础原理及实用工具介绍。课下与组建团队中的小伙伴一起自学交流,进行软件项目开发的学习。 提出的问题: 第一课后作业要求,把课本《构建之法》预习、浏览一遍。当时对不懂之处提出了一些自己的问题: 博客 现在的看法: P22 个人技术与流程——单元测试 学完c++再看代码的化好了许多,对于之前只能用c语言编译的程序也能做出相应的改善了。 学完单元测试在课上了解了它对于软件工程的重要性:不但会使你的工作完成得更轻松。而且会令你的设计会变得更好,甚至大大减少花在调试上面的时间可提高代码质量,减少bug。 在软件工程中越是优秀的工程师花在文档编写、测试工作上的时间也要比编码多得多。 P117 敏捷流程 敏捷流程比以往的模型更加的灵活多变,方便更加接近用户的需求。不就提升了效率更是适应了用户需求,敏捷开发的过程有着更强的适应性而不是预设性。 P374 IT行业的创新 好的想法会赢:书上说好的想法不一定会赢,但我认为它一定会有它的优势所在。好的想法确实不一定会赢,想法是好

软件工程最后一次作业,总结

若如初见. 提交于 2019-12-08 11:45:30
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation 这个作业要求在哪里 edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation/homework/10119 团队名称 肥人队 这个作业的目标 总结个人在学期对于学习软件工程的收获和一些获得的具体能力 第一次作业链接: https://www.cnblogs.com/bokegg/p/11511262.html 问题回顾与解答 测试的角色需要独立吗? 测试的角色应该是各个独立的,但是如果需要测试的项目比较大的话。需要多人协作进行,分块进行测试, 这样节省测试花费的时间。还有重要的就是需要选择合适的测试方式进行。这是在上课时了解后来思考总结出的。 团队讨论要带着感情去讨论吗? 团队讨论不该带有个人感情去讨论,应当做到就事论事,在此刻面临的问题大家提出自己最好的看法与解决方法,避免花费不必要的时间。这需要长期合作形成良好的他讨论习惯,也需要每个人都克制内心的一些情感。无论好的坏的。 面对长期任务如何规划好时间? 面对长期任务在前期应该做好相应的规划,不一定非要精确的分秒。但是我们必须有一个最终的限定时间,就是自己最艰难可以接受的时间

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

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

团队软件工程总结

ε祈祈猫儿з 提交于 2019-12-08 10:12:29
团队软件工程总结 这个作业属于哪个课程 软件工程基础 作业要求 作业要求 团队名称 无所谓错与队 作业目标 课程总结 github地址 github地址 队员列表以及博客链接 学号 姓名 博客链接 201831061218 刘H (组长) https://www.cnblogs.com/-believe-me/p/12002792.html 201831061217 刘DQ (组员) https://www.cnblogs.com/Eldq/p/12004138.html 201831061219 刘QK(组员) https://www.cnblogs.com/lqk0216/p/12004135.html 201831061220 刘R(组员) https://www.cnblogs.com/Mile782/p/12004652.html 201831061216 李YH (组员) https://www.cnblogs.com/TracerLyh/p/12004149.html 201831061215 李ZP (组员) https://www.cnblogs.com/skylzp/p/12004107.html 来源: https://www.cnblogs.com/-believe-me/p/12004682.html

软件测试中测试用例的规范和设计

倾然丶 夕夏残阳落幕 提交于 2019-12-08 01:22:43
二、设计测试用例 什么样的测试用例算好的测试用例? 1、不要以为“发现了软件缺陷的测试用例就是好的用例” 2、也不要以为“发现软件缺陷可能性大的测试用例就是好用例” 3、更不要以为““发现至今未被发现的软件缺陷的测试用例就是好用例” “好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关。 “好的”测试用例必须具备哪些特征? 1. 整体完备性 :“好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。 2. 等价类划分的准确性 :指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。 3. 等价类集合的完备性 :需要保证所有可能的边界值和边界条件都已经正确识别。 边界值分析 是对等价类划分的补充,你从工程实践经验中可以发现,大量的错误发生在输入输出的边界值上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。 错误推测方法 是指基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,当然还有个人的能力。 来源: CSDN 作者: wjw290313631 链接: https://blog.csdn.net/weixin

期末总结

橙三吉。 提交于 2019-12-07 23:39:28
第一次作业提出的问题 我在第一次的博客中提出了以下几个问题: ① 团队问题,因队员能力差异,分配的任务难度较高,最终每个人的完成情况差异也很大,甚至出现不得不由某些队员完成多个模块。 ② 有客户需求才有软件开发,每一个软件的开发都有其商业价值,那么当一个软件其商业价值很小,客户需求量很少的时候,那么这个软件还有开发的必要吗? ③ 什么样的软件工程师才算的上是高级优秀的工程师? ④ 创新者并非冒险家。 对自己问题的一些解答 1.团队问题,每个人虽然能力不同,不同的人能力差异可能很大,但是,每个人的思想也是不同的,每个队员都有权力提出自己的理解与建议,极好的方法或者算法未必都出自能力强的人,这是我从结对编程中深刻get到的。我们不能片面的去认识一个人,对方总有你意想不到的idea。 2.软件价值需要我们全方面的进行评估,商业价值,开发前景,市场潜力,实用价值等等。新大陆之所以是新的,是因为一开始没有人发现。每一个软件都有开发前景,商业价值低的未必不值得开发。 3.什么样的软件工程师才算得上是高级、优秀?只是达到用户的需求才称得上吗?不!用户的需求未必是合理的,就比如,用户不能要求软件工程师去解决一个机械类的问题。优秀的软件工程师应该要做到,面对用户提出的要求,能够将要求化解,化整为零,分成一个个模块,并且使每一个模块的编程难度较低。当然个人实力一定是强硬的

软件工程基础最后第一次作业 总结

末鹿安然 提交于 2019-12-07 22:38:27
最后第一次作业 总结 所属课程 [作业链接] https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation 作业要求 [作业要求] https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation/homework/10119 团队名称 Onecent 作业目标 回顾总结本学期所学到的内容,解决开课时的疑问 GitHub地址 https://github.com/simple5960/software-assignment 一、问题解决 【第一次博客地址 https://www.cnblogs.com/ningningning/p/11517139.html 】 1、敏捷对团队自我管理的要求为什么这么高? 敏捷开发讲究的是团队的自我改进,讲究的是通过自我管理达到团队整体效能的提升。 2、风险管理如何做到高效、准确? 识别和分析风险并不是软件风险管理的最终目标。针对所发现的每一个软件风险,尤其是高危险度的软件风险,风险管理还需要对它们进行有效的控制,包括:(1) 制定风险管理计划:针对各个重要风险制定风险管理计划,并确保它们的一致性;(2)化解风险:执行风险管理计划,以缓解或消除风险;(3)监控风险