1.知识点总结
Q:请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
-
单元测试 (Unit Testing)
单元测试是对软件中最小可测试单元(通常是函数或方法)进行验证的过程。它的目的是确保每个单元在设计时的功能能够正常运行。单元测试通常由开发人员编写,并且可以在代码开发的早期阶段进行。 -
集成测试 (Integration Testing)
集成测试是在多个单元组合后进行的测试,目的是验证不同模块或系统组件之间的交互是否正常。 -
系统测试 (System Testing)
系统测试是在完整的软件系统上进行的测试,目的是确保系统在整体上满足指定的要求。系统测试通常由专门的测试团队进行,涵盖功能测试、性能测试、安全性测试等多个方面。 -
验收测试 (Acceptance Testing)
验收测试是由最终用户或客户进行的测试,目的是确认软件系统是否满足业务需求并可以投入生产。验收测试分为用户验收测试(UAT)和合同验收测试(CAT)。成功通过验收测试意味着软件可以正式发布。 -
回归测试 (Regression Testing)
回归测试是在软件修改或更新后进行的测试,目的是确保新更改没有引入新的缺陷,并且旧的功能仍然正常。回归测试通常涵盖之前的测试用例,以确保软件的稳定性和可靠性。
Q:请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步?
我认为是系统测试。
因为此时单元测试和集成测试已完成,能够对初版软件所有功能进行功能、性能和安全性进行整体测试,能够验证系统是否满足了产品定义的需求,因此我认为系统测试很重要。
Q:请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?
区别:
1.系统测试要早于集成测试。系统测试用例书在需求阶段写;集成测试用例书在设计阶段写。
2.系统测试更全面,全面测试系统的功能性、安全性和稳定性;集成测试更详细,主要针对一些各个模块之间的接口交互。
3。顺序是先集成测试(黑百盒相结合),后系统测试(黑盒测试)。
场景:
集成测试用于模块接口和模块之间交互的场景。系统测试用于测试整个完整系统极其实际应用的场景。
Q:测试开发需要哪些知识?需具备什么能力?
1.软件测试基础理论知识,如黑盒测试、白盒测试等;
2.编程语言基础,如C/C++、java、python等;
3.自动化测试工具,如Selenium、Appium、Robotium等;
4.计算机基础知识,如数据库、Linux、计算机网络等;
5.测试框架,如JUnit等。
能力:需求分析能力、洞察问题的能力、团队合作沟通能力、独立思考和解决问题的能力。
Q:介绍一下黑盒测试和白盒测试?
总结:两者的区别在于是否需要了解“内部结构”
黑盒测试:又叫数据驱动测试,主要针对功能和性能进行测试。不考虑程序内部逻辑,当成一个黑盒子只考虑数据的吞吐,根据需求对功能进行验证的一种测试方法。
白盒测试:又称逻辑驱动测试、结构化测试,是针对程序设计逻辑和内部结构进行测试。
Q:请说一下手动测试与自动化测试的优缺点?
手动测试优点:
门槛低,快速上手;更灵活。
缺点:
耗时;存在人为错误的可能性。
自动化测试优点:
面对大量重复性测试的时候可以高效准确的完成,测试过程可以被记录。
缺点:门槛高、维护成本高。