1、什么是软件、软件的特征有哪些?
软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。即计算机程序、规程、文档和软件系统运行所必需的数据。
软件的特征:
- 软件是由开发产生,不是用传统方法制造的;
- 软件不会像硬件那样有磨损;
- 软件不能通过已有构件组装,只能自己定义。
2、软件分为哪几类?
系统软件、应用软件、WEB软件、工程和科学软件、嵌入式软件、产品线软件、人工智能软件等。
3、什么是软件质量、软件质量从哪几个方面看?
软件质量 是指软件系统或系统中的软件部分的质量,既满足用户需求,也包括功能需求和性能需求的程度。
从哪几个方面来看软件质量?
- 软件结构方面:软件应具有良好的结构;
- 功能和性能方面:其软件应能够按照既定的工作要求工作,并且与明确规定的功能、性能需求一直;
- 开发标准与文档方面:软件开发应用必须和明确沉稳的开发标准一致,遵循软件开发准则,做到软件文档资料齐全。
4、软件测试与软件调试的区别是什么?
- 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程;
- 软件调试:将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程;
- 测试是为了发现软件中存在的错误,调试是为了证明软件开发的正确性;
- 测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试. 调试一般是以不可预知的内部条件开始,除统计性调试外,结果是不可预见的;
- 测试是有计划性的,需要进行测试设计,调试是不受时间约束的;
- 测试经历发现错误、改正错误、重新测试的过程,调试是一个推理的过程。
5、软件测试的方法有哪些?
- 静态方法和动态方法:静态方法分为代码检查、静态结构分析、代码质量度量,动态方法分为功能确认与接口测试、覆盖率分析及性能分析;
- 黑盒测试方法:主要有等价类划分、边值分析、因果图、错误推测、穷举输入测试方法;
- 白盒测试方法:逻辑覆盖、域测试、路径测试、程序插桩、程序编译;
- 灰盒测试,介于黑盒白盒测试之间;
- 软件开发阶段的测试方法:需求测试、单元测试、集成测试、性能测试、容量测试、配置测试、安装测试、安全性测试。
6、什么是黑盒测试、白盒测试和灰盒测试?
- 黑盒测试也称功能测试或数据驱动测试,是已知软件所需功能,通过测试来检测每个功能是否都能正常使用。
- 白盒测试也称结构测试或逻辑驱动测试,知道软件内部的工作过程,可通过测试来检测软件内部的动作是否按照规格说明书所规定正常运行,并且按照软件内部的结构测试程序来检测程序中的每条道路是否都能按照预定要求进行正常工作,而不考虑功能是否正确。
- 灰盒测试介于黑盒与白盒之间,关注对于输入的正确性,同时也关注内部表现。
7、什么是软件质量控制模型TSQC?
TSQC过程是一个调节和控制那些影响软件质量的参数的过程。隐形软件质量的参数如下:
- 产品:所有可交付物;
- 过程:所有活动的集合;
- 资源:活动的物质基础(人力、技术、设备、时间、资金等)。
TSQC过程是PDCA的几个活动的循环。
- 计划Plan:确定参数要求;
- 实施Do:根据要求开展活动;
- 检查Check:通过评审、度量、测试确认满足要求;
- 改进Action:纠正参数要求再开发。
8、软件质量控制的实施过程有哪些?
- 预开发阶段:主要活动包括买主与客户研究建立需求、发布招标请求、选择资源、与开发者签订合同;
- 开发阶段:涵盖从产品开发到移交产品别获得客户的满意度结束的全过程;
- 维护阶段:主要是对产品的及时更新。
9、软件质量保证模型有哪些?分别是啥?
- McCall模型:分别面向软件产品的运行、修正、转移;
- Boehm模型:着手于软件总体功效,对于软件系统而言,除了有用性以外,开发过程必定是一个时间、金钱、能量的小号过程;
- FURPS模型:功能性、可用性、可靠性、性能及支持度评估;
- ISO 9126:功能性、可靠性、可用性、效率、可维护性及可移植性。
10、什么是冗余技术?又分为哪几种技术?
冗余技术又称储备技术,有时也称容灾备份技术,它是利用系统的并联模型来提高系统可靠性的一种手段;
冗余技术分为工作冗余和后备冗余。
11、软件影响因素有哪些?
- 需求分析定义错误;
- 设计错误;
- 编码错误;
- 测试错误;
- 文档错误。
12、软件的差错、故障和失效是什么?
- 异常:偏离期望的状态(或预期值)的任何情形都称为异常;
- 缺陷:不符合使用要求,或与技术规格说明不一致的任何状态都称为缺陷;
- 差错:
- 计算的,观测的或测量的值与真实的规定的或理论上正确的值或者条件之间的差别;
- 一个不正确的步骤、过程、数据定义;
- 一个不正确的结果;
- 一次产生不正确的结果的人的活动;
- 故障:一个计算机程序中出现的不正确的步骤、过程、数据定义常称为故障;
- 失效:一个程序运行的外部结果与软件产品的要求出现不一致时称为失效。
13、什么是软件可靠性模型?都有哪些模型?
为预计或估算软件的可靠性所建立的可靠性框图和数学模型 。
- Musa模型,包括基本模型和对数模型;
- Shooman模型;
- aoel-oknmoto模型;
- 测试成功模型;
- 威布尔模型。
14、为什么需要软件评审?
- 提高项目的生产率;
- 改善软件的质量;
- 在评审过程中使开发团队的其他成员更熟悉产品和开发过程;
- 通过评审标志软件开发的一个阶段的完成;
- 生产出更容易维护的软件。
15、软件评审有哪些内容?
- 管理评审;
- 技术评审;
- 文档评审;
- 过程评审。
16、评审的方法及技术有哪些?
评审的方法:特别检查、轮查、走查、团队评审、监视;
评审的技术:缺陷检查表、规则表、评审工具的使用、从不同角度理解产品、场景分析技术。
17、如何准备评审会议?
- 何时召开评审会议;
- 选择那些评审材料;
- 打包分发评审材料;
- 合理安排评审活动进程。
18、召开评审会议有几个步骤?
- 评审预备;
- 评审开始;
- 评审决议;
- 评审结果;
- 几个原则。
19、提高程序质量的技术有哪些?
内存分配方式:从静态存储区域分配;在栈上创建;从堆上分配
面向对象的设计规则
1)开-闭原则 2)里氏代换原则 3)依赖倒转原则 4)合成/聚合复用原则 5)迪米特原则 6)接口隔离原则 7)基本的设计模式
20、软件测试的原则有哪些?
- 在整个开发过程中要尽早地和不断的进行软件测试;
- 在开始测试时不应默认程序中不存在错误;
- 在设计测试用例时要给出测试的预期结果;
- 测试工作应避免由系统开发人员或开发机构本身来承担;
- 对合理和不合理的输入数据都要进行测试;
- 重点测试错误群集的程序区段;
- 除检查程序功能是否有多余;
- 用穷举例测试是不可能的;
- 长期完整的保留所有的测试用例和测试文件,直到该软件产品被废弃为止。
21、软件测试过程有哪些?
单元测试、集成测试、系统测试、验收测试、在所有测试过程中始终贯穿着回归测试。
22、软件测试的种类有哪些?
单元测试、集成测试、功能测试、压力/负载测试、验收测试。
23、白盒测试方法工具有哪些?
1)静态测试方法 工具:logiscope软件,P.RQA软件,c++Test;
2)动态测试方法:代码检查法,静态结构分析法,静态质量度量法,逻辑覆盖法,基本路径测试法,域测试,符号测试,路径覆盖,程序变异;
工具:DevPartner软件、Purity系列、xUnit系列框架(单元测试工具)。
24、黑盒测试工具有哪些?
1)功能测试工具:WinRunner,AutoIT,Twist
2)性能测试工具:LoadRunner
25、黑盒测试方法有哪些?
- 等价类划分
- 边界值分析法
- 因果图法
- 功能图法
26、划分等价类的原则是什么?
- 在输入条件规定了取值范围或值的个数和情况下可以确立一个有效等价类和两个无效等价类;
- 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下可以确立一个有效等价类和一个无效等价类;
- 在输入条件是一个布尔量的情况下可以确定一个有效等价类和一个无效等价类;
- 在规定了输入数据的一组值(假设n个)并且程序要对每一个输入值分别处理的情况下可以确立n个有效等价类和一个无效等价类;
- 在规定了输入数据必须遵守的规则的情况下可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
- 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下应将该等价类进一步划分为更小的等价类。
27、软件测试 经典测试用例三角形问题
28、因果图测试用例问题
29、白盒测试程序的结构有哪些?
顺序结构、分支结构、循环结构 。
30、白盒测试方法的覆盖标准有哪些?
逻辑覆盖,循环覆盖,基本路径测试。
31、逻辑覆盖包括那些?
分支结构的测试和循环结构的测试、 分支结构的测试又包括语句覆盖 、分支覆盖 、条件覆盖、分支-条件覆盖、条件组合覆盖、路径覆盖。
32、集成测试策略有:非渐增式集成和渐增式集成。
33、什么是渐进增式集成?什么是非渐增式继承?
光分别测试每个模块,再把所有模块按设计要求放在一起,结合所要的程序,这种方法称为非渐增式集成;
把一个要测试的模块与已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合起来进行测试,这种每次增加一个模块的方法称为渐增式集成。
34.渐增式集成分为:自顶向下增式集成测试,自底向上增式集成测试
35.面向对象的集成测试的步骤
- 先选定检测的类,仔细给出类的状态和相应的行为,类或成员函数间传递的消息,输入或输出的界定等
- 确定覆盖标准
- 利用结构关系图,确定待测类的所有关联
- 根据程序中类的对象构造测试用例,确认使用什么输入法激发类的状态,使用类的服务和期望产生什么行为等
36.常用的技术测试有哪些?
1)抽样测试 2)正交阵列测试