Continuous Testing

Continuous testing is executing automated tests in software delivery pipeline for quick feedback on the software release candidate.

Q.1 What do you understand about the term Docker?
Docker refers to a containerization platform that packages your application and all its dependencies together in the form of containers so as to ensure that your application works seamlessly in any environment be it development or test or production. Further, Docker containers, wrap a piece of software in a complete file system that contains everything needed to run: code, runtime, system tools, system libraries, etc. anything that can be installed on a server.
Q.2 Why DevOps is used?
Nowadays companies are trying to see if small features can be transported to their customers via a series of release trains. This has many advantages like quick feedback from customers, the better quality of software, etc. which in turn leads to high customer satisfaction. To achieve this, companies are using DevOps to fulfill all these requirements and helps in achieving seamless software delivery by: Increasing deployment frequency Lowering failure rate of new releases Shortened lead time between fixes Quick mean time to recovery in the event of new release crashing
Q.3 What is a Microservice Architecture?
Microservice Architecture refers to an architectural style that structures an application as a collection of small autonomous services, modeled around a business domain.
Q.4 What makes DevOps different from Agile/SDLC?
Agile software development methodology aims at the development of software. And, DevOps is responsible for the development as well as deployment of the software in the safest and most reliable way possible.
Q.5 Can you provide the success factors for Continuous Integration?
The factors can be: Firstly, maintaining a code repository. Secondly, automating the build. Thirdly, making the build self-testing. Then, keeping the build fast and testing in a clone of the production environment. Next, making it easy to get the latest deliverables and everyone can see the results of the latest build. Lastly, automating deployment.
Q.6 Define Containerization.
Containerization can be defined as a type of virtualization strategy that emerged as an alternative to traditional hypervisor-based virtualization. In this, the operating system is shared by the different containers rather than cloned for each virtual machine.
Q.7 Define a Docker image and a container.
An instance of an image is called a container. You have an image, which is a set of layers. If you begin this image, you have a running container of this image. After that, you can have many running containers of the same image. And, then, you can see all your images with Docker images whereas you can see your running containers with Docker ps. Therefore, a running instance of an image is a container.
Q.8 Explain the function of the CI (Continuous Integration) server.
CI server function is used for continuously integrating all changes being made and committed to the repository by different developers and check for compile errors. It requires creating code several times a day, preferably after every commit so it can identify which commit made the breakage if the breakage happens.
Q.9 Define Continuous Integration and Continuous Deployment.
Continuous Integration can be defined as testing your code all the time and keeping software quality high. It provides you the confidence to get stuff out as quickly and often as possible. Whereas Continuous Deployment is basically getting code into production. This makes things easy and repeatable.
Q.10 What is the process for Release Planning?
Release planning is done once a quarter. However, the first week or two of the quarter is for planning the quarter and then we have about 8 to 9 weeks we can work on the features. After that, for the initial backlog, there is the creation of rough estimations and then, calculation in points.
Q.11 Explain the term ‘Functional testing’.
A black box testing method in which the functionality of an application is tested for creating the desired output by providing certain input is called ‘Functional testing’. However, the role of functional testing is not only to validate the behavior of the application as per the requirement document specification but is also to verify whether the application is ready to be released into the live environment or not.
Q.12 Differentiate between Functional testing and Non-Functional testing.
Functional testing determines the system behavior as per the client’s functional requirements. Whereas Non-functional testing is the process to determine the system performance as per client expectations. Secondly, Functional testing is performed first with the help of Manual and Automation testing tools. And, Non-functional testing is performed after functional testing with the effective tools required. Thirdly, it is easy to perform manual testing as client requirements are the input in functional testing. And for Nonfunctional Testing, it is difficult to perform manual testing as scalability, reliability, speed and other performance parameters are input.
Q.13 What do you understand by the term defect?
The defect is an error found after the application goes into production. It commonly refers to various troubles with the software products, with their external behavior, or with their internal features. In other words, a Defect is a difference between expected and actual results in the context of testing. It is the deviation of the customer requirement.
Q.14 Explain what is a bug and a failure.
A bug is the result of a coding error. An error is found in the development environment before the product is shipped to the customer. A programming error that causes a program to work poorly, produce incorrect results, or crash. A bug is the terminology of Tester. On the other hand, a failure is the inability of a software system or component to execute its required functions within defined performance requirements. When a defect reaches the end customer it is called a Failure.
Q.15 Define the term fault.
This can be defined as an incorrect step, process, or data definition in a computer program that causes the program to perform in an unintended or unanticipated manner. A fault is introduced into the software as the result of an error. It is an irregularity in the software that may cause it to behave incorrectly, and not according to its specification. It is the result of the error.
Q.16 Define Static Testing.
Static Testing can be defined as a type of software testing in which software application is tested without code execution. Manual or automated reviews of code, requirement documents, and document design are done in order to find the errors. The main focus of static testing is to improve the quality of software applications by finding errors in the early stages of the software development process.
Q.17 What do you understand about Dynamic Testing?
Under Dynamic Testing, a code is executed. It inspects for functional behavior of the software system, memory/CPU usage, and overall performance of the system. However, the main focus of this testing is to confirm that the software product works in conformance with the business requirements. This testing is also called an Execution technique or validation testing.
Q.18 Define Software Quality Assurance.
Software quality assurance (SQA) refers to the process which assures that all software engineering processes, methods, activities, and work items are monitored and comply with the defined standards. These defined standards could be one or a combination of any like ISO 9000, CMMI model, ISO15504, etc. Further, SQA incorporates all software development processes starting from specifying requirements to coding until release.
Q.19 Define black box testing and its techniques.
Black box testing refers to a software testing method that is used for testing the software without knowing the internal structure of code or program. This testing is usually done for checking the functionality of an application. However, the black box testing techniques are: Equivalence Partitioning Boundary value analysis Cause-effect graphing
Q.20 Explain Continuous Delivery.
Continuous Delivery can be defined as the ability to get modifications of all types including new features, configuration changes, bug fixes, and experiments into production, or into the hands of users, safely and quickly in a sustainable way.
Q.21 Explain the continuous delivery best practices.
Continuous delivery helps in achieving several important benefits: Firstly, the primary goal of continuous delivery is to make software deployments painless, low-risk events that can be performed at any time, on-demand. Secondly, it provides faster time to market. That is to say when teams work together to automate the build and deployment, environment provisioning, and regression testing processes, developers can incorporate integration and regression testing into their daily work and completely remove these phases. Thirdly, it offers higher quality. By creating a deployment pipeline, activities can be performed continuously throughout the delivery process, ensuring quality is built into products and services from the beginning. Then, by investing in build, test, deployment, and environment automation, we substantially reduce the cost of making and delivering incremental changes to software by removing many of the fixed costs associated with the release process. Lastly, continuous delivery makes it economic to work in small batches.
Q.22 Define Continuous monitoring.
This can be defined as the process and technology used for detecting compliance and risk issues linked with an organization's financial and operational environment. Further, via continuous monitoring of the operations and controls, weak or poorly designed or implemented controls can be corrected or replaced. Thus enhancing the organization's operational risk profile. Investors, governments, the public, and other stakeholders continue to increase their demands for more effective corporate governance and business transparency.
Q.23 Explain Continuous Deployment.
Continuous Deployment (CD) refers to a software release process that uses automated testing for validating if changes to a codebase are correct and stable for immediate autonomous deployment to a production environment.
Q.24 Name some of the Continuous Deployment Tools.
Establishing continuous deployment requires substantial engineering investment. The following is a list of tools that are needed to build a continuous deployment pipeline. 1. Automated testing Automated tests are used to prevent any regressions when new code is introduced and can replace manual reviews of new code changes. 2. Rolling deployments Automated rolling deployment tools like green-blue deploys are a requirement for proper continuous deployment. 3. Monitoring and alerts A robust continuous deployment pipeline will have real-time monitoring and alerts. These tools provide visibility into the health of the overall system and into the before and after a state of new code deployments.
Q.25 Define Continuous Testing.
Continuous Testing refers to the process of executing automated tests as part of the software delivery pipeline in order to obtain feedback on the business risks associated with a software release candidate as rapidly as possible. It evolves and enlarges test automation for addressing the increased complexity and pace of modern application development and delivery.
Q.26 Explain the common challenges in Continuous Testing.
Some of the challenges include: Firstly, lack of Testability Support in Products. A test automation system is a very basic requirement for Continuous Testing. To achieve strong automated testing for a product, you need to have almost all of your test cases automated. Secondly, absence of Standard Tools. For a variety of products, standard tools to achieve continuous testing don’t exist. Thirdly, absence of faster Feedback Loops. For supporting Continuous Testing, it is important to incorporate feedback on an ongoing basis. Then, lack of Testing Infrastructure. Often, organizations embark on the path of embracing Continuous Testing, without realizing the budgetary needs for it. Lastly, lack of Enough Testers. Most product teams don’t have enough testers, which sometimes creates bottlenecks for achieving continuous testing. Continuous testing is an ongoing journey and requires high initial investments in terms of setup, which may create an extra workload for testers.
Q.27 Name some of the Continuous Testing Tools.
The tools include: Katalon Studio Selenium Appium Eggplant Watir Tosca Unified Functional Tester
Q.28 What is Travis CI?
This refers to a hosted continuous integration service used for building and testing software projects hosted on GitHub and Bitbucket. However, Travis CI was the first CI service that provided services to open-source projects for free and continues to do so.
Q.29 Define Jenkins.
Jenkins is a free and open-source automation server that helps in automating the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, and Apache Maven type projects as well as arbitrary shell scripts and Windows batch commands.
Q.30 Define unit testing.
Unit testing can be defined as the process of testing discrete functions at the source code level. A developer will write a test that exercises a function. As the function is exercised, the test makes assertions against the results that the function returns. Functions that do not return a result are not good subjects for unit tests. Such functions alter the state of the system beyond the scope of the given function. Thus, the function needs to be tested at the integration or system level.
Q.31 What do you know about Test Artifacts?
Test Artifacts are simply an integral part of software testing that refers to a set of documents, which software project tester gets during STLC (Software Testing Life Cycle). Test artifacts are by-products that are generated or created while performing software testing. These created test artifacts are then shared with clients and testing team or team managers, team leaders, stakeholders associated with the project, and also with members of other teams.
Q.32 Explain the types of Test Artifacts.
1. Test Strategy This is generally prepared by the Test or Project Manager at the management level. It is an outline of a document that describes the testing approach of the development cycle of software which enlists how to achieve the expected results using resources that are available. 2. Test Plan The test plan is a detailed document that explains software testing scope, test strategy, test deliverables, risk, objectives, and activities. It is a systemic approach generally used for software application testing. 3. Test Scenario A test scenario is a statement that is used to explain the functionality of an application that can be tested. It is simply used to make sure that end-to-end testing of features or software is working well. 4. Test Case The test case is a detailed document that explains cases that will help execution while testing. It is a document that consists of test case name, precondition, steps/input condition, and expected results.
Q.33 What do you understand about the traceability matrix?
The relationship between test cases and requirements is shown with the help of a document. And, this document is known as a traceability matrix. Further, it helps to ensure transparency and completeness of products of software testing.
Q.34 What is a Software Test Report?
A software test report refers to a document that explains all testing activities. It provides detailed information about the status of test cases, test suites, or test scripts for a given scope. A test report is very much required for representing test results in a formal way that gives the opportunity to find out testing results quickly. The test reports can be of many types: Individual test reports, team reports, etc.
Q.35 What are the steps for executing a continuous testing process?
1. A Continuous Integration Tool A basic continuous integration tool allows the team to integrate new code that has been deposited into a central repository to produce a new build of a software solution. Before submitting a new code into the central repository, team members can work independently to develop a new feature or new functionalities without affecting the version used by other team members. 2. Environment Provisioning Having to create a test environment every time a team member wants to test a feature adds unnecessary steps that slow the development team down and end up wasting a ton of time over the course of an entire project. For this, a platform like Docker can make this process much smoother and much simpler. 3. End-To-End Testing Environment provisioning and a continuous integration tool allow team members to verify new changes faster and more efficiently. After that, end-to-end testing, which integrates test scenarios, test scripts, and test automation tools into a single platform, ensures software quality by testing the application from beginning to end and generating detailed test results. 4. Teamwork A continuous testing process seeks to integrate testers and quality assurance specialists directly into the development team, allowing them to work side-by-side with developers to elaborate test strategies together.
Q.36 Define Version control.
This refers to a system that records changes to a file or set of files over time so that you can recall specific versions later. Version control systems consist of a central shared repository where teammates can commit changes to a file or set of files. Further, this allows to: Firstly, revert files back to a previous state. Secondly, compare changes over time. Lastly, check who last modified the files in order to find the cause of the problem.
Q.37 How can we create a backup and copy files in Jenkins?
For creating a backup, periodically back up your JENKINS_HOME directory. This contains all of your build jobs configurations, your slave node configurations, and your build history. And, for creating a backup of your Jenkins setup, just copy this directory. You can also copy a job directory to clone or replicate a job or rename the directory.
Q.38 Define Selenium IDE.
This refers to an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and playback tests in the actual environment that they will run in.
Q.39 Name the types of testing supported by Selenium?
Selenium supports two types of testing: 1. Regression Testing It is the act of retesting a product around an area where a bug was fixed. 2. Functional Testing This refers to the testing of software features (functional points) individually.
Q.40 What do you understand by the term Chef?
Chef refers to a powerful automation platform that transforms infrastructure into code. A chef is a tool for which you write scripts that are used to automate processes. Further, the architecture of Chef consists of: Chef Server Chef Node Chef Workstation
Q.41 What is continuous testing agile?

Continuous testing is agile but it should be executed as per agile principles.  


You can learn and certify about continuous testing and agile by Vskills at link - https://www.vskills.in/certification/testing/continuous-testing-certification


Q.42 What is continuous automation?

Continuous automation is automating every aspect of software development and continuously implementing automation so as to develop and deploy software with quick changes but maintaining consistency and reliability with customer delight.

 

Automation testing can be learnt and certified by Vskills at link - https://www.vskills.in/certification/testing/automation-functional-testing-certification

Q.43 Why is continuous testing important for DevOps?

Continuous testing important for DevOps as it is the core link in Devops. Continuous testing in DevOps enables quick delivery, errors being fixed quickly tough having reliable and functional software for end users.

 

Continuous testing enables testing to be done at each step of Devops.

To certify on continuous testing, register on link - https://www.vskills.in/certification/testing/continuous-testing-certification

 

Candidate gets following deliverables

-              Online video based, e-learning LMS

-              Hard copy to candidates residing in India

-              Practice tests for assessing your knowledge

-              Government certification

Q.44 What are the key elements of continuous testing tools?

The key elements of continuous testing tools are

- quick test case development

- facility for unit and integration testing

- facility to conduct other types of software testing like stress, functional, performance, etc

- access to all cross functional teams and team members

- versioning of all tests and their results

- export of test results in supporting softwares

Q.45 What is Agile methodology in testing?

Agile methodology in testing is about implementing Agile methodology in software testing. Agile methodology involves following the Agile principles and following iterative continuous testing of the software. The continuous testing of the software is done at each stage of software development.

 

Catering to customer requirements is to be followed at each stage.

Q.46 What is the purpose of a continuous integration tool?

The purpose of a continuous integration tool is to provide facility to easily integrate software code in the continuous development related environment like agile.

A continuous integration tool provides the following facilities

- facility for unit and integration testing

- facility to conduct other types of software testing like stress, functional, performance, etc

- access to all cross functional teams and team members

Q.47 What is the difference between continuous integration and continuous delivery?

The difference between continuous integration and continuous delivery is about the function to be done.

Continuous delivery is about build, test and release of software in continuous manner.

Continuous integration is done prior building the software, as the developed software needs to be integrated.

Q.48 How do you do continuous integration?

To do continuous integration involves following steps

 

- Use a code repository

- Enable automation of building process

- enable auto unit and integration testing of the build

- Maintain the commit schedule to baseline

- release the build after testing

Q.49 What are the benefits of continuous integration?

The benefits of continuous integration are

 

- quick turnaround for bugs/errors

- better customer satisfaction

- good communication and team dynamics

- low overhead and resource need

- better resource utilization

- increased automation and quality level

Q.50 How is agile testing different?

Agile testing is different as it implements continuous testing and iteratively building the software whereas traditional testing is step by step as in waterfall which is slow and does not respond to changes / errors quickly.

Q.51 What is DevOps testing?

DevOps testing means testing at all stages of DevOps. It involves usage of tools for automation testing and continuous integration so as to test at each stage of Devops.

Q.52 What does continuous testing mean?

Continuous testing means testing continuously by executing automated test cases and responding to changes or errors quickly. Thus, reducing time to release and have higher user satisfaction.

Q.53 Is there any certification for Continuous testing?

Yes, Continuous testing certification is at link - https://www.vskills.in/certification/testing/continuous-testing-certification

 

Vskills offers following deliverables

-              Online video based, e-learning LMS

-              Hard copy to candidates residing in India

-              Practice tests for assessing your knowledge

-              Government certification

-              Alumni working in reputed software companies like Accenture, Cognizant, etc

Q.54 Is there any good link to practice my Continuous testing skills?
Yes, link to practice Continuous testing skills is at link - https://www.vskills.in/practice/continuous-testing-questions
Get Govt. Certified Take Test