??xml version="1.0" encoding="utf-8" standalone="yes"?> "how are you"
1、java定义?个基本的数据cdQ?BR>字节?byte)Q?BR>短整?short)Q?BR>整型(int)Q?BR>长整?long)Q?BR>字符?char)Q?BR>点?float)Q?BR>双精度型(double)Q?BR>布尔?boolean)?BR>
不管Z什么^収ͼ整型L32位。整数类型的长度不应该被理解为它占用的存储空_(d)而应该是该类变量和表辑ּ的行为。事实上Qؓ(f)了提高性能Q至字节型和短整型的存储是32位的?BR>
2、整数类型长度(都ؓ(f)有符L(fng)Q?BR>长整型 64
整Ş 32
短整型 16
字节型 8 -128K?27
点?BR>双精度Q点double 64
单精度Q点float 32
字符
char 16 0K?5536
没有负数。用unicode码代表字W?BR>
它可以被转换为整数进行整数运。通过字W包括在单引号之内来表法字符字面量?BR>
3、对于不能直接被包括的字W,有若q{义序列,q样允许你输入你需要的字符Q例如‘\’代表单个引号字W本w‘\n’代表换行符字符?BR> 为直接得到八q制或十六进制字W的|对于八进Ӟ使用反斜U加三个阿拉伯数字。如'\141'代表'a''。对于十六进Ӟ使用反斜U和u加四个十六进刉拉伯数字。如'\u0061'代表'a'Q?\ua432'是日文片假名字符?BR>
\ddd 八进制字W?BR>\uxxxx 十六q制字符
\' 单引?BR>\" 双引?BR>\\ 反斜?BR>\r 回R?BR>\n 换行
\f 换页
\t 水^制表W?BR>\b 退?BR>
4、类型{换和强制型{?BR> 把一U类型的Dl另一个类型的一个变量是相当常见的。如果这2中类型是兼容的,那么JAVA自动地q行转换。例如,把INTcd的Dllongcd的变量,L可行的。然后不是所有的cd的都是兼容的Q因此,不是所有的cd转换都是可以隐式实现的?BR>
]]>
56.JS中的焦点序:document.getElementByid("表单元素").tabIndex = 1
57.innerHTML的值是表单元素的??
58.innerTEXT的值和上面的一?只不q不?x)?EM>q种标记昄出来.
59.contentEditable可设|元素是否可被修?isContentEditableq回是否可修改的状?
60.isDisabled判断是否为禁止状?disabled讄止状?BR>61.length取得长度,q回整型数?BR>62.addBehavior()是一UJS调用的外部函数文件其扩展名ؓ(f).htc
63.window.focus()使当前的H口在所有窗口之?
64.blur()指失ȝ?与FOCUS()相反.
65.select()指元素ؓ(f)选中状?
66.防止用户Ҏ(gu)本框中输入文?onfocus="this.blur()"
67.取出该元素在面中出现的数量:document.all.tags("div(或其它HTML标记W?").length
68.JS中分ZU窗体输?模态和非模?window.showModaldialog(),window.showModeless()
69.状态栏文字的设|?window.status='文字',默认的状态栏文字讄:window.defaultStatus = '文字.';
70.d到收藏夹:external.AddFavorite("71.JS中遇到脚本错误时不做M操作:window.onerror = doNothing; 指定错误句柄的语法ؓ(f):window.onerror = handleError;
72.JS中指定当前打开H口的父H口:window.opener,支持opener.opener...的多重l?
73.JS中的self指的是当前的H口
74.JS中状态栏昄内容:window.status="内容"
75.JS中的top指的是框枉中最层的框?BR>76.JS中关闭当前的H口:window.close();
77.JS中提出是否确认的?if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}
78.JS中的H口重定?window.navigate("85.JS中的退Z前用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}} window.onbeforeunload=verifyClose;
86.当窗体第一ơ调用时使用的文件句?onload()
87.当窗体关闭时调用的文件句?onunload()
88.window.location的属? protocol(http:),hostname(97.string.lastIndexOf(searchString[,startIndex])最后一ơ出现的位置.
98.string.match(regExpression),判断字符是否匚w.
99.string.replace(regExpression,replaceString)替换现有字符?
100.string.split(分隔W?q回一个数l存储?
101.string.substr(start[,length])取从W几位到指定长度的字W串.
102.string.toLowerCase()使字W串全部变ؓ(f)写.
103.string.toUpperCase()使全部字W变为大?
104.parseInt(string[,radix(代表q制)])强制转换成整?
105.parseFloat(string[,radix])强制转换成Q点型.
106.isNaN(变量):试是否为数值型.
107.定义帔R的关键字:const,定义变量的关键字:var
]]>
记录JAVA SCRIPT宝典中的内容:
1.document.write(""); 输出语句
2.JS中的注释?/
3.传统的HTML文档序?document->html->(head,body)
4.一个浏览器H口中的DOM序?window->(navigator,screen,history,location,document)
5.得到表单中元素的名称和?document.getElementById("表单中元素的ID?).name(或value)
6.一个小写{大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase();
7.JS中的值类?String,Number,Boolean,Null,Object,Function
8.JS中的字符型{换成数值型:parseInt(),parseFloat()
9.JS中的数字转换成字W型:(""+变量)
10.JS中的取字W串长度?(length)
11.JS中的字符与字W相q接使用+?
12.JS中的比较操作W有:=={于,!=不等?>,>=,<.<=
13.JS中声明变量?var来进行声?BR>14.JS中的判断语句l构:if(condition){}else{}
15.JS中的循环l构:for([initial expression];[condition];[upadte expression]) {inside loop}
16.循环中止的命令是:break
17.JS中的函数定义:function functionName([parameter],...){statement[s]}
18.当文件中出现多个form表单?可以用document.forms[0],document.forms[1]来代?
19.H口:打开H口window.open(), 关闭一个窗?window.close(), H口本n:self
20.状态栏的设|?window.status="字符";
21.弹出提示信息:window.alert("字符");
22.弹出认?window.confirm();
23.弹出输入提示?window.prompt();
24.指定当前昄链接的位|?window.location.href="URL"
25.取出H体中的所有表单的数量:document.forms.length
26.关闭文档的输出流:document.close();
27.字符串追加连接符:+=
28.创徏一个文档元?document.createElement(),document.createTextNode()
29.得到元素的方?document.getElementById()
30.讄表单中所有文本型的成员的gؓ(f)I?
var form = window.document.forms[0]
for (var i = 0; i
form.elements[i].value = "";
}
}
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表ؓ(f)是否选中q回TRUE或FALSE)
32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length
33.单选按钮组判断是否被选中也是用checked.
34.下拉列表框的?document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的?
35.字符串的定义:var myString = new String("This is lightsword");
36.字符串{成大?string.toUpperCase(); 字符串{成小?string.toLowerCase();
37.q回字符?在字W串1中出现的位置:String1.indexOf("String2")!=-1则说明没扑ֈ.
38.取字W串中指定位|的一个字W?StringA.charAt(9);
39.取出字符串中指定L(fng)和终点的子字W串:stringA.substring(2,6);
40.数学函数:Math.PI(q回圆周?,Math.SQRT2(q回开?,Math.max(value1,value2)q回两个C的最在?Math.pow(value1,10)q回value1的十ơ方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))q回随机?BR>41.定义日期型变?var today = new Date();
42.日期函数列表:dateObj.getTime()得到旉,dateObj.getYear()得到q䆾,dateObj.getFullYear()得到四位的年?dateObj.getMonth()得到月䆾,dateObj.getDate()得到?dateObj.getDay()得到日期?dateObj.getHours()得到时,dateObj.getMinutes()得到?dateObj.getSeconds()得到U?dateObj.setTime(value)讄旉,dateObj.setYear(val)讄q?dateObj.setMonth(val)讄?dateObj.setDate(val)讄?dateObj.setDay(val)讄星期?dateObj.setHours讄时,dateObj.setMinutes(val)讄?dateObj.setSeconds(val)讄U?[注意:此日期时间从0开始计]
43.FRAME的表C方? [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName
44.parent代表父亲对象,top代表最端对象
45.打开子窗口的父窗口ؓ(f):opener
46.表示当前所属的位置:this
47.当在链接中调用JS函数时用:(javascript:)来开头后面加函数?BR>48.在老的览器中不执行此JS:
49.引用一个文件式的JS:
50.指定在不支持脚本的浏览器昄的HTML:
51.当超铑֒ONCLICK事g都有?则老版本的览器{向a.html,否则转向b.html.?dfsadf
52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError
53.JS中的换行:\n
54.H口全屏大小:
55.JS中的all代表其下层的全部元素
]]>
//保留数点后两位数
public double Number2(double pDouble)
{
BigDecimal bd=new BigDecimal(pDouble);
BigDecimal bd1=bd.setScale(2,bd.ROUND_HALF_UP);
pDouble=bd1.doubleValue();
long ll = Double.doubleToLongBits(pDouble);
return pDouble;
}
格式化输出数?BR>译QCherami
email:cherami@163.net
原文Qhttp://developer.java.sun.com/developer/TechTips/2000/tt0411.html
* 格式化输出数?BR>格式化输出数?BR>有时我们需要控制输出的数字的格式,如何使用java的类库做到这个呢Q?BR>也许你不兛_格式Q但是你需要关心你的程序可以在全世界通用Q像下面的这样一个简单的语句是依赖地区的Q?BR> System.out.println(1234.56);
在美国,"." 是小数点Q但在其它地方就不一定了。如何处理这个呢Q?BR>
java.text 包中的一些包可以处理q类问题。下面的单范例用那些类解决上面提出的问题:(x)
import java.text.NumberFormat;
import java.util.Locale;
public class DecimalFormat1 {
public static void main(String args[]) {
// 得到本地的缺省格?BR> NumberFormat nf1 = NumberFormat.getInstance();
System.out.println(nf1.format(1234.56));
// 得到德国的格?BR> NumberFormat nf2 =
NumberFormat.getInstance(Locale.GERMAN);
System.out.println(nf2.format(1234.56));
}
}
如果你在国Q运行程序后输出Q?BR> 1,234.56
1.234,56
换句话说Q在不同的地方用不同的?fn)惯表示数字?BR>
NumberFormat.getInstance()Ҏ(gu)q回NumberFormat的一个实?实际上是NumberFormat具体的一个子c,例如DecimalFormat), q适合Ҏ(gu)本地讄格式化一个数字。你也可以用非~省的地|,例如德国。然后格式化Ҏ(gu)Ҏ(gu)特定的地则格式化数字。这个程序也可以使用一个简单的形式Q?BR> NumberFormat.getInstance().format(1234.56)
但是保存一个格式然后重用更加有效。国际化是格式化数字时的一个大问题?BR>另一个是Ҏ(gu)式的有效控制Q例如指定小数部分的位数Q下面是解决q个问题的一个简单例子:(x)
import java.text.DecimalFormat;
import java.util.Locale;
public class DecimalFormat2 {
public static void main(String args[]) {
// 得到本地的缺省格?BR> DecimalFormat df1 = new DecimalFormat("####.000");
System.out.println(df1.format(1234.56));
// 得到德国的格?BR> Locale.setDefault(Locale.GERMAN);
DecimalFormat df2 = new DecimalFormat("####.000");
System.out.println(df2.format(1234.56));
}
}
在这个例子中讄了数字的格式Q用像"####.000"的符受这个模式意味着在小数点前有四个数字Q如果不够就I着Q小数点后有三位数字Q不用0补齐。程序的输出Q?BR> 1234.560
1234,560
怼的,也可以控制指数Ş式的格式Q例如:(x)
import java.text.DecimalFormat;
public class DecimalFormat3 {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("0.000E0000");
System.out.println(df.format(1234.56));
}
}
输出Q?BR> 1.235E0003
对于癑ֈ敎ͼ(x)
import java.text.NumberFormat;
public class DecimalFormat4 {
public static void main(String args[]) {
NumberFormat nf = NumberFormat.getPercentInstance();
System.out.println(nf.format(0.47));
}
}
输出Q?BR> 47%
xQ你已经看到了格式化数字的几个不同的技术。另一斚wQ如何读取ƈ解析包含格式化的数字的字W串Q解析支持包含在NumberFormat中。例如:(x)
import java.util.Locale;
import java.text.NumberFormat;
import java.text.ParseException;
public class DecimalFormat5 {
public static void main(String args[]) {
// 本地格式
NumberFormat nf1 = NumberFormat.getInstance();
Object obj1 = null;
// Z格式的解?BR> try {
obj1 = nf1.parse("1234,56");
}
catch (ParseException e1) {
System.err.println(e1);
}
System.out.println(obj1);
// 德国格式
NumberFormat nf2 =NumberFormat.getInstance(Locale.GERMAN);
Object obj2 = null;
// Z格式的解?BR> try {
obj2 = nf2.parse("1234,56");
}
catch (ParseException e2) {
System.err.println(e2);
}
System.out.println(obj2);
}
}
q个例子分两部分Q都是解析一个字W串Q?1234,56"。第一部分使用本地格式解析Q第二部分用d国格式解析。当E序在美国运行,l果是:(x)
123456
1234.56
换句话说Q?1234,56"在美国被认ؓ(f)是一个巨大的整数"123456"而在德国被认为是一个小?1234.56"?BR>q有格式化讨论的最后一个问题。在上面的例子中Q?DecimalFormat ?NumberFormat 都被使用了。DecimalFormat 常用于获得很好的格式控制Q而NumberFormat 常用于指定不同于本地的地区。如何结合两个类呢?
{案围绕着q样的事实:(x)DecimalFormat是NumberFormat的一个子c?其实例被指定为特定的地区。因此,你可以用NumberFormat.getInstance 指定一个地区,然后结构强制{换ؓ(f)一个DecimalFormat对象。文档中提到q个技术可以在大多情况下适用Q但是你需要用try/catch 块包围强制{换以防{换不能正常工?(大概在非怸明显得情况下使用一个奇异的地区)。下面是一个这L(fng)例子Q?BR> import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class DecimalFormat6 {
public static void main(String args[]) {
DecimalFormat df = null;
// 得到一个NumberFormat 对象q?BR> // 强制转换Z?DecimalFormat 对象
try {
df = (DecimalFormat)
NumberFormat.getInstance(Locale.GERMAN);
}
catch (ClassCastException e) {
System.err.println(e);
}
// 讄格式模式
df.applyPattern("####.00000");
// format a number
System.out.println(df.format(1234.56));
}
}
getInstance() Ҏ(gu)获得格式Q然后调用applyPattern()Ҏ(gu)讄格式模式Q输出:(x)
1234,56000
如果你不兛_国际化,可以直接使用DecimalFormat ?BR>
]]>
原因:
1.对系l所讉K外部资源Q未执行关闭操作Q导致外部资源大量浪费,最l可能导致系l无法正常运行;
2.对系l所讉K的外部资源关闭次数太多,外部pȝ无法正常处理Q?nbsp;
3.pȝ讉K的外部资源出现异常情c(din)?nbsp;
解决Ҏ(gu)Q?nbsp;
1.讉K外部资源前,首先(g)查该资源(如数据库)是否可正常连接或操作?nbsp;
2.讉K外部资源Ӟ如果q行了连接,一定进行关闭操作,q仅q行一ơ关闭操作?nbsp;
3.量在同一操作中共享外部资源,以减该操作对资源的消费Q提高程序的执行效率
5、空指针错误 Qjava.lang.NullPointerException
使用基本的JAVA数据cdQ变量的D么已l是默认|如果没有对其正常赋|E序便不能通过~译Q因此用基本的JAVA数据cd(double,float,boolean,char,int,long)一般不?x)引L(fng)指针异常。由此可见,I指针异怸要跟与对象的操作相关?nbsp;
下面先列Z可能发生I指针异常的几种情况?qing)相应解x案:(x)
不管对象是否为空q接开始用?nbsp;
(JSP)代码D?Q?nbsp;
out.println(request.getParameter("username"));
描述Q?nbsp;
代码D?的功能十分简单,是输出用户输入的表?username"的倹{?nbsp;
说明Q?nbsp;
看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不C么问题。但是,如果某个用户在输入数据时q没有提供表单域"username"的|或通过某种途径l过表单直接输入Ӟ此时request.getParameter("username")的gؓ(f)I(不是I字W串Q是I对象null。)(j)Qout对象的printlnҎ(gu)是无法直接对I对象操作,因此代码D?所在的JSP面会(x)抛出"java.lang.NullPointerException"异常?nbsp;
即对象可能为空Ӟ也调用java.lang.Object或Object对象本n的一些方法如toString(), equals(Object obj){操作?nbsp;
(JSP)代码D?Q?nbsp;
String userName = request.getParameter("username");
If (userName.equals("root"))
{....}
描述Q?nbsp;
代码D?的功能是(g)用h供的用户名,如果是用户名UCؓ(f)"root"的用hQ就执行一些特别的操作?nbsp;
说明Q?nbsp;
在代码段2中,如果有用h有提供表单域"username"的值时Q字W串对象userName为null|不能够将一个null的对象与另一个对象直接比较,同样Q代码段2所在的JSP面׃(x)抛出(java.lang.NullPointerException)I指针错误?nbsp;
(JSP)代码D?Q?nbsp;
String userName = session.getAttribute("session.username").toString();
描述Q?nbsp;
代码D?的功能是session中session.username的值取出,q将该Dl字W串对象 userName?nbsp;
说明Q?nbsp;
在一般情况下Q如果在用户已经q行某个?x)话Q则不会(x)出现什么问题;但是Q如果此时应用服务器重新启动Q而用戯没有重新dQ(也可能是用户关闭览器,但是仍打开原来的页面。)(j)那么Q此时该session的值就?x)失效,同时Dsession中的session.username的gؓ(f)I。对一个ؓ(f)null的对象的直接执行toString()操作Q就?x)导致系l抛?java.lang.NullPointerException)I指针异常?nbsp;
解决Ҏ(gu)Q?nbsp;
Z保q行操作或引用的对象非空Q假若我们要Ҏ(gu)对象q行操作或引用,我们首先L查该对象是否已经实例化且不ؓ(f)I;q且在系l中加入针对对象为空时情늚处理?nbsp;
如:(x)采用String对象保存用户提交的结果;在如果涉?qing)对象的操作Ӟ先检其是否为空后,(g)查到对象为空后,可再选择q行以下MU处理方式:(x)
处理方式 1) (g)查到对象为空Ӟ讄对象gؓ(f)I字W串或一个默认|
处理方式 2) (g)到对象为空ӞҎ(gu)不执行某操作Q直接蟩转到其他处理中?nbsp;
处理方式 3) (g)查到对象为空Ӟ提示用户操作有错误?nbsp;
代码段2按以上方式进行改写,得到Q?nbsp;
方式1Q?nbsp;
String userName = request.getParameter("username");
// 该变量gؓ(f)I时Q{化ؓ(f)默认I字W串
If (userName == null)
userName = "";
If (userName.equals("root"))
{..........}
方式2Q?nbsp;
String userName = request.getParameter("username");
// 该变量gؓ(f)I时Q{化ؓ(f)默认I字W串Q不执行有关操作?nbsp;
If (usreName != null)
{
If (userName.equals("root"))
{..........}
}
方式3Q?nbsp;
String userName = request.getParameter("username");
// 该变量gؓ(f)I时Q{化ؓ(f)默认I字W串Q不执行有关操作?nbsp;
If (usreName == null)
{
// 提示用户输入信息为空
}
实际中,上面提供CU处理方式也同样适用于其他异常的处理Q?nbsp;
异常处理方式 1) (g)查到异常出现Q设|对象gؓ(f)I字W串或一个默认|
异常处理方式 2) (g)到异常出现Q根本不执行某操作,直接跌{到其他处理中?nbsp;
异常处理方式 3) (g)查到异常出现Q提C用h作有错误?BR>
Q如有错误请指正。)(j)
摘要 试报告是把试的过E和l果写成文档Qƈ对发现的问题和缺陯行分析,为纠正Y件的存在的质量问题提供依据,同时Y仉收和交付打下基础。本文提供测试报告模板以?qing)如何编写的实例指南?
关键?试报告 ~陷
正文
试报告是测试阶D|后的文档产出物,优秀的测试经理应该具备良好的文档~写能力Q一份详l的试报告包含_的信息,包括产品质量和测试过E的评h(hun)Q测试报告基于测试中的数据采集以?qing)对最l的试l果分析?BR>下面以通用的测试报告模板ؓ(f)例,详细展开Ҏ(gu)试报告编写的具体描述?BR>PART?首页
0.1面内容Q?
密
通常Q测试报告供内部试完毕后用,因此密ZQ如果可供用户和更多的h阅读Q密Uؓ(f)低,高密U的试报告适合内部研发目以及(qing)涉及(qing)保密行业和技术版权的目?
XXXX目/pȝ试报告
报告~号
可供索引的内部编h者用戯求分布提交时的序列号
部门l理 ______目l理______
开发经理______试l理______
XXX公司 XXXX单位 Q此处包含用户单位以?qing)研发此pȝ的公司)(j)
XXXXqXX月XX?
0.2格式要求Q?
标题一般采用大体字Q如一P(j)Q加_,宋体Q居中排?
副标题采用大体小一号字Q如二号Q加_,宋体Q居中排?
其他采用四号字,宋体Q居中排?
0.3版本控制Q?
版本 作?旉 变更摘要
新徏/变更/审核
PART?引言部分
1.1~写目的
本测试报告的具体~写目的Q指出预期的读者范围?
实例Q本试报告为XXX目的测试报告,目的在于ȝ试阶段的测试以?qing)分析测试结果,描述pȝ是否W合需求(或达到XXX功能目标Q。预期参考h员包括用戗测试h员、、开发h员、项目管理者、其他质量管理h员和需要阅L报告的高层经理?
提示Q通常Q用户对试l论部分感兴,开发h员希望从~陷l果以及(qing)分析得到产品开发质量的信息Q项目管理者对试执行中成本、资源和旉予与重视Q而高层经理希望能够阅d单的图表q且能够与其他项目进行同向比较。此部分可以具体描述Z么类型的人可参考本报告XXXXXX章节Q你的报告读者越多,你的工作容易被人重视,前提是必让阅读者感C的报告是有h(hun)D且值得费一Ҏ(gu)间去x的?
1.2目背景
寚w目目标和目的q行要说明。必要时包括Ԍq部分不需要脑力劳动,直接从需求或者招标文件中拯卛_?
1.3pȝ?
如果设计说明书有此部分,照抄。注意必要的框架囑֒|络拓扑图能吸引眼球?
1.4术语和羃写词
列出设计本系l?目的专用术语和~写语约定。对于技术相关的名词和与多义词一定要注明清楚Q以侉KL不会(x)产生歧义?
1.5参考资?
1Q需求、设计、测试用例、手册以?qing)其他项目文档都是范围内可参考的东东?
2Q测试用的国家标准、行业指标、公司规范和质量手册{等
PART?试概要
试的概要介l,包括试的一些声明、测试范围、测试目的等{,主要是测试情늮介。(其他试l理和质量h员关注部分)(j)
2.1试用例设计
要介l测试用例的设计Ҏ(gu)。例如:(x){h(hun)cd分、边界倹{因果图Q以?qing)用q类Ҏ(gu)(3-4??
提示Q如果能够具体对设计q行说明Q在其他开发h员、测试经理阅ȝ时候就Ҏ(gu)对你的用例设计有个整体的概念Q顺便说一句,在这里写上一些非常规的设计方法也是有利的Q至在没有看到试l论之前可以了解到试l理的设计技术,重点试部分一定要保证有两U以上不同的用例设计Ҏ(gu)?
2.2试环境与配|?
要介l测试环境及(qing)光|?
提示Q清单如下,如果pȝ/目比较大,则用表格方式列出
数据库服务器配置
CPUQ?
内存Q?
盘Q可用空间大?
操作pȝQ?
应用软gQ?
机器|络名:(x)
局域网地址Q?
应用服务器配|?
…?
客户端配|?
…?
对于|络讑֤和要求也可以使用相应的表|对于三层架构的,可以Ҏ(gu)|络拓扑囑ֈ出相关配|?
2.3试Ҏ(gu)(和工?
要介l测试中采用的方?和工??
提示Q主要是黑盒试Q测试方法可以写上测试的重点和采用的试模式Q这样可以一目了然的知道是否遗漏了重要的试点和关键块。工具ؓ(f)可选项Q当使用到测试工具和相关工具Ӟ要说明。注意要注明是自产还是厂商,版本号多,在测试报告发布后要避免大多工L(fng)版权问题?
PART?试l果?qing)缺陷分?
整个试报告中这是最Ȁ动h心的部分Q这部分主要汇dU数据ƈq行度量Q度量包括对试q程的度量和能力评估、对软g产品的质量度量和产品评估。对于不需要过E度量或者相对较?yu)的目Q例如用于验收时提交用户的测试报告、小型项目的试报告Q可省略q程斚w的度量部分;而采用了CMM/ISO或者其他工E标准过E的Q需要提供过E改q徏议和参考的试报告Q主要用于公司内部测试改q和~陷预防机制Q则q程度量需要列出?
3.1试执行情况与记?
描述试资源消耗情况,记录实际数据。(试、项目经理关注部分)(j)
3.1.1试l织
可列出简单的试l架构图Q包括:(x)
试l架?Q如存在分组、用户参与等情况Q?
试l理Q领gh员)(j)
主要试人员
参与试人员
3.1.2试旉
列出试的跨度和工作量,最好区分测试文档和zd的时间。数据可供过E度量用?
例如 XXX子系l?子功?
实际开始时_(d)实际l束旉
d?d作日
d 开始时?l束旉 总计
合计
对于大系l?目来说最l要l计资源的L入,必要时要增加成本一栏,以便理者清楚的知道I竟p了多h力去完成试?
试cd 人员成本 工具讑֤ 其他费用
总计
在数据汇L可以l计个h的^均投入时间和M旉、整体投入^均时间和M旉Q还可以出每一个功能点所p的时/人?
用时人员 ~写用例 执行试 总计
合计
q部分用于过E度量的数据包括文档生率和试执行率?
生率h?用例/~写旉 用例/执行旉 q_
合计
3.1.3试版本
l出试的版本,如果是最l报告,可能要报告测试次数回归测试多次。列格清单则便于知道那个子系l?子模块的试频度Q对于多ơ回归的子系l?子模块将引v开发者关注?
3.2覆盖分析
3.2.1需求覆?
需求覆盖率是指l过试的需?功能和需求规D明书中所有需?功能的比|通常情况下要辑ֈ100Q的目标?
需?功能Q或~号Q?试cd 是否通过 备注
[Y][P][N][N/A]
Ҏ(gu)试l果 Q按~号l出每一试需求的通过与否l论。P表示部分通过QN/A表示不可试或者用例不适用。实际上Q需求跟t矩阵列Z一一对应的用例情况以避免遗漏Q此表作用ؓ(f)传达需求的试信息以供(g)查和审核?
需求覆盖率计算 Y?需求L ×100Q?
3.2.2试覆盖
需?功能Q或~号Q?用例个数 执行L 未执??漏测分析和原?
实际上,试用例已经记蝲了预期结果数据,试~陷上说明了实测l果数据和与预期l果数据的偏差;因此没有必要Ҏ(gu)个编号在此包含更详细的说明的~陷记录与偏差,列表的目的仅在于更好的查看测试结果?
试覆盖率计?执行?用例L ×100Q?
3.2~陷的统计与分析
~陷l计主要涉及(qing)到被系l的质量Q因此,q部分成为开发h员、质量h员重点关注的部分?
3.3.1~陷汇?
被测pȝ pȝ试 回归试 总计
合计
按严重程?
严重 一?微小
按缺L(fng)?
用户界面 一致?功能 法 接口 文档 用户界面 其他
按功能分?
功能一 功能?功能?功能?功能?功能?功能?
最好给出缺L(fng)饼状囑֒q图以便直观查看。俗话说一图胜千言Q图标能够阅读者迅速获得信息,其是各层面理人员没有旉去逐项阅读文章?
图例
3.3.2~陷分析
本部分对上述~陷和其他收集数据进行综合分?
~陷l合分析
~陷发现效率 Q?~陷L/执行试用时
可到具体人员得出q_指标
用例质量 Q?~陷L/试用例L ×100Q?
~陷密度 Q?~陷L/功能Ҏ(gu)L
~陷密度可以得出pȝ各功能或各需求的~陷分布情况Q开发h员可以在此分析基上得出那部分功能/需求缺h多,从而在今后开发注意避免ƈ注意在实施时予与xQ测试经验表明,试~陷多的部分,光藏的~陷也越多?
试曲线?
描绘被测pȝ每工作日/周缺h情况Q得出缺陯势和向
重要~陷摘要
~陷~号 要描q?分析l果 备注
3.3.3D留~陷与未解决问题
D留~陷
~号QBUG?
~陷概要Q该~陷描述的事?
原因分析Q如何引L(fng)P~陷的后果,描述造成软g局限性和其他限制性的原因
预防和改q措施:(x)弥补手段和长期策?
未解决问?
功能/试cdQ?
试l果Q与预期l果的偏?
~陷Q具体描q?
评h(hun)Q对q些问题的看法,也就是这些问题如果发出去了会(x)造成什么样的媄(jing)?
PART?试l论与徏?
报告Cq个部分是一个ȝ了,对上q过E、缺陷分析之后该下个l论Q此部分为项目经理、部门经理以?qing)高层经理关注,h晰扼要的下定论?
4.1试l论
1Q?试执行是否充分Q可以增加对安全性、可靠性、可l护性和功能性描qͼ(j)
2Q?Ҏ(gu)试风险的控制措施和成?
3Q?试目标是否完成
4Q?试是否通过
5Q?是否可以q入下一阶段目目标
4.2
1Q对pȝ存在问题的说明,描述试所揭露的Y件缺陷和不Q以?qing)可能给软g实施和运行带来的影响
2Q可能存在的潜在~陷和后l工?
3Q对~陷修改和品设计的
4Q对q程改进斚w的徏?
试报告的内容大同小异,对于一些测试报告而言Q可能将W四和第五部分合qӞ逐项列出试V缺陗分析和Q这U方法也比较多见Q尤其在W三方评报告中Q此份报告模板仅供参考?/P>
参考文?
《实用Y件测试方法与应用??sh)子工业出版C?/P>
执行时的问题Qproblems Executing Hello
如果你看C面的错误提示:
'java' is not recognized as an internal or external command, ...
or
java: Command not found.
那么你或许没有安装java或者在环境变量中ƈ没有讄path路径java\bin目录。请(g)查你的java安装以及(qing)环境变量的正设|?/FONT>
如果你看?
Exception in thread "main" java.lang.NoClassDefFoundError: hello
(wrong name: Hello) ...
那么你很有可能是因ؓ(f)没有注意大小写或是把名称中的字母打错了。如Q?BR>java hello
键入正确的命令重新运行即可?/FONT>
如果你看?
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
/class
那么你需要考虑是否L名字中的.class部分?nbsp;
2、分析出现java.lang.NoClassDefFoundError异常的具体情?/P>
q个问题在上面调试第一个例E出现过Q但是如果我们输入的名称是正的Q仍然提CL(fng)问题时怎么办呢Q?BR> 装了JDK1.4.0版,而且JAVA_HOMEQPATH和CLASSPATH都设|好了。如?BR>JAVA_HOME=/home/jdk
CLASSPATH=$JAVA_HOME/jre/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
用JAVAC命o(h)生成了hello.class,当用java helloӞ仍然提示Q?BR>Exception in thread "main" java.lang.NoClassDefFoundError:XXXQwrong name:
XXXQ?/P>
解决提示Q?BR>(1)、Add (current directory) to your classpath或类定义前面加public
(2)、path环境变量中设|的路径中是否有另一个java.exe文gQ默认执行的是这个目录下的java.exeQ虽然版本与JDK下的java.exe一_(d)但是在此目录下执行就?x)出错?BR> Ҏ(gu)Q?BR> 安装了JDK的情况下Q应该删除winnt下的java.exeQ确保默认调用的java.exe是位于jdk中bin目录下的java.exe?/P>
(3)、假如你使用了packet
那么(g)查你在编译了没有指定package包在你文件中的java文g?BR>
3、通常异常捕获处理Q?BR>JAVA中几个基本异常简单的描述一下:(x)
ArithmeticException 当出现异常算术条件时产生
NullPointerException 当应用程序企图用需要的对象处ؓ(f)I时产生
ArrayIndexOutOfBoundsException 数组下标界时?nbsp;
ArrayStoreException 当程序试囑֭储数l中错误的类型数据时产生
FileNotFoundException 试图讉K的文件不存在时?nbsp;
IOException ׃一般I/O故障而引L(fng)Q如L件故?nbsp;
NumberFormatException 当把字符串{换ؓ(f)数值型数据p|时?nbsp;
OutOfMemoryException 内存不时?nbsp;
SecurityException 当小应用E序QAppletQ试图执行由于浏览器的安全设|而不允许的动作时产生
StackOverflowException 当系l的堆栈I间用完时?nbsp;
StringIndexOutOfBoundsException 当程序试图访问串中不存在的字W位|时产生
上述出现的异常基本上都是JAVA中我们可能会(x)遇到的异常?BR>
cThrowable有两个直接子c:(x)Error和Exception。Exceptioncd象是JavaE序处理或抛弃的对象。Java 提供了两UException 的模式,一U是执行的时候所产生的Exception (Runtime Exception)Q另外一U则是受控制的Exception (Checked Exception)。所有的Checked Exception 均从java.lang.Exception l承而来Q而Runtime Exception 则承java.lang.RuntimeException 或java.lang.Error (实际上java.lang.RuntimeException 的上一层也是java.lang.Exception)。它有各U不同的子类分别对应于不同类型的例外。其中类RuntimeException代表q行时由Java虚拟机生成的例外?BR>
E序的运作机制上看,Runtime Exception与Checked Exception 不一P从逻辑上看QRuntime Exception 与Checked Exception 在用的目的上也不一栗?/P>
一般而言QChecked Exception 表示q个Exception 必须要被处理Q也是说程序设计者应该已l知道可能会(x)收到某个Exception(因ؓ(f)要try catch? Q所以程序设计者应该能针对q些不同的Checked Exception 做出不同的处理?/P>
而Runtime Exception 通常?x)暗C着E序上的错误Q这U错误会(x)DE序设计者无法处理,而造成E序无法l箋执行下去?BR>
Java的可控制异常处理是通过5个关键字来实现的QtryQcatchQthrowQthrowsQfinally。JB的在U帮助中对这几个关键字是q样解释的:(x)
Throws: Lists the exceptions a method could throw.
Throw: Transfers control of the method to the exception handler.
TryQ?nbsp; Opening exception-handling statement.
CatchQ?nbsp; Captures the exception.
FinallyQ?Runs its code before terminating the program.
·try语句
try语句用大括号{}指定了一D代码,该段代码可能?x)抛弃一个或多个例外?BR>
·catch语句
catch语句的参数类gҎ(gu)的声明,包括一个例外类型和一个例外对象。例外类型必Mؓ(f)Throwablecȝ子类Q它指明了catch语句所处理的例外类型,例外对象则由q行时系l在try所指定的代码块中生成ƈ被捕P大括号中包含对象的处理,其中可以调用对象的方法?BR>
catch语句可以有多个,分别处理不同cȝ例外。Javaq行时系l从上到下分别对每个catch语句处理的例外类型进行检,直到扑ֈcd相匹配的catch语句为止。这里,cd匚w指catch所处理的例外类型与生成的例外对象的cd完全一致或者是它的父类Q因此,catch语句的排列顺序应该是从特D到一般?BR>
也可以用一个catch语句处理多个例外cdQ这时它的例外类型参数应该是q多个例外类型的父类Q程序设计中要根据具体的情况来选择catch语句的例外处理类型。
· finally语句
try所限定的代码中Q当抛弃一个例外时Q其后的代码不会(x)被执行。通过finally语句可以指定一块代码。无论try所指定的程序块中抛弃或不抛弃例外,也无论catch语句的例外类型是否与所抛弃的例外的cd一_(d)finally所指定的代码都要被执行Q它提供了统一的出口。通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等。不异常是否发生都?x)执行finally中的语句?BR>
·throws语句
throwsL出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说QJava ~译器会(x)你声明在一个成员函C抛出的异常的cd。如果异常的cd是Error?RuntimeExceptionQ?或它们的子类Q这个规则不起作用, 因ؓ(f)q在E序的正帔R分中是不期待出现的?如果你想明确地抛Z个RuntimeExceptionQ你必须用throws语句来声明它的类型?BR>
· throw语句
throwL出现在函C中,用来抛出一个异常。程序会(x)在throw语句后立即终止,它后面的语句执行不到Q然后在包含它的所有try块中Q可能在上层调用函数中)(j)从里向外L含有与其匚w的catch子句的try块。所有的Ҏ(gu)都用“throw”语句来抛出一个异常。Throw语句需要一个单独throwable对象Q这个对象是LThrowablecȝ子类?BR>
例如Q?BR>boolean testEx() throws Exception{
boolean ret = true;
try
{
ret = testEx1();
}
catch (Exception e)
{
System.out.println("testEx, catch exception");
ret = false;
throw e;
}
finally
{
System.out.println("testEx, finally; return value="+ret);
return ret;
}
}
如有问题h正。未?/FONT>