【软件构造】软件构造复习总结1-第一、二章及6.5测试与测试优先部分

    技术2022-08-11  82

    【软件构造】软件构造复习总结1-第一、二章及6.5测试与测试优先部分

    前两章及6.5理论居多,复习了软件的多维视图,质量指标,如何测试,软件配置管理SCM与版本控制系统VCS,Git的相关知识及指令。

    第一章: 一、软件的多维视图: 按阶段分:build和run-time,构造和运行视图。 按动态性分:moment和period,时刻和阶段视图。 按构造对象的层次划分:code和component,代码和构建视图。 1.build-time: Code-level:源代码,接口、类、方法、AST(将源代码变成一棵树并进行操作)等。 Component-level:程序组件结构,文件、包,库,静态链接等。 Moment view:源代码和组件在特定时间形态。 Period view:源代码和组件随时间的变化。(配置项(SCI)和版本) 2.run-time: Code-level:可执行程序在内存中如何呈现。(Snapshot(快照图),Memory dump(内存信息转储,如任务管理器),Execution trace(执行跟踪,如日志)可呈现) Component-level:如何将软件部署到物理环境中。包,库,动态链接(运行时将库加载到内存并与程序链接),组件的配置。 Moment view:程序在特定时间的行为。 Period view:程序在硬件环境随时间如何变化,可用Event log(事件日志)记录。 重点掌握: 二、软件的质量: 1.外部因素:正确性最重要,健壮性与正确性互补。 2.内部因素:圈复杂度,高内聚,低耦合->可读性,复用性,便于维护。 耦合度:模块之间的交互。 内聚度:模块独立性。 3.本课程重点(后面复习时可进行参考总结): 复用性部分: 可维护性和适应性部分: 健壮性部分: 第六章的测试与测试优先6-5部分: 1.编写代码前先编写测试用例:a.写方法规格说明(spec(对函数行为的描述,·参数类型•返回值类型•约束和它们之间的关系。))->b.写符合spec的测试->c.写代码进行测试 2.Junit: setUp()或@Before:准备测试,完成初始化; tearDown()或@After:清理测试环境。 3.黑盒测试方法: 1)通过等价类划分(降低测试的数量): 小练习: 选C,由spec可知要反转字符串,首先text说非空,就要有text.length()=0会发生什么,还有要测试字符串反转的是奇数还是偶数,如果是奇数,那中间的则不需要反转,是需要特殊处理的地方,可能出现bug,所以也要测试。 2)划分等价类的时候加入边界:如0是正数,负数的边界。 笛卡尔积(多个维度上多个取值):全覆盖,测试用例多。 覆盖每个取值:测试用例少,覆盖度低。 4.覆盖度: a.语句覆盖:顾名思义。 b.分支覆盖:if,while,switch,for等分支是否全部在测试中执行。 c.条件覆盖:对于分支里的条件是否全部执行,如if(a>0),这里的a>0。 d.路径覆盖:各种分支之间的结合是否都被执行。 5.Testing Strategy:记录测试的思路策略。如: 划分的等价类,以及理由。

    第二章: 一、软件生命周期与配置管理 1.SCM(软件配置管理):追踪和控制软件的变化。 基本单元:SCI(软件配置项),如源代码,文档等。SCI会随时间一起更新。 CMDB(配置管理数据库):存储软件的各配置项随时间发生变化的信息+基线 2.VCS(版本控制系统): a.本地VCS。 b.集中式VCS(CVS,SVN等):仓库存储于独立的服务器,支持多开发者之间的协作。 c.分布式VCS(Git):仓库存储于独立的服务器+每个开发者的本地机器。 3.Git: a.不发生变化的文件不反复存储,存储发生变化的文件(而非代码行)。 b.关于git指令: git push,git pull向远程仓库提交或从远程仓库接收 git checkout -b m 创建并切换到分支m git commit 向这个分支提交一个文件 git checkout master 切换回master git merge m 将m分支和master合并 git branch -d m 删除m分支 c.实验时的提交过程: git init git add * git commit -m “lab” git remote add origin https://… git push -u origin master 创建分支(不合并): git checkout -b 314change git add * git commit -m “314change” git checkout master 二、软件构造的过程、系统和工具 1.IDE(集成开发环境):如eclipse 2.BULID工具Make, Ant, Maven, Gradle, Eclipse等

    /***********************************************************************************/ 以上即为软件构造复习总结1-第一、二章及6.5测试与测试优先部分。

    Processed: 0.019, SQL: 9