Software testing is simply the process of investigation done to a software to provide stakeholders with status and information about the quality of the software product or service under test. Testing techniques include the process of executing a program or an application with the intent of finding software bugs, errors or other defects, and verifying that the software product is free of errors and ready to be used. The software quality engineers are responsible for reducing the probability of bugs occurring during development and also identifying any errors that come up during the development and fixing them. It is essential for creating high quality software products that are bug free. Bugs can be of small impact, but also they can be fatal! It’s necessary because simply everybody makes mistakes. Skipping the testing process of a software product may cause it and the business to suffer, ending up as a useless tool with a loss of effort, time and money. So here are some key points why software testing is important to your product.   Ensuring Product Quality In order to make your product come to life, it has to be done as planned. Following product requirements is essential, to an extent, because it helps you get the required end results. So testing processes are designed to ensure that the software product’s reliably and stability. There are different software testing procedures designed to test the functionality, performance, security, usability, and much more to ensure that the final product has minimal defects and is ready to work as planned.   Saving Time & Money Testing has many benefits and one of the most important ones is cost saving. The advantage of having clear processes in place during development phase is that they prevent most bugs and errors from happening in the first place. So the errors that do occur are relatively minor, and can be fixed easily. However, without testing most bugs can be bigger and may appear after the product is released and fixing it at this phase will take time and will cost a lot in turn. That’s why testing can save you a lot on the long term.   Security An important point to take into consideration is security. This is probably the most sensitive and most vulnerable part of the whole development process. There have been many cases of users information were hacked and stolen by hackers to be used for their benefits, that’s why your product must be secure and trusted s you won’t lose your customer base and your product’s reputation. Users always want to use a product they trust and be confident when providing them with their personal information that must be private as possible, especially for banking and payments services for example.   Users Satisfaction The main goal of a product or service provider is to give their customers the best customer experience yet satisfaction. You need to keep your customers happy and loyal to your app, however, errors and bugs can make you lose your customer base. In order to ensure satisfied customers, your product needs to fulfil their needs. It should have all the features required working properly as expected. Software quality engineers would define the features and test each and every step taken in the app to ensure that the whole user flow is working properly as expected. When your users have satisfying customer experience they will certainly tell their friends and word to mouth will increase your customer base with no effort, but be careful, this works both ways.   So it’s now obvious that Software testing is a really important step in developing your product. We at Enozom provide high quality custom Web Development & Mobile Development with careful testing process done to deliver defects free products. Contact us now and hire your testing team!      

     
    Quality ControlSoftware Developmet

    What is Cucumber and what are the advantages of Cucumber? To run functional tests written in a plain text Cucumber tool is used. It is written in a Ruby programming language. Advantages of Cucumber 1- You can inolve business stakeholders who can not code 2- End user experience is priority. 3- High code reuse. What are the 2 files required to execute a Cucumber test scenario? The 2 files required to execute a Cucumber test scenario are 1- Features 2- Step Definition. What is feature file in Cucumber? What does feature file consist of ? Feature file in cucumber consist of parameters or conditions required for executing code, they are: a) Feature. b) Scenario. a) Scenario Outline. b) Given. c) When. d) Then. What is step definition in Cucumber? A step definition is the actual code implementation of the feature mentioned in feature file. Explain what is BDD (Behaviour Driven Development)? BDD or Behaviour driven development is a process of developing software based on TDD (Test Driven Development) which focusses on behavioural specification of software units. What are before, after, beforeStep and afterStep hooks? 1- Before: executes before the feature file execution. 2- After: executes after the feature file execution. 3- BeforeStep: executes before the each step execution. 4- AfterStep: executes after the each step execution. What are cucumber tags? And why do we use them? Cucumber tags help in filtering the scenarios. We can tag the scenarios and then run them based on tags. 1- We can add tags to scenarios with <@> symbol. Explain what is test harness? A test harness for cucumber and rspec allows for separating responsibility between setting up the context and interacting with the browser and cleaning up the step definition files. Explain what is Scenario Outline in feature file? Scenario Outline: Same scenario can be executed for multiple sets of data using scenario outline. The data is provided by a tabular structure separated by (I I). What is the purpose of cucumber dry-run? We use to compile the cucumber feature files and step definitions. If there occur any compilation errors, then it shows them on the console.

     
    Quality Control

    What is Automation Testing? Automation testing or Test Automation is a process of automating the manual process to test the application/system under test. Automation testing involves use to a separate testing tool which lets you create test scripts which can be executed repeatedly and doesn’t require any manual intervention. What is Selenium and what is composed of? Selenium is a suite of tools for automated web testing. It is composed of: 1- Selenium IDE (Integrated Development Environment): It is a tool for recording and playing back. It is a firefox plugin 2- WebDriver and RC: It provide the APIs for a variety of languages like Java, .NET, PHP, etc. With most of the browsers Webdriver and RC work. 3- Grid: With the help of Grid you can distribute tests on multiple machines so that test can be run parallel which helps in cutting down the time required for running in browser test suites What are the testing types that can be supported by Selenium? For web based application testing selenium can be used: The test types can be supported are: a) Functional, Learn More about Functional Testing. b) Regression.   For post release validation with continuous integration automation tool could be used:   a) Jenkins. b) Hudson. c) Quick Build. d) CruiseCont. What are the limitations of Selenium? Following are the limitations of Selenium: Selenium supports testing of only web based applications Mobile applications cannot be tested using Selenium Captcha and Bar code readers cannot be tested using Selenium Reports can only be generated using third party tools like TestNG or Junit. As Selenium is a free tool, thus there is no ready vendor support though the user can find numerous helping communities. User is expected to possess prior programming language knowledge. List out different types of locators? Different types of locators are: By.id() By.name() By.tagName() By.className() By.linkText() By.partialLinkText() By.xpath By.cssSelector() What is difference between assert and verify commands? Assert: Assert command checks whether the given condition is true or false. Let’s say we assert whether the given element is present on the web page or not. If the condition is true then the program control will execute the next test step but if the condition is false, the execution would stop and no further test would be executed. Verify: Verify command also checks whether the given condition is true or false. Irrespective of the condition being true or false, the program execution doesn’t halts i.e. any failure during verification would not stop the execution and all the test steps would be executed. How can we handle windows based pop up? Selenium is an automation testing tool which supports only web application testing, that means, it doesn’t support testing of windows based applications. However Selenium alone can’t help the situation but along with some third party intervention, this problem can be overcome. There are several third party tools available for handling window based pop ups along with the selenium like AutoIT, Robot class etc. Mention what is the difference between Implicit wait and Explicit wait? Implicit Wait: Sets a timeout for all successive Web Element searches. For the specified amount of time it will try looking for element again and again before throwing a NoSuchElementException. It waits for elements to show up. Explicit Wait: It is a one-timer, used for a particular search. Explain what is the difference between find elements () and find element ()? find element (): It finds the first element within the current page using the given “locating mechanism”. It returns a single WebElement findElements () : Using the given “locating mechanism” find all the elements within the current page. It returns a list of web elements. Explain what are the limitations of Selenium IDE? The limitations of Selenium IDE: Exceptional handling is not present Selenium IDE uses only HTML languages External databases reading is not possible with IDE Reading from the external files like .txt, .xls is not possible Conditional or branching statements execution like if,else, select statements is not possible

     
    Quality Control