0%
这是一片思考的空间 -- arthinking
Spring 重构&代码整洁之道 软件设计 JVM 并发编程 数据结构与算法 分布式 存储 网络 微服务 设计模式
Java技术栈 - 涉及Java技术体系

软件工程实现-软件测试 软件配置

1、选择程序设计语言主要的实用标准有哪些?

(1)系统用户的要求 (2)可以使用的编译程序 (3)可以得到的软件工具 (4)工程规模 (5)程序员的知识 (6)软件可移植性要求 (7)软件的应用领域

2、软件测试的目的是什么?

发现并改正软件中的错误。 为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

3、软件测试的三大阶段:单元测试P153)、集成测试(组装测试)、确认测试(验收测试)的主要任务(目的)是什么?测试的内容主要有哪些?测试计划分别在什么时候制定?测试计划的内容有哪些?

模块测试(单元测试)

目的是保证每个模块作为一个单元能正确运行。

在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。

测试内容包括:

1.模块接口测试----检测数据能否正确无误地进入和流出模块 2.路径测试 3.出错处理测试----测试程序中包含的出错处理是否有效 4.边界条件测试----检测在数据边界处,模块能否正常工作

集成测试 任务

在单元测试的基础上,需要将所有模块按照设计要求组装成为系统,发现并排除在模块连接的接口中可能出现的问题,最终构成所要求的软件系统。

集成测试的内容

(1)把各个模块连接起来后,考察穿越模块接口的数据是否会丢失或产生错误 (2)各个子功能组合起来,能否达到预期要求的主要功能 (3)一个模块的功能是否会对另一个模块的功能产生不利的影响 (4)全局数据结构是否有错误 (5)单个模块的误差累积起来,是否会被放大,从而达到不能被接受的程度

确认测试 目标:验证软件的有效性。 内容:

运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。通过测试和调试要保证软件能:①满足所有功能要求,②能达到每个性能要求,③文档资料是准确而完整的,此外,④还应该保证软件能满足其他预定的要求(例如,安全性、可移植性、兼容性和可维护性等)。

4、什么是白合测试?典型的白盒测试技术有哪几个,含义如何?简单的逻辑覆盖测试用例设计。

白盒测试照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

白盒测试技术:

1、逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖; 2、控制结构测试:基本路径测试、条件测试、循环测试。

1、语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次; 2、判定覆盖:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次; 3、条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果; 4、判定/条件覆盖:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。

逻辑覆盖测试的5种标准 test

• 条件覆盖不一定包含判定覆盖;判定覆盖也不一定包含条件覆盖。 • 条件组合覆盖是前述几种覆盖标准中最强的。但是,满足条件组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到。

5、什么是黑合测试?典型的黑盒测试技术有哪几个,含义如何?简单的等价类划分测试用例设计。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。

黑盒测试技术:1、等价划分;2、边界值分析;3、错误推测。

题目1、测试的目的。

为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

题目2、测试的步骤,过程。

1、 模块测试;2、子系统测试;3系统测试;4、验收测试;5、平等运行。

题目3、软件测试的目标,文档和可维护性之间的关系。

文档是响软件可维护性的决定因素.由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档在软件的可维护性上不可缺少的因素。

题目4、白盒测试和黑盒测试的内容,各用于哪些阶段?

白盒测试照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。

题目5、白盒、黑盒测试的分类、大意。

白盒:1、逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖;2、控制结构测试:基本路径测试、条件测试、循环测试。

黑盒:1、等价划分;2、边界值分析;3、错误推测。

题目6、白盒测试技术中的语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖。

1、语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次; 2、判定覆盖:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次; 3、条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果; 4、判定/条件覆盖:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。

题目7、设计下列伪代码程序的语句覆盖和路径覆盖测试用例:

START
INPUT(A,B,C)
IF A>5
THEN X=10
ELSE X=1
END IF
IF B>10
THEN Y=20
ELSE Y=2
END IF
IF C>15
THEN Z=30
THEN Z=3
END IF
PRINT(X,Y,Z)
STOP

(1)语句覆盖测试用例

语句覆盖的含义是,选择足够多的测试数据,使被测试程序中的每个语句至少执行一次。

① 三个判断表达式都为假: 输入:A=1,B=2,C=3 输出:X=1,Y=2,Z=3

② 三个判断表达式都为真: 输入:A=6,B=11,C=16 输出:X=10,Y=20,Z=30

(2)路径覆盖测试用例

路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次。

① 三个判断表达式都为真 输入:A=6,B=11,C=16 输出:X=10,Y=20,Z=30

② 三个判断表达式依次为:真 真 假 输入:A=6,B=11,C=1 输出:X=10,Y=20,Z=3

③ 三个判断表达式依次为:真 假 真 输入:A=6,B=1,C=16 输出:X=10,Y=2,Z=30

④ 三个判断表达式依次为:真 假 假 输入:A=6,B=1,C=1 输出:X=10,Y=2,Z=3

⑤ 三个判断表达式依次为:假 真 假 输入:A=1,B=11,C=1 输出:X=1,Y=20,Z=3

⑥ 三个判断表达式依次为:假 真 真 输入:A=1,B=11,C=16 输出:X=1,Y=20,Z=30

⑦ 三个判断表达式依次为:假 假 真 输入:A=1,B=1,C=16 输出:X=1,Y=2,Z=30

⑧ 三个判断表达式依次为:假 假 假 输入:A=1,B=2,C=3 输出:X=1,Y=2,Z=3

题目8、航空公司A向软件公司B订购了一个规划飞行路线的程序。假设自己是软件公司C的软件工程师,A公司已雇用自己民在的公司对上述程序进行验收测试。任务是,根据下述事实设计验收测试输入数据,解释选取这些数据的理由。 领航员向程序输入出发点和目的地,以及根据天气和飞机型号而初步确定的飞行高度。程序读入途中的风向风力等数据,并且制定出3套飞行计划(高度,速度,方向及途中的5个位置校核点)。所制定的飞行计划应做到燃料和飞行时间都最少。

(1) 用正常的输入数据作为测试数据

① 向程序输入常规的出发点,目的地,飞机型号,5个位置校核点,高度和速度。 ② 输入3~5组出发点和目的地,重复执行步骤1 ③ 输入固定的出发点、目的地、飞机型号、5个位置校核点和高度,分别输入3~5个不同的速度,重复执行步骤1 ④ 输入固定的出发点、目的地、飞机型号、5个位置校核点和速度,分别输入3~5个不同的高度,重复执行步骤1 ⑤ 输入固定的出发点、目的地、飞机型号、速度和高度,分别输入3~5组不同的位置校核点,重复执行步骤1 ⑥ 输入固定的出发点、目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1 ⑦ 输入固定的目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1 ⑧ 输入固定的出发点、5个位置校核点和高度,分别输入3~5个不同的目的地,重复执行步骤1

(2) 用特殊的数据值作为测试数据

① 分别输入非常高和非常低的数据组合测试 ② 用负数测试 ③ 输入数字0进行测试 ④ 分别输入相距非常远和非常近的出发点和目的地测试

题目9、设计下列函数的测试方案:函数SEARCH(somearray,size,value)的功能是,在一个整型数组somearray中搜索一个值为value的整数。如果数组中有这个数,则函数返回该数的下标,否则返回-1。数组长度为size,下标从1开始。

此测试方案可以采用等价划分测试。

① 首先给出某个数组somearray和size,size等于数组的大小,并给出需要查找的值,该值在somearray中; 预期的输出:返回查找数的下标。

② 首先给出某个数组somearray和size,size等于数组的大小,并给出需要查找的值,该值不在somearray中; 预期的输出:返回-1;

③ 首先给出某个数组somearray和size,size小于数组的大小,并给出需要查找的值,该值不在somearray中; 预期的输出:返回-1;

④ 首先给出某个数组somearray和size,size小于数组的大小,并给出需要查找的值,该值在somearray中; 预期的输出:返回-1;

⑤ 首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值不在somearray中; 预期的输出:返回-1;

⑥ 首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值在somearray中; 预期的输出:返回-1;

欢迎关注我的其它发布渠道

订阅IT宅
内功修炼
Java技术栈
Java架构杂谈是IT宅精品文章公众号,欢迎订阅:
📄 网络基础知识:两万字长文50+张趣图带你领悟网络编程的内功心法 📄 HTTP发展史:三万长文50+趣图带你领悟web编程的内功心法 📄 HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输 📄 HTTP/1.1报文详解:Method,URI,URL,消息头,消息体,状态行 📄 HTTP常用请求头大揭秘 📄 HTTPS:网络安全攻坚战 📄 HTTP/2:网络安全传输的快车道 📄 HTTP/3:让传输效率再一次起飞 📄 高性能网络编程:图解Socket核心内幕以及五大IO模型 📄 高性能网络编程:三分钟短文快速了解信号驱动式IO 📄 高性能网络编程:彻底弄懂IO复用 - IO处理杀手锏,带您深入了解select,poll,epoll 📄 高性能网络编程:异步IO:新时代的IO处理利器 📄 高性能网络编程:网络编程范式 - 高性能服务器就这么回事 📄 高性能网络编程:性能追击 - 万字长文30+图揭秘8大主流服务器程序线程模型
📄 Java内存模型:如果有人给你撕逼Java内存模型,就把这些问题甩给他 📄 一文带你彻底理解同步和锁的本质(干货) 📄 AQS与并发包中锁的通用实现 📄 ReentrantLock介绍与使用 📄 ReentrantReadWriteLock介绍与使用 📄 ReentrantLock的Condition原理解析 📄 如何优雅的中断线程 📄 如何优雅的挂起线程 📄 图解几个好玩的并发辅助工具类 📄 图解BlockingQueue阻塞队列
📄 消息队列那么多,为什么建议深入了解下RabbitMQ? 📄 高并发异步解耦利器:RocketMQ究竟强在哪里? 📄 Kafka必知必会18问:30+图带您看透Kafka
📄 洞悉MySQL底层架构:游走在缓冲与磁盘之间 📄 SQL运行内幕:从执行原理看调优的本质 📄 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法