关于测试的基础知识

测试基础知识
1.什么是软件测试

        软件测试时一种系统性的过程(一种有序,结构化且经过规划的方法或操作流程),评估和验证软件或应用程序的 质量,可靠性和正确性。通过运行软件,检测行为,比较实际结果与预期结果来完成这一任务。

        1.验证功能性

                确保软件的各个功能按照 需求规格书 中的要求正常工作 

        2.检测性能

                评估软件在各种负载条件(模拟实际环境中会出现的各种情况)下的 响应时间和资源利用率,确保在实际使用中的效率

        3.保证安全性

                检测和修复可能导致的安全漏洞的潜在问题,以确保软件不易收到恶意攻击

                更新,谨慎处理链接,使用防病毒程序,使用强密码和多因素验证,定期备份数据

        4.验证兼容性

                确保软件在不同的操作系统(windows,linux,maos,Android,ios,硬件配置和网络情况下的兼容性

        5.执行回归测试

                在软件进行更改或更新后,确保已有功能没有因为新的修改而受到影响。

        6.进行用户验收测试

                确保软件符合最终用户的需求和期望

2.为什么需要测试

        1.发现和修复缺陷

        2.确保功能符合需求

        3.提高用户满意度

        4.减少成本和风险

        5.确保系统稳定性和可靠性

        6.合规性和安全性

3. 测试的主要类型有哪些
        1.功能测试

                确保软件的各个功能按照需求规格书的要求正常运行,包括正常操作,异常处理,边界条件

        2.性能测试

                评估软件在各种负载和压力条件下的性能表现,包括响应时间,吞吐量,资源利用率,稳定性等

        3.安全测试

                评测和评估软件系统中可能存在的安全漏洞和弱点,确保系统在面对恶意攻击时能够保持安全。

        4.兼容性测试

                确保在不同的系统,浏览器,设备,网络环境中的兼容性和稳定性和用户体验的一致性

        5.可用性测试

                评估软件的用户界面和交互设计,确保用户可以轻松理解和操作软件,提高用户满意度和使用效率

        6.可靠性测试

                测试软件在长时间运行各种环境条件下的稳定性和可靠性,确保软件不会因为错误或者故障而中断服务

        7.回归测试

                确保软件在进行了修改或添加新功能后,已有的功能仍能够正常运行,没有引入问题或者错误

        8.验收测试

                由最终用户执行的测试,确认软件是否满足用户需求和预期,能够在实际环境中有效的运行和使用

        9.自动化测试

                使用自动化工具和执行脚本的测试,可以提高测试效率和覆盖范围,特别适用于重复性高的测试任务

        10.冒烟测试

                每次软件构建或者更新后,执行的基本测试,以验证系统的基本功能是否正常工作,通常用于快速确认系统是否可用于更广泛的测试

        11.单元测试(以下是代码开发者主要使用的,上面没有提到的)

                对于代码中的小单元(函数方法)的测试

        12.集成测试

                验证不同单元或组件在集成后的功能和接口是否能够正常工作的测试。

        13.功能测试

                验证软件各个功能是否按照需求规格书的要求正常运行的测试。

        14.接口测试

                验证软件接口的正确性和可靠性的测试。测试API的输入,输出,接口的调用方式和参数

      

4.什么是黑盒测试,什么是白盒测试,他们的区别是什么
        1.黑盒测试

                特点:只关注软件的功能和用户界面,不考虑内部实现细节,只需要通过输入和输出来验证软件的功能是否按照需求工作。

                焦点:主要集中于功能性需求,用户界面,系统与外部接口的交互等方面

                优点:独立于编码语言和内部设计进行测试,更侧重于用户体验和功能完整性

        2.白盒测试

                定义:在进行测试时,深入了解软件的内部设计结构,和代码逻辑

                特点:测试人员需要具备编程和软件设计的知识,以便能够理解和设计测试用例,测试覆盖内部逻辑和代码途径

                焦点:主要集中于代码的执行路径,条件覆盖,分支覆盖等内部实现细节

                优点可以更深入的检测代码中的错误和逻辑漏洞,有助于提高软件的代码质量和可靠性

        3.区别

                黑盒关注的是外部行为和功能,,而不考虑内部结构

                白盒则是关注内部结构,设计和代码执行路径

                黑盒测试不要求测试人员具有编程或者是代码级的理解能力

                白盒需要测试人员具备深入的编程和软件设计知识

                黑盒侧重于功能性要求和用户需求的覆盖

                白盒侧重于代码路径覆盖和逻辑覆盖

5.常用的测试工具,框架
        1.单元测试

                JUnit:Java中最常用的单元测试框架,支持断言和测试运行

                pytest:python的一个测试框架,支持自动发现测试,参数化测试

                NUnit:用于.NET平台的单元测试框架,支持各种测试方法和断言

        2.集成测试

                selenium: 用于自动化web应用程序测试的工具,支持多种浏览器

                jest:用于JavaScript代码的测试

                TestNG:Java中的测试框架,支持更多高级的测试功能和配置

        3.功能测试

                Robot Framework:用于自动化测试的开源框架

                SoapUI:用于测试SOAP和RESTful web服务的工具,支持功能和性能测试

                Postman:广泛用于API测试的工具,支持请求发送,断言,测试集合等功能

        4.性能测试

                Apache JMeter: 用于负载测试和性能测试的java应用程序

                Gatling: Scala编写的开源性能测试工具,适合高并发场景

                LoadRunner:用于性能测试的商业工具,支持多种协议和复杂的负载场景

        5.安全测试

                OWASP ZAP:开源的安全测试工具,用于查找Web应用程序中的安全漏洞

                Burp Suite:用于Web应用程序安全测试的集成平台

                Nmap:网络发现和安全审核工具,用于网络扫描和服务识别

        6.UI自动化测试

                Appium: 用于自动化移动应用程序测试的开源工具,支持ios,Android

                WinAppDriver:用于Windows桌面应用程序自动化测试的工具

                Cypress:现代的前端测试工具,支持ui自动化测还和端到端测试

6. 测试策略和方法
        1.要测试的功能/需求

                首先先取了解和分析要测试的功能或需求,确保测试用例覆盖了这些方面

        2.输入条件和预期输出

                确定输入条件,包括合法输入,非法输入,边界条件,预期输出

        3.测试场景和覆盖范围

                考虑不同的测试场景,正常流程,异常流程,边界情况,确保涵盖到所有情况

        4.兼容性和环境因素

                考虑环境的兼容性要求,操作系统,浏览器,设备,不同环境

        5.重复性和可维护性

                设计的测试用例应该易于重复执行和维护,包括测试数据的管理和更新

7.哪些测试应该自动化

        频繁性和稳定性:测试用例是否需要频繁执行以及是否稳定不变入过一个测试用例需要每天多次运行,那么自动化可以显著减少时间和成本

        重复性:手动执行会导致繁琐和可能到的错误。自动化可以确保测试步骤的一致性和准确性

        回归测试:对于需要频繁回归测试的场景,自动化可以节省大量的时间和人力资源

        复杂性:某些测试场景可能非常复杂难以手动执行,自动化可以有效的处理这种情况

8.常见的自动化测试工具和框架

        Selenium: 用于自动化Web测试的工具,支持多种浏览器

        JUnit:java中的主流单元测试框架,用于编写和执行java单元测试

        pytest:Python的测试框架,支持自动发现测试,参数化测试

        TestNG:Java中的测试框架,提供了更多的测试功能和灵活性

        Robot Framework:通用的自动化测试框架,支持关键字的驱动测试

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值