考前知识点整理

1.源code→文件→包(组件子系统)

2.静态链接:库背靠背巾代码形成整体

动态链接:构建时仅做出标记,需提供库文件

3.外部质量因素:可被用户、使用库的程序员感知

内部质量因素:软件产品质量,影响开发者

内部决定外部因素

4.外部质量因素:

正确性:按照规约进行,最重要的指标

健壮性:出现异常情况不要崩溃

可扩展性:对规约修改是否容易

可复用性

兼容性:不同系统间不冲突(库不冲突)

性能:在正确性基础上

可移植性:不同的技术环境之间是否可以移植

易用性

功能性:不适宜的趋势

及时性:及时新版本

5.内部质量因素

源code:loc(代码行数)、逻辑复杂度

结构方面:低耦合(内部变量联系低),高内聚(类之间的联系紧密),质量更高

代码可读性

6.测试:发现不正确,调试:消除不正确

测试无法证明系统内不存在错误

7.测试分类:单元→集成→系统→验收测试

一旦程序被修改,重新执行之前的所有测试(回到单元)

8.静态测试:编码阶段有程序员或者编译器进行的检查

动态测试:通过测试用例实际执行(可能在编写完成前对特定节做出)

9.白盒测试:内部代码可见

黑盒测试:对程序外部行为的测试(输入输出)

10.编写测试过程:先写规约,在写测试用例

TDD:需求转化为实际的测试用例

11.等价类划分:对输入约束满足/违反的数据集合

考虑输入限制数值范围?指明特定值?计算方案如何?

边界值分析:0、max、-max、首个元素、最后一个元素

(实际验证时,只需验证规约规定的情况,对规约未规定的输入不需验证,输出什么都可以)

12.覆盖方式

笛卡尔积:全覆盖

每个取值最少覆盖一次

13.白盒测试:根据执行路径设计测试用例

基本路径测试:对最基本的路径测试(最简单,循环只有一次等)

测试效果:路径覆盖>分支覆盖>语句覆盖(每条可能路径都被覆盖;每个条件的可能结果至少出现一次,判断本身的结果至少出现一次;路径至少一次)

测试代价:同上

14.测试策略:显示记录

开头需写出测试逻辑

方法中需写覆盖情况

15.分析工具

动态检查(需执行代码):junit(单元测试)、eclemma(测试覆盖率)、visualVM、AppPerfect

静态检查:spotbugs、PMD、CheckStyle

16.SCM:软件配置管理

sci:配置项,软件中发生变生变化的基本单元(文件),形态:已修改,已暂存,已提交

head:程序员正在工作的版本

17.

git:分布式版本控制系统(分布式配置管理系统√)

暂存区:.git目录中的一个文件,隔离工作目录和git仓库

  • git init - 初始化仓库。
  • git add . - 添加文件到暂存区。
  • git commit - 将暂存区内容添加到仓库中。
  • git clone

    拷贝一份远程仓库,也就是下载一个项目。(从远程仓库到工作环境)

  • git rm将文件从暂存区和工作区中删除。
    git mv移动或重命名工作区文件。
  • git diff比较文件的不同,即暂存区和工作区的差异。
  • git remote远程仓库操作
    git fetch从远程获取代码库(到本地仓库中)
    git pull下载远程代码并合并(到工作区)
    git push上传远程代码并合并(从本地仓库到remote 仓库)
  • 对象图:子指向父亲
    • 一个commit可以指向零个/一个/两个父亲
    • 多个commit可以指向一个父亲
    • head指向当前工作的commit
  • blob:内容相同的文件,只会有一个blob,多个commit tree指向其
  • 文件变化,两个版本指向不同的blob
  • git存储发生变化的文件(而不是代码行),不变化的文件不重复存储

18.数据类型

对象类型具有“身份”,在堆中分配内存(包括String)

基本类型在栈中分配内存

object是所有对象类型的父亲,所有类均有父类(除了object),若未写明,默认extend object

19.运行检查

静态:编译阶段,检查类型

动态:运行阶段,检查值

20.immutable?

改变变量:变量指向另外存储空间

改变变量的值:改变存储空间内存储的值

引用不变:对象不可改变指向的空间,若改变,静态检查不通过(但是指向空间内的值可变!)

final:类——无法创建子类,方法——无法被子类重写,变量——无法改变其引用

string:不可变类型,创建后不可改变,若改变则新创建空间写入改变后的值,然后指向新空间

stringbuilder:可变类型,可使用append改变

不可变——产生临时拷贝,但是更“安全”不怕被意外修改

21:snapshot代码快照

基本类型:箭头末端写值

对象类型:椭圆,写类名,可包含内部属性。可变对象单线,不可变对象双线圆

引用:可变单线,不可变双线

list:长度可变序列

set《类型》:随机指,无顺序,不会重复

map《key,valve》:一个一个的双格,第一格指key,第二格指valve

迭代器:havenext——返回是否有下一个数据(observer方法),next——返回下一个数据并且index++

不可变:基本类型、封装对象类型,biginteger、bigdecimal、ADT

可变:date、arrarlist、hashmap

wrapper包装器包装后如List《String》 listcopy=Collections.unmodifiablelist(list)

listcopy为immutable

static、final引用不可变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值