|
|
|
|
|
|
|
|
|
|
|
|
|
软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。成功的测试是发现了至今未发现的错误的测试。
|
|
|
|
|
|
一个规范的软件测试过程通常包括制订测试计划、编制测试大纲、根据测试大纲设计和生成测试用例、实施测试和生成测试报告。
|
|
|
|
|
|
软件测试的关键是测试用例的设计。软件测试的种类大致可分为人工测试和动态测试,动态测试方法中又根据测试用例的设计方法不同,分为白盒测试和黑盒测试。
|
|
|
|
|
|
白盒测试法需要了解程序内部的结构,测试用例是根据程序的内部逻辑来设计的。白盒测试法主要用于软件的单元测试。
|
|
|
|
|
|
|
|
(2)保证所测模块所有判断的每一个分支至少执行一次。
|
|
|
|
(3)保证所测模块每一个循环都在边界条件和一般条件至少执行一次。
|
|
|
|
|
|
白盒测试法常用的技术是逻辑覆盖。主要的覆盖标准有6种,强度由低到高依次是语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
|
|
|
|
|
|
黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。黑盒测试法主要用软件的确认测试。
|
|
|
|
|
|
(1)等价类划分:把输入数据划分成若干个有效等价类和若干个无效等价类,然后设计测试用例覆盖这些等价类。
|
|
|
|
(2)边界值分析:对各种输入、输出范围的边界情况设计测试用例的方法。这是因为程序中在处理边界情况时出错的概率比较大。
|
|
|
|
(3)错误猜测:根据经验或直觉推测程序中可能存在的各种错误。
|
|
|
|
(4)因果图:根据输入条件与输出结果之间的因果关系来设计测试用例。
|
|
|
|
|
|
|
|
(1)单元测试:其也称模块测试,主要发现编码和详细设计中产生的错误,通常采用白盒测试。放在编码阶段,由程序员自己来完成,检查它是否实现了详细设计说明书中规定的模块功能和算法。单元测试的测试计划是在详细设计阶段完成。
|
|
|
|
(2)集成测试:其也称组装测试,对由各模块组装而成的程序进行测试,主要检查模块间的接口和通信。集成测试主要发现设计阶段产生的错误,通常采用黑盒测试或灰盒测试。集成的方式可分成非渐增式集成和渐增式集成。集成测试的测试计划是在概要设计阶段完成。
|
|
|
|
(3)确认测试:检查软件的功能、性能及其他特征是否与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试。确认测试通常采用黑盒测试,其测试计划是在需求分析阶段完成。
|
|
|
|
(4)系统测试:把已经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。主要内容包括恢复测试、安全测试、强度测试、性能测试、可靠性测试、安装测试等。
|
|
|
|
|
|
软件调试是在进行了成功的测试之后才开始的工作。其任务是进一步诊断和改正程序中潜在的错误。调试由两部分组成:确定错误的确切性质和位置、修改程序(设计、编码)。目前常用的调试方法有以下5种:试探法、回溯法、对分查找法、归纳法、演绎法。
|
|
|