1、软件质量模型:
功能性:能够满足明确和隐含要求的功能
可靠性:能够处理异常情况,并且很快从错误中恢复
易用性:易懂,易学,易用,整洁漂亮
效率性:占用资源少,提供适当的性能
维护性:指产品的可更新修改的能力
可移植性:指软件产品从一个环境到另一个环境迁移的适应能力
2、软件测试分类(行业名词理解):
①:是否覆盖源代码:
黑盒测试:不关注源代码,关注客户需求是否实现。
白盒测试:关注源代码,并且是关注代码细节。
灰盒测试:鉴于两者之间,既关注客户需求是否实现,又关注代码,只不过不会那么细节。
补充:理解为盒子里装的就是代码。
②:按照阶段划分:
单元测试>>集成测试>>系统测试>>验收测试(由小到大)
单元测试:对软件中最小的可测单元进行测试。
集成测试:在单元测试的基础上,对多个单元组装后的产物进行测试。
系统测试:在集成测试的基础上,把软件看作一个整体进行测试。
验收测试:也叫交付测试,最终以用户的角度确认软件是否符合预期。
单元和集成测试往往是开发自己去做的,系统和验收测试是我们主要关注的测试内容。
③:是否运行:
静态测试:代码的编写规范,命名规范,注释规范。
动态测试:让软件运行起来做的测试。往往我们测试人员都需要这样做才能测试软件是否达到用户需求的功能。
④:是否自动化:
手工测试:通过手动来观察。
自动化测试:通过 代码和工具来进行测试,这是测试行业的趋势,也是竞争力的展现,高薪。
⑤:更多测试(名词):
冒烟测试:对软件基本功能先进行测试,以免对测试工作出现资源浪费,也就是说怕直接详细的测试,测到一半发现是软件最基本的功能都没实现,白白浪费时间,开发修改之后还要重复工作,浪费精力。
回归测试:对BUG或者测试用例进行回归测试,也就是对出错的地方重新再进行测试。
随机测试:假设自己第一次使用此软件,也就是当成小白用户进行随机测试,避免测试人员的惯性思维。
探索测试:同时做测试设计和测试执行,探索复杂场景,容易被忽视的场景。
3、软件开发常见模型:
瀑布模型:
显著优点:每一步阶段清晰。
显著缺点:明显比较依赖前一个步骤,如果前一个步骤出错,下一个环节就会出错,也就是说如果最开始的需求分析出错,那整个项目都一错到底。
适合需求比较明确的大型项目。
快速原型模型:
显著优点:客户可以直接参与到软件生产过程中,一步一步评价改进,最终肯定可以达到客户预期要求。
显著缺点:对于大项目来说,由于快速分析比较简陋,只是功能实现,会导致开发过程中的文档不完善,而且由于周期长,出现人员变动,文档的缺失就会导致后期维护十分困难。
适合需求灵活的中小型项目。
4、软件测试常见模型:
①:V模型:
为什么不是一条直线,而是V字?
因为单元测试是对编码的测试,验收测试是对用户最终需求做的测试,所以是对应关系,才是V型。
V模型的优点:包含了底层测试和高层测试。
V模型的缺点:测试介入时间比较晚,软件开发完成后才介入测试工作,介入时间晚,就不会发现前期需求分析的问题,修复成本较大。
②:W模型(双V模型):
为什么是交叉的,而不是直接并列?
同样是因为每一步都是对应关系,所以才交叉画。
W模型的优点:测试介入时间早,早期就会发现需求分析的问题,修复成本低。
W模型的缺点:步骤复杂,对人员要求高,要懂测试用例的设计,还有要读懂开发相关的文档。
5、软件缺陷(bug):
定义:软件或程序中存在的任何问题及错误都叫软件缺陷。
软件缺陷的标准:
软件缺陷报告的关键因素:
例如:计算器项目中计算器无法进行加法运算时,缺陷报告怎么写。