1.编码和测试统称为实现。
2.编码:把软件设计结果翻译成程序。
3.测试:检测程序并改正错误的过程
01 有理想的模块化机制;
02 可读性好的控制结构和数据结构;
03 便于调试和提高软件可靠性;
04 编译程序发现程序错误的能力强;
05 有良好的独立编译机制。
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试
测试的定义:为了发现程序中的错误而执行程序的过程。
为了能设计出有效的测试方案,软件工程师必须深入理解并运用指导软件测试的基本准则。
如果已经知道软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试称黑盒测试。也称功能测试。
也称结构测试。
如果知道软件内部工作过程,可以通过测试来检验软件内部动作是否按照规格说明书的规定正常进行,这种测试称为白盒测试。
1)非渐增式测试方法
先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
2)渐增式测试方法
每次增加一个待测试模块,把它同已经测试好的那些模块结合起来进行测试,反复进行直到完成所有模块测试的方法
1)深度优先策略
2)宽度优先策略
自底向上集成方法是从软件结构最底层模块开始进行组装和测试,它与自顶向下结合方法相反,需要驱动程序,不需要存根程序
回归测试用于保证由于调试或其他原因引起的程序变化,不会导致额外错误的测试活动。
• 也称为验收测试,目标是验证软件的有效性。
• 如果软件的功能和性能符合用户的期待,软件就是有效的。
• 软件规格说明书是进行确认测试的基础。
确认测试一般使用黑盒测试法。
目的:保证软件配置的所有成分都齐全,质量符合要求,文档与程序完全一致,而且已经编好
目录。
Alpha测试:用户在开发者的场所进行测试,并且在开发者的指导下进行,测试在受控环境中进行,开发者记录发现的错误和问题;
Beta测试:用户在一个或多个客户场所进行测试,不受开发者控制,测试者记录发现的问题和错误,定期将问题报告发送给开发者。
设计的测试用例能使程序中每条语句至少执行一次。如果遵循这个规定则说明达到了100%的语句覆盖。
语句覆盖是最弱的逻辑覆盖准则,它发现不了判断中逻辑运算符的错误。
判定覆盖是指:选取足够的测试用例,使得程序中每个判断的可能结果都至少执行一次,也就是说使
程序的每个判断分支至少通过一次。
比语句覆盖稍强的逻辑覆盖准则,它任然发现不了判断中逻辑运算符的错误。
条件覆盖是指:选择足够的测试用例,使得程序中每个判定表达式的每个条件都取到各种可能的结果。即每个判定中的所有条件取值组合都被至少执行一次。
条件组合覆盖指:选取足够的测试用例,使得每个判定表达式中条件的各种可能的组合都至少出现一次。
测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又叫做功能测试或数据驱动测试。
等价类划分是一种黑盒测试技术。
等价类某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
对故障可修复系统,应同时使用可靠性和可用性来衡量。
可靠性和可用性的区别是:可靠性是在0到t时间间隔内,系统没有失效的概率。而可用性是在t时刻,
系统是正常运行的概率。
如果引入系统平均无故障时间MTTF和平均维修时间MTTR的概念,则上面公式的系统稳态可靠性变成:
平均维修时间MTTR是修复一个故障平均需要用的时间,取决于维护人员的技术水平和对系统熟悉程度。
平均无故障时间MTTF是系统按照规格说明书规定成功地运行的平均时间,取决于系统中潜伏的错误数量。
估算MTTF时使用到下列符号
ET——测试之前程序中故障总数;
IT——程序长度(机器指令总数);
τ——测试(包括调试)时间;
Ed(τ) ——在0至τ期间发现的错误数;
Ec(τ) ——在0至τ期间改正的错误数;
1.实现包括编码和测试两个阶段。
2.高级程序设计语言较汇编语言有很多优点。
3.通常软件测试至少分为单元测试、集成测试和验收测试3个基本阶段。
4.软件测试不仅仅指利用计算机进行的测试,还包括人工进行的测试(例如,代码审查)。
5.白盒测试和黑盒测试是软件测试的两类基本方法,设计白盒测试方案的技术主要有,逻辑覆盖和控
制结构测试;设计黑盒测试方案的技术主要有,等价划分、边界值分析和错误推测。
7.及时改正测试过程中发现的软件错误就是调试的任务。
7.程序中潜藏的错误的数目,直接决定了软件的可靠性。通过测试可以估算出程序中剩余的错误数。