软测知识点
静态测试方法:静态分析测试程序时,并不实际运行程序,而对被测程序进行特性分析。
动态测试方法:通过输入测试用例,对其输出1情况进行分析。
黑盒测试:只考虑程序的输入输出关系,程序功能。依靠这种关系确定测试用例和推断测试结果的正确性,功能的正确性和可操作性。
白盒测试:基于程序测试,分析程序的内部结构,检查程序的状态,对逻辑路径测试,对程序细节严查。
白盒测试也称为覆盖测试。
语句覆盖:程序中的每一条语句都被检验过。缺少对判断的检验。
分支覆盖:把所有的分支路径走一遍,满足逻辑0或1即可。
条件覆盖:将判定式里的条件,虽然分支考虑逻辑的0和1,条件覆盖考虑导致0和1各个条件,并把各个条件都取一遍。
判断/条件覆盖:同时考虑条件的组合值及判定结果的检验。
路径覆盖:对程序所有可能的路径进行检验。
等价类:对揭露程序中的错误来说,集合中的每个输入条件是等效的。
黑盒测试的测试规划:从用户界面及体现它们的输入和输出对应关系,进行功能测试,优点站在客户的角度上测试,不能发现内部错误。
白盒测试的测试规划:从程序的内部结构,语句的控制结构,模块间的控制结构以及内部数据结构。对特定部位进行检查,不能检查外部特性和对未实现部分进行测试。
回归测试:目标:修改软件后,未引入其他错误。应用:增量开发、版本控制、软件维护。
模拟用户的软件测试方法:基于用户使用被测软件来开发测试方法,为了着重解决用户面临的问题。
测试步骤:
单元测试:算法与逻辑、边界条件、模块接口、错误处理、数据结构(局部和全局)、独立路径。
单元测试、集成测试、系统测试。
单元测试:目的确保每个模块都能正确工作。
单元测试的辅助模块:
驱动程序:用于模拟主程序的运行。
桩程序:用于模拟子程序的运行。
进行集成测试的原因:
一个模块对另一个模块进行不利影响。
子模块合成后不一定产生主功能。
所有模块组合后,会超过可接受误差。
模块间的时序问题、竞争问题。
系统测试:
偏向于非功能性测试:
比如一个用户在开发环境下对软件测试、公司内部用户对软件测试。
开发环境是支持软件工程化开发和维护的软件。
强度测试:系统运行环境不正常乃至发生故障,系统可以运行到何种情况。
目的:查找模块接口间的错误。
集合测试的方法
非增式测试 增式测试
工作量 大 小
接口错误 发现晚 发现早
错误定位 定位难 定位易
测试程度 测试不彻底 测试彻底
需要的机器量 需要机器少 需要机器多
测试的并行性 并行性好 并行性差
非增式测试:采用一步到位的方法,将每个模块进行单元测试,按结构图将每个模块连接起来,把程序当成一个整体测试。
增式测试:把要测试的模块同已经测试好的模块结合起来进行测试,一次增加一个测试模块。
增式测试:分为自底向上,自顶向下。初步开发需要。
自顶向下集成的步骤:
主控模块作为测试驱动,所有与主控模块相连的模块叫桩模块。
根据集成方式每次用一个替换从属的桩模块。
模块必须都已完成单元测试。
还要进行回归测试。
自底向上测试:
从底层模块开始构建,用以完成指定的软件子功能。
编制驱动程序,协调测试用例的输入与输出。
测试集成后的构件。
去掉构件,向上组装构件。
自顶向下测试:逐步求精一开始就能看到框架,需要桩模块,用桩模块表示测试数据有困难,测试数据难于生成,观察输出有困难。
自底向上测试:由于驱动模块模拟了所有参数,生成数据没有困难,适合关键模块在底部的情况。直到组成才发现整个系统的框架,发现时序问题和资源竞争问题。
性能测试:检查系统是否满足说明书中规定的性能。
安全性:检测系统的安全性是否有漏洞。
可使用性:从软件使用的合理性、方便性进行检查,发现人为因素的问题。
安装测试:检验安装错误。硬件是否合理。系统的每一部分是否齐全,所有文件都产生正确的内容。一套方案是否相融。
兼容性测试:软件产品在不同版本间的兼容性。
配置测试:计算机各个设备,各个资源之间的相互连接和功能分配中的错误。
容量测试:系统能力最高能到什么程度。