软件工程的实现与测试-1

上一篇 / 下一篇  2012-08-01 13:21:33 / 个人分类:杂谈

'\"F'GQ%t ]l0  实现

L5~?k6wX7bmc5i051Testing软件测试网"QpM[#h[

  编码注意事项

ZD_ IV9l'K051Testing软件测试网@k_,y.| ?TF

  ● 写程序前先简化算数表达式和逻辑表达式,并用括号使逻辑表达式和算术表达式次序清晰51Testing软件测试网)iu'tA/T@

~J,cvW/vo}"a0  ● 尽量避免大量使用镶套结构,仔细研究镶套循环,以确定是否存在有语句可以从内层往外移

*b3vk;OJ/D:F.O0

:R xH!Hfi0  ● 不要节约空间而把多个语句写在一行中51Testing软件测试网{aK*B@Va v

2JK:g[7a0  ● 尽量避免复杂的条件测试,减少对非条件的测试51Testing软件测试网 X n5]YF QXf+u.g-H

P o G;PN&b c[0  ● 尽量避免使用多维数组,指针和复杂的表51Testing软件测试网+Hs;K`s5{}%L

B C E2wS/^6]:Fe0  ● 使用执行时间短的算数运算

4Nj/~ nze0i0

4wTJcNS:l0  ● 尽量使用整数运算和布尔表达式,不要混合使用不同的数据类型51Testing软件测试网$\ ?PGT

51Testing软件测试网*t{ }2?#~N R3Y#l-OO

  输入输出51Testing软件测试网 QIv,o}*Et0u'P

#k2F%O YVv0  1、所有输入输出都应该有缓冲,以减少用于通信的额外开销

tu!u'P*z R?y)wP051Testing软件测试网"],`5b:n#E0g/R8ww

  2、对二级存储(如磁盘)应选用最简单的访问方式51Testing软件测试网?4C:MzV)]

51Testing软件测试网!berm;b V(Q*Q9r

  3、二级存储器的输入输出应该以信息组为单位进行

yDQ4w3~$l051Testing软件测试网&qh4?bjm

  4、如果超高效的输入输出很难被人理解,则不应该采用这种方式

f t'Yqc,vq0

2I+`W }wY|9r O7D0  5、设计良好的输入报表,保持输入格式简单

h1Cx^We"t051Testing软件测试网M!C*G#N5HAD

  6、使用数据结束标记,不要要求用户指定数据数目51Testing软件测试网u6?kR*z

?.tet^"}J%b0  测试

5Yj8VNrSo{EB0

L,[}eZ-L0  测试步骤

&uy3n-h%h051Testing软件测试网$| yU5se_'FEq9{

  ● 模块测试51Testing软件测试网:_(c1Lcg"U#s#e

51Testing软件测试网*j:G w'mc)Sh{

  ● 子系统测试51Testing软件测试网,j_4n;EiNLyno6M

:d rS7ey r9mp;v0  ● 系统测试51Testing软件测试网Q C&H/e+}b-x$[gI D |

O @\Y^-ZI0  ● 验收测试51Testing软件测试网P L\:S6S$x B

tys J2Q'm0B0  在测试的类型上有以下几种51Testing软件测试网r$h BJ9~*o r[Yw

'A9hVB*Z~ I0  ● 回归测试:把现在的软件测试结果和上个版本的测试结果做比较看有没有退步

0Oc$})S B0

Wl^P4xf0  ●功能测试:侧重于系统功能测试,看是不是达到了用户的要求51Testing软件测试网0GF e\ i_;t9L

51Testing软件测试网i"pTVB

  ●单元测试:针对每个相对独立的模块的测试,在软件的层次上看该模块能否完成设计要求51Testing软件测试网dk_ I'D&t

51Testing软件测试网w'?L9?!c5Wlf

  ● 负载测试:在整个系统在大负载仿真条件下,测试系统的实际能力

Ej6HU8YE0

6{0`me0l"c]h*I^#N0  ● 验收测试:测试的不只是功能问题,还有许多细节问题51Testing软件测试网{\l.i&qiI#Jt^'X"p

(H;L4BVk a0  单元测试重点

$c5mxE3H0

(V;FxWrWF6G0  ● 先判断功能是不是错误引起(如舍入误差就不是由错误引起的)51Testing软件测试网~{)G6G;J.P(T GO

51Testing软件测试网,m*kk xZ"u]

  ● 模块接口:模块接口测试主要检查下述几个反面-参数数目,次序,属性,单位系统与单元是否保持一致;是否修改只作输入用的变元;全局变量的定义和用法在各个模块中是否一致

2MR[O;P9S9?051Testing软件测试网V"d#Z BFdx$\i-r&X

  ● 局部数据结构

,R:F^H? p"E:]051Testing软件测试网Dr|y;t7t

  ● 重要执行通路:在测试期间选择最有代表性,最可能发现错误的执行通路进行测试十分关键

w4|,J)[ vz$W;^(E0

)pHRty{G(s"`0  ● 出错处理通路:51Testing软件测试网J:Yn|,KQ?.\

c)WVWuE0    ● 对错误的描述是难以理解

R"\Rm"H(k s`0

)Bj{XA0    ● 记下错误与实际遇到的错误不同

mIEu2||L0

nK{._.aL2E4FE0    ● 在对错误进行处理之前,错误条件已经引起系统干预51Testing软件测试网"Oy/bQ}_;K_Ty

Svo%t:A P.B&?/v0    ● 对错误的处理不正确51Testing软件测试网:hWc;JI7U

51Testing软件测试网#r,zEtkw;uC

    ● 描述错误的信息不足以帮助确定造成错误的位置51Testing软件测试网7QF\h,VI"n w

51Testing软件测试网 ZU+HORXtSZ'E/t

  调试途径51Testing软件测试网 NSCf+q

V$u:F2}2cj[0  ● 蛮干法:仅当所有其他方法都失败了得情况下才用51Testing软件测试网!luUE7P!\]"c0KVX

I:f!uD_2h5U0  ● 回溯法:从症状发现地方开始,人工沿着程序的控制流往回追踪分析源程序代码,知道找到错误为止,调试小程序最有效的方法

T#Slb1dm0

O0m j:_x0ze0  ● 原因排除法:51Testing软件测试网@9xob V2ki:G

9Cv m%o rJ@}-uLa0    ● 对分查找法:如果已经知道每个变量在程序内的若干个关键的正确值,则可以用赋值语句或输入语句在程序中的附近注入这些变量的正确值,然后运行程序并检查所得到的输出51Testing软件测试网e? [uY'A$e _

!bLH#i7|0    ● 归纳法:是从个别现象推断出一般性结论的思维方式,使用这种调试程序时,首先把和错误有关的数据组织在一起分析,以便发现错误原因

j/^Ydh [J:b0

9B-mu+ob}0    ● 演绎法:从一般原理或前提出发,经过排除和精华的过程推导出结论,采用这样的方法,首先设想出所有可能出错的原因,然后试图用测试来排除每一个假设的原因

4u'IM,_$|,c]051Testing软件测试网!r&`H0vG%uY2V%NT

  两个重要测试技术51Testing软件测试网m5q c#a5V,?I

51Testing软件测试网ej5~"P8I ^}[B%k0S

  白盒子技术

0fJq:q#d Mv0

*fyj v;xQ!{D$`!ng0  目的:51Testing软件测试网pgx5Hq4A

lh'n!C:C%l?@_0  在测试者完全知道程序的结构和处理算法.按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按照预定的要求工作.又称机构测试.

7? Eg]%wi)k3H9s({0

.O{9ob;oK:F&a0  逻辑测试的覆盖种类:51Testing软件测试网:S.~Uzd;}

51Testing软件测试网B:RM&{1eq(z s

  ● 语句覆盖: 至少每个语句都应该执行一次.51Testing软件测试网&s~'F-}2I(Tk(j!?6VgX

51Testing软件测试网U-w@ B3a,ZV} [

  ● 判断覆盖: 每种判断的每种可能的结果都因该至少执行一次.也就是每个判断的分子都至少执行一次.

:o3yi m sKPC%J0

F;M Tg;D!pSi0  ● 条件覆盖: 每个判断表达式的每个条件都取到各种可能的结果51Testing软件测试网yv+|2j1s1Sv&O

;b+R? Hd{ls6f0  ● 判定条件覆盖: 有时候判断覆盖不一定包含条件覆盖,条件覆盖不一定包含判断覆盖.所以为了满足两种覆盖出现了这个覆盖.

x'W7},axUw0

9W]_0]4]L&MX%t0  ● 条件组合覆盖: 选取足够多的测试数据,使的每个判断表达式中条件的各种可能组合都至少出现一次.

;I;dS5@%i_X)b~'[051Testing软件测试网!q S+tf|&z,^

  ● 路径测试:选取足够多的测试数据.使程序的每条可能路径都被执行一次.

%L?(v \:| j-^8z1? rL051Testing软件测试网7VIh5w)M*@.HTM

  ● 其他覆盖: 点覆盖/边覆盖51Testing软件测试网1r6a"Re-Q4H#cy


TAG:

 

评分:0

我来说两句

Open Toolbar