一、软件测试流程
需求分析
制订测试计划
设计测试用例与编写
实施测试
提交缺陷报告
生成测试总结和报告
二、什么是软件测试?软件测试的目的与原则?
测试是程序的执行过程,目的在于发现错误。
确保产品完成了它所承诺或公布的功能
确保产品满足性能和效率的要求
确保产品是健壮的和适应用户环境的
三、目前主要的测试方法是什么?
逻辑覆盖、循环覆盖、基本路径覆盖、边界值分析法、等价类划分、错误猜测法、因果图法、状态 图法、测试大纲法、随机测试、场景法
四、给你一个网站,你如何测试?
一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测 试;兼容性测试
设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
1.链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
2.提交功能的测试。
3.多媒体元素是否可以正确加载和显示。
4.多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
1.页面是否风格统一,美观
2.页面布局是否合理,重点内容和热点内容是否突出
3.控件是否正常使用
4.对于必须但未安装的控件,是否提供自动下载并安装的功能
5.文字检查
性能测试:
负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
比如:数据库系统测试关注重点:
1、数据库是否符合范式
2、数据库设计是否和数据库相同
3、数据库设计是否合理
4、数据库安装测试
5、数据库配置测试
安全性测试:
1.基本的登录功能的检查
2.是否存在溢出错误,导致系统崩溃或者权限泄露
3.相关开发语言的常见安全性问题检查,例如SQL注入等
4.如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
5.兼容性测试,根据需求说明的内容,确定支持的平台组合:
浏览器的兼容性;
操作系统的兼容性;
软件平台的兼容性;
数据库的兼容性
总结:
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。
五、软件的安全性应该从哪几个方面去测试?
用户认证安全的测试要考虑问题:
1. 明确区分系统中不同用户权限
2. 系统中会不会出现用户冲突
3. 系统会不会因用户的权限的改变造成混乱
4. 用户登陆密码是否是可见、可复制
5. 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
6. 用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
系统网络安全的测试要考虑问题
1.测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
2.模拟非授权攻击,看防护系统是否坚固
3.采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
4.采用各种木马检查工具检查系统木马情况
5. 采用各种防外挂工具检查系统各组程序的客外挂漏洞
数据库安全考虑问题:
1.系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
2.系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
3.系统数据可管理性
4.系统数据的独立性
5.系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
六、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点?
黑盒测试的优点 :
1.比较简单,不需要了解程序的内部的代码及实现
2. 与软件的内部实现无关
3.从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题
4.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能
5.在做软件自动化测试时较为方便
黑盒测试缺点:
1.不可能覆盖所有的代码, 覆盖率较低,大概只能达到总代码量的30%
2.自动化测试的复用性较低。
白盒测试的优点 :
1.帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题
白盒测试的缺点 :
1.程序运行会有很多不同的路径,不可能测试所有的运行路径
2.测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求
3.系统庞大时,测试开销会非常大。