Java的测试规范
2008-01-05 10:46:32 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔庣划顖炲Φ閸曨垰绠抽悗锝庝簽娴犻箖姊洪棃娑欐悙閻庢矮鍗抽悰顕€宕堕澶嬫櫖濠殿噯绲剧€笛囧箲閸ヮ剙钃熼柣鏂挎憸閻熷綊鏌涢…鎴濇灈妞ゎ剙鐗嗛—鍐Χ鎼粹€茬凹缂備緡鍠楅幐鎼佹偩閻戣棄纭€闁绘劕绉靛Λ鍐春閳ь剚銇勯幒鎴濐伀鐎规挷绀侀埞鎴︽偐閹绘帩浼€缂佹儳褰炵划娆撳蓟濞戞矮娌柟瑙勫姇椤ユ繈姊洪柅鐐茶嫰婢т即鏌熼搹顐e磳闁挎繄鍋涢埞鎴犫偓锝庘偓顓涙櫊閺屽秵娼幏灞藉帯闂佹眹鍊曢幊鎰閹惧瓨濯撮柛鎾村絻閸撳崬顪冮妶鍡楃仸闁荤啿鏅涢悾鐑藉Ψ瑜夐崑鎾绘晲鎼粹剝鐏嶉梺缁樻尰濞叉﹢濡甸崟顖氱疀闂傚牊绋愮花鑲╃磽娴h棄鐓愭慨妯稿妿濡叉劙骞樼拠鑼槰闂佸啿鎼崐濠毸囬弶搴撴斀妞ゆ梻銆嬪銉︺亜椤撶偛妲婚柣锝囧厴楠炴帡骞嬮弮鈧悗濠氭⒑鐟欏嫭鍎楅柛妯衡偓鐔插徍濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柍閿嬪灦閵囧嫰骞掗崱妞惧缂傚倷绀侀ˇ閬嶅极婵犳氨宓侀柛鈩冪⊕閸婄兘鏌涘┑鍡楊伀妞ゆ梹鍔曢埞鎴︽倻閸モ晝校闂佸憡鎸婚悷锔界┍婵犲洦鍤冮柍鍝勫暟閿涙粓姊鸿ぐ鎺戜喊闁告瑥楠搁埢鎾斥堪閸喓鍘搁柣蹇曞仧绾爼宕戦幘璇茬疀濞达絽鎲¢崐顖炴⒑绾懎浜归悶娑栧劦閸┾偓妞ゆ帒鍟惃娲煛娴e湱澧柍瑙勫灴閹瑩寮堕幋鐘辨闂備礁婀辨灙闁硅姤绮庨崚鎺楀籍閸喎浠虹紓浣割儓椤曟娊鏁冮崒娑氬幈闂佸搫娲㈤崝宀勬倶閻樼粯鐓曢柟鑸妼娴滄儳鈹戦敍鍕杭闁稿﹥鐗犲畷婵嬫晝閳ь剟鈥﹂崸妤€鐒垫い鎺嶈兌缁犲墽鈧厜鍋撳┑鐘辩窔閸嬫鈹戦纭烽練婵炲拑绲垮Σ鎰板箳閹冲磭鍠撻幏鐘绘嚑閼稿灚姣愰梻鍌氬€烽懗鑸电仚濠电偛顕崗妯侯嚕椤愩倖瀚氱€瑰壊鍠栧▓銊︾節閻㈤潧校缁炬澘绉瑰鏌ュ箵閹烘繄鍞甸柣鐘烘鐏忋劌顔忛妷褉鍋撶憴鍕碍婵☆偅绻傞~蹇涙惞閸︻厾锛滃┑鈽嗗灠閹碱偊锝炲鍥╃=濞达綁顥撻崝宥夋煙缁嬪灝鏆遍柣锝囧厴楠炲鏁冮埀顒傜不婵犳碍鍋i柛銉戝啰楠囬悗瑙勬尭缁夋挳鈥旈崘顔嘉ч柛鈩兠棄宥囩磽娴e壊鍎愰柛銊ュ缁顓兼径瀣偓閿嬨亜閹哄秶顦︾€殿喖鐏濋埞鎴﹀煡閸℃浠梺鍛婎焼閸曨収娲告俊銈忕到閸燁垶宕愰崹顐e弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

核心提示: 1、未使用(死)代码 ,存在未使用的私有静态字段 ,Java的测试规范,带有不必要的修饰符的借口 ,目前没有使用的私有字段 ,for循环中没有包含布尔条件 ,存在的clone()方法没有调用super.clone() ,未使用的变量 ,无需的参数
1、未使用(死)代码
。存在未使用的私有静态字段
。带有不必要的修饰符的借口
。目前没有使用的私有字段
。未使用的变量
。无需的参数
。显示导入的java.lang包
。目前没有使用的私有方法
2、编码标准
。一行语句中声明了多种类型的变量
。物理位置不在一起的同名小组成员 。
。从一个抽象类库中的构造器调用的抽象方法
。包括大量case语句的switch语句
。除了第一个之外的main()函数
。直接弹出的Exception类库
。catch语句中Exception或者RuntimeException
。直接弹出的Error
。没有在接口中定义的常量
。长整数应该使用‘L’代替小写字母‘l’
3、初始化
。没有显式初始化的静态字段
。没有显式初始化每个数据成员的构造器
。编译代码中可能的漏洞
。存在错误的case的switch语句
。程序体为空的for语句
。程序体为空的if语句
。需要重载的方法
。应该使用等号代替==
。程序体为空的else语句
。强制转换为较低精度的主要数据类型
。在switch子句中的文本标识
。if条件中的变量赋值
。缺少default子句中的switch语句
。存在嵌套赋值
。比较浮点数
。循环控制变量在循环内部被忽然改变
。方法参数名称和类成员名称冲突
。可能与字符串串联混淆的+操作符
4、面向对象编程
。继续的静态成员函数被隐藏
。可能嵌套过深的类库
。继续的实例变量被隐藏
。被重载PRivate方法
。内部的类库不可见或外部的类库不相关
。某个实列变量为public或在package中
。没有在一开始列出的public或package方法和数据
。不是abstract或实现比较通常的接口
。命名惯例
。一个类名称不符合标准
。一个接口名称不符合标准
。一个列外名称不符合标准
。一种方法名称不符合标准
。一个静态字段名称不符合标准
。一个静态方法名称不符合标准
。一种方法参数名称不符合标准
。一个实列字段不符合标准
。一个本地变量名称不符合标准
。一个最终静态字段中包含小写字母
。一个返回布尔值的方法使用"is"或者"has"前缀
。一个接口成员字段包含小写字母
。使用一个非惯例的变量名称
5、优化
。一个finally模块中存在未关闭的流
。使用一个for循环代替System.arrarycopy()拷贝数组
。存在没有必要的instanceof
。存在没有必要的强制变量类型转换
。可以使用一个缩写的赋值语句
。常量字符串使用StringBuffer代替String
。循环条件过于复杂
。取反操作符使用过于频繁
6、回收
。finalize()没有调用super.finally()
。最终方法的最后模块没有调用super.finalize()
。finalize()被显示调用
。在将主要类型转换成String时,使用了不必要的临时变量
。在应该使用long[]的位置使用了Date[]
7、javadoc注释
。误用了Javadoc标签
。Javadoc和普通注释之间区分不明显
8、线程
。使用synchronized,降低了性能
9、全局静态分析
。过度访问package-private字段
。过度访问package-private方法
。过度访问package-private类库
。过度访问public/protected字段
。过度访问public/protected方法
。过度访问public/protected类库
。没有使用全局package-private字段
。没有使用全局package-private方法
。没有使用全局package-private类库
。没有使用全局public/protected字段
。没有使用全局public/protected方法
。没有使用全局public/protected类库
10、企业版java beans(EJB)
。bean类库没有定义成为public
。bean类库被错误定义成为abstract
。bean类库被错误定义成为final
。bean类库实现一个ejbCreate()方法
。bean类库错误定义finalize方法
。ejbCreate()访问控制符没有定义成为public
。sessionBean中的ejbCreate()没有返回void
。定位方法的修饰符没有定义成为public
。定位方法的返回类型不是一个主键,也不是主键的类集
。ejbPostCreate()有一个非public的访问控制修饰符
。ejbPostCreate()没有返回类型void
11、杂项
。成员字段隐藏在成员方法中
。循环记数器无法递增
。for循环中没有包含布尔条件
。存在的clone()方法没有调用super.clone()
。for语句缺少代码模块
。方法参数得到赋值
更多精彩
赞助商链接