1.什么是软件缺陷?软件缺陷的产生对软件有什么影响?
软件缺陷:就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。IEEE(Institute of Electrical and Electronics Engineers,电气电子工程师协会)729-1983标准对软件缺陷有一个标准的定义:从产品内部看,缺陷是产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统运行过程中某种功能的失效或违背。
第一,栈溢出。就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做操作的时候,错误的写操作可能导致栈中也特殊意义的地址被用户的输入内容所控制。
第二, heap overflow。这是现代程序C语言主要申请分配方法,所以他比栈溢出比例大的多。
第三,未初始化的问题。栈上的问题由德国人在06年详细讨论过。头一次压栈的时候,在栈上写需要内容,然后函数退出,导致栈顶上移,有问题的函数压栈时正好利用这段栈空间,如果函数中发现了未初始化问题,比如数组,那么其内容刚好是我们刚写入的内容的栈空间,就可能被利用。
第四,二次释放或者叫double free问题。内存泄露是现代软件大敌,特别是服务器软件。有很多程序员害怕发生这样的问题,申请内存时总是想释放它,结果释放多了几次,这样也会有安全问题。
2.什么是软件测试?软件测试的基本原则是什么?
软件bai测试就是在软件投入运行du前,对软件zhi需求分析、设计规格说明和编dao码实现zhuan的最终审查。
软件测试的目的是:
(1)从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,已考虑是否可以接受产品。
(2)从软件开发者出发,则希望软件测试成为表明软件产品不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
3.什么是软件测试用例?良好的测试用例应该具有什么样的特性?
1. 整体完备性:“好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。
2. 等价类划分的准确性:指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。
3. 等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别。
4.怎样搭建软件测试环境?对软件测试人员有什么要求?
一 确定测试环境的组成
二、管理测试环境
1. 设置专门的测试环境管理员角色
2. 记录好测试环境管理所需的各种文档:
3. 测试环境访问权限的管理
4. 测试环境的备份和恢复
测试人员要求:测试环境的搭建。包括操作系统、数据库、中间件、WEB服务器等必须软件的安装,配置,并做好各项安装、配置手册的编写;记录组成测试环境的各台机器的硬件配置、IP地址、端口配置、机器的具体用途,以及当前网络环境的情况;测试环境各项变更的执行及记录;测试环境的备份及恢复;操作系统、数据库、中间件、WEB服务器以及被测应用中所需的各用户名、密码以及权限的管理。