Software Testing Q and A By Aditya
What is Software Testing?
In short, I would say software testing is a process to perform the functionality and quality check of the software product which matches the expected business requirements of the stakeholder and marking the product as a Bug free for end users.
What is black box testing?
In short, Black box testing mainly focus on input and output of the application without knowing the code. These test can be functional or non-functional without any reference to the structure of the application.
What is automation framework?
In short, a framework in automation is a platform developed by integrating the various hardware, software resources along with using various tools used to make our work easy like if we follow the set of guidelines like coding standards, test data handling, object repository and so on, when followed during the automation script which gives greater beneficial outcome like increate code reusability, higher portability, easy maintenance. Coming to test automation framework is for creating and designing test cases. These framework is set of rules which can be followed in a systematic way what ensures to deliver the best results.
What is the different between a test plan and test strategy?
A test plan is defined as a document which gives the scope, objective, method, time and weight on a testing task. And test strategy is defined as a set of principles which determines the design and regulates how the testing process will be done. The objective of test strategy is to give a systematic approach to the software testing process to ensure the quality, reliability, traceability and planning.
What is selenium?
Selenium is an open-source & portable automated software testing tool for web applications, which provides set of different software tools each with different approaches to test automation. Most of the QA engineers focus on one or two tools which meet the needs of project. Teaching all the tools gives them many different options for testing automation problems. Selenium is not just a single tool but a set of tools that helps testers to automate web applications more efficiently. The entire suite of tools results in a rich set of testing functions mainly focusing the needs of testing web applications in all types. These are highly flexible, allowing many options for locating the user interface elements and comparing the expected test results. One of the key feature is one test can run on different browsers.
When should we stop testing?
Testing can be stopped when the acceptance criteria been satisfied. Mainly we ca hold or stop testing when the below conditions been satisfied,
- When our software requirements is covered 100% and achieved all the test cases.
- Defects are been dealt and resolved.
- If all tests been passed with 95%.
- Deadline of out project is been met
- All test documents are prepared, reviewed and published go live.
- Testing budget is exhausted upon completion
- If stakeholder satisfied with the production and signoff we can stop testing.
What is regression testing?
In short, regression testing is nothing but full or partial selection of existing executed test cases which need to re-execute to ensure the existing and new functionalities work fine.
What are difference between functional and non functional testing.
Functional testing – It is the behavior of software under test, based on the given requirement from the stakeholder or client, a document which is called system requirement specification is used as a guide to test the application. It helps us to validate the behavior of the application.
Non Functional Testing – It is mostly done before release to make sure no developed tests get failed. Helps to validate the performance of the application.
|Functional Testing is performed before Non-Functional Testing.
|Non-Functional Testing performed after the Functional Testing is done.
|Functional Testing is based on stakeholder’s requirements specifications.
|Non-Functional Testing focusses on stakeholder’s expectation.
|Functional Testing is easy to define the functional requirements.
|Non-Functional Testing is bit difficult to define the requirements.
|Functional Testing helps us to validate the behavior of the application.
|Non-Functional Testing helps to validate the performance of the application.
|Functional Testing is carried out to validate software actions.
|Non-Functional Testing is done to validate the performance of the software.
|Functional Testing is carried out using the functional specification.
|Non-Functional Testing is a kind of testing which is carried out by performance specifications
|Functional Testing is easy to execute by manual testing.
|Non-Functional Testing is very hard to perform non-functional testing manually.
|Functional Testing describes what the product does.
|Non-Functional Testing describes how the product works.
|Example Test Case
|Functional Testing for check login functionality.
|Non-Functional Testing the dashboard should load in 2 seconds.
|Examples of Functional Testing Types as follows:
– Unit testing
– Smoke testing
– User Acceptance
– Integration Testing
– Regression Testing
|Examples of Non-functional Testing Types
– Performance Testing
– Volume Testing
– Usability Testing
– Load Testing
– Stress Testing
– Compliance Testing
– Portability Testing
– Disaster Recover Testing
What is unit testing?
It is a technique for individual modules been tested to determine if here are any issues by the developer. It is concerned with functional testing of standalone modules. The major aim is to isolate each unit of the application to identify, analyze and fix of issues.
What is smoke testing?
It is a technique which inspired from hardware testing to check for the smoke from the hardware components once the power is switched on. Similarly, in software testing the smoke testing is to test the basic functionality of the build. If the test fails, out build is unstable and is not tested anymore unless the smoke test of the build been passed.
What is Integration Testing?
Integration testing is a testing technique to ensure proper interfacing and interaction among the integrated modules or units after the integration process.
What is user acceptance testing?
User Acceptance Testing in short UAT is the last phase of software testing process. During UAT the client or users are involved in the testing the application to validate the application against the given requirement. This is performed at client’s location at developer’s site. The UAT comes under the functional testing.
What is Regression Testing?
Regression testing is also known as Re-Testing or re-executed test, is nothing but the full selection of application or partial section of application which is already executed test cases which need to be retested to check the existing functionalities working as expected. Here we have two types of regression testing,
- Final Regression Tests – this is performed to validate the changes. The build is deployed to customer end.
- Regression Tests – this is a normal regression testing which is performed to check the build has not broken. If any recent changed with code have been done the changes for defect fixed to be verified in this phase.
What is Performance Testing?
Performance testing is a main technique in nonfunctional testing process which is used to determine the system parameters in responsiveness. This testing is used to speed the testing, response time, reliability, scalability, stability and resource used of a software application under particular load. The main purpose of this testing is to identify and remove the performance of the bottlenecks in application.
What is volume testing?
This testing belongs to nonfunctional test, where the software is the part of performance testing with huge volume of data. It is also referred as flood testing. In volume testing we analyze the system performance by increasing the volume of data in Database.
What is scalability testing?
This test comes under non functional tests, in scalability testing the performance testing parameter which investigate with application ability to grow by increasing the workload per user or the size of database.
What is Usability testing?
Usability testing comes under non-functional testing technique where we measure of how system or application can be used by end users.
What is load testing?
Load testing is performance testing technique, where response of the application or system is measured under various load conditions. The load testing is performed for normal & full load conditions.
What is stress testing?
Stress testing comes under nonfunctional testing technique. During stress testing, the application or system is monitored after exposing the system to overload to ensure that the system can sustain the full stress mode. The recovery of the system from such phase is very critical as it is highly likely to happen in production environment.
When I created the selenium script in eclipse & here when I try to run I am getting error like “the import org.openqa cannot be resolved” in import files?
This is due to not configuring properly Jars. Here are the steps to follow Selenium library in the class path.
1) Firstly, right click on our Project ABCsExample > Select Properties > Java build path. Then navigate to Libraries tab & then click Add External JARs.
2) Do add all Selenium Java jar files from the lib folder as well.
3) Click OK.
Why do we need to run selenium tests in parallel?
In testing1000 automated test scripts from an application on different browsers tests are performed orderly. This approach of testing is very much time consuming, So we go with parallel testing which helps us to reduce the execution time and efforts. The results are also shown faster.
What is Web-Table in selenium.
We have two which are published on web.
- Static – Number of rows & columns are fixed in static table.
- Dynamic – the number of rows and columns are not fixed in dynamic table.
In short, the web-table is a kind of grid which consist of rows & columns. When needed to present the values using rows and columns; School timetable, it has TR & TD HTML tags.
What is the importance of Geolocation browser testing?
Geolocation browser testing is done very frequently these days, by this testing approach we can assure out website or app is loading right on the particular location. By geolocation testing we can perform website testing from ay set of IPs which belong to different countries around the world. In a decade the number of websites have been increased rapidly, with this increased website for which we use this geolocation testing approach. For Example- if we collect mobile numbers from mobile users we want to check the country code to be filled automatically by the location of the user, we need to include this into our test suite.
What are Selenium Webdriver Commands?
In selenium webdriver we have mainly three types of commands, they are classified into in following category:
- Browser Commands
- Navigation Commands
- WebElement Commands
What is fullscreen() Method in Selenium Webdriver
The fullscreen() method is used to full screen the current window if it is not already fullscreen. In this method the title bar is no displayed. Until Selenium 3 version, there were several issues reported with fullscreen() feature doesn’t work mostly (not always) when using ChromeDriver and it throws org.openqa.selenium.UnsupportedCommandException: unknown command. We have a workaround to use ChromeOptions options.addArguments(“start-fullscreen”) in that case where you get “org.openqa.selenium.UnsupportedCommandException: unknown command” error on using fullscreen(). But in Selenium 4 (alpha 3), fullscreen() works like charm without any issue.
What is maximize() Method in Selenium Webdriver
The maximize() method is used to resize the current window to set dimension to maxmimun screen where the title bar of the window is still displayed. Maximizes the current window if it is not already maximized.
What is Software Quality Assurance (SQA)?
Software quality assurance is an umbrella term, consisting of various planned process and activities to monitor and control the standard of whole software development process so as to ensure quality attribute in the final software product.
What is Software Quality Control (SQC)?
With the purpose similar to software quality assurance, software quality control focuses on the software instead to its development process to achieve and maintain the quality aspect in the software product.
Whether, software quality assurance (sqa), software quality control (sqc) & software testing are similar terms?
No, but the end purpose of all is same i.e. ensuring and maintaining the software quality.
What is the difference between SQA, SQC and Testing?
SQA is a broader term encompassing both SQC and testing in it and ensures software development process quality and standard and subsequently in the final product also, whereas testing which is used to identify and detect software defects is a subset of SQC.
What is software testing life cycle (STLC)?
Software testing life cycle defines and describes the multiple phases which are executed in a sequential order to carry out the testing of a software product. The phases of STLC are requirement, planning, analysis, design, implementation, execution, conclusion and closure.
How STLC is related to or different from SDLC (software development life cycle)?
Both SDLC and STLC depict the phases to be carried out in a subsequent manner, but for different purpose. SDLC defines each and every phase of software development including testing, whereas STLC outlines the phases to be executed during a testing process. It may be inferred that STLC is incorporated in the SDLC phase of testing.
What are the phases involved in the software testing life cycle?
The phases of STLC are requirement, planning, analysis, design, implementation, execution, conclusion and closure.
Why entry criteria and exit criteria is specified and defined?
Entry and exit criteria is defined and specified to initiate and terminate a particular testing process or activity respectively, when certain conditions, factors and requirements is/are being met or fulfilled.
What do you mean by the requirement study and analysis?
Requirement study and analysis is the process of studying and analysing the testable requirements and specifications through the combined efforts of QA team, business analyst, client and stakeholders.
What are the different types of requirements required in software testing?
Software/functional requirements, business requirements and user requirements.
Is it possible to test without requirements?
Yes, testing is an art, which may be carried out without requirements by a tester by making use of his/her intellects possessed, acquired skills and gained experience in the relevant domain.
Differentiate between software requirement specifications (SRS) and business requirement specification (BRS).
SRS layouts the functional and non-functional requirements for the software to be developed whereas BRS reflects the business requirement i.e., the business demand of a software product as stated by the client.
Why there is a bug/defect in software?
A bug or a defect in software occurs due to various reasons and conditions such as misunderstanding or requirements, time restriction, lack of experience, faulty third party tools, dynamic or last time changes, etc.
What is bug leakage and bug release?
Bug release is when software or an application is handed over to the testing team knowing that the defect is present in a release. During this the priority and severity of bug is low, as bug can be removed before the final handover.
Bug leakage is something, when the bug is discovered by the end users or customer, and not detected by the testing team while testing the software.
What is a software testing artifact?
Software testing artifact or testing artifact are the documents or tangible products generated throughout the testing process for the purpose of testing or correspondence amongst the team and with the client.
What are test plan, test suite and test case?
Test plan defines the comprehensive approach to perform testing of the system and not for the single testing process or activity. A test case is based on the specified requirements & specifications define the sequence of activities to verify and validate one or more than one functionality of the system. Test suite is a collection of similar types of test cases.
How to design test cases?
Broadly, there are three different approaches or techniques to design test cases. These are Black box design technique, based on requirements and specifications. White box design technique based on internal structure of the software application. Experience based design technique based on the experience gained by a tester.
What is test environment?
A test environment comprises of necessary software and hardware along with the network configuration and settings to simulate intended environment for the execution of tests on the software.
Why test environment is needed?
Dynamic testing of the software requires specific and controlled environment comprising of hardware, software and multiple factors under which a software is intended to perform its functioning. Thus, test environment provides the platform to test the functionalities of software in the specified environment and conditions.
What is test execution?
Test execution is one of the phases of testing life cycle which concerns with the execution of test cases or test plans on the software product to ensure its quality with respect to specified requirements and specifications.
What are the different levels of testing?
Generally, there are four levels of testing viz. unit testing, integration testing, system testing and acceptance testing.
What is unit testing?
Unit testing involves the testing of each smallest testable unit of the system, independently.
What is the role of developer in unit testing?
As developers are well versed with their lines of code, they are preferred and being assigned the responsibility of writing and executing the unit tests.
What are stubs and drivers and how these are different to each other?
Stubs and drivers are the replicas of modules which are either not available or have not been created yet and thus they works as the substitutes in the process of integration testing with the difference that stubs are used in top bottom approach and drivers are used in bottom up approach.
What is system testing?
System testing is used to test the completely integrated system as a one system against the specified requirements and specifications.
Different types of acceptance testing.
Broadly, acceptance testing is of two types-alpha testing and beta testing. Further, acceptance testing can also be classified into following forms:
- Operational acceptance testing
- Contract acceptance testing
- Regulation acceptance testing
Difference between alpha and beta testing.
Both alpha and beta testing are the forms of acceptance testing where former is carried out at development site by the QA/testing team and the latter one is executed at client site by the intended users.
What are the different approaches to perform software testing?
Generally, there are two approaches to perform software testing viz. Manual testing and Automation. Manual testing involves the execution of test cases on the software manually by the tester whereas automation process involves the usage of automation framework and tools to automate the task of test scripts execution.
What is the advantage of automation over manual testing approach and vice-versa?
In comparison to manual approach of testing, automation reduces the efforts and time required in executing the large amount of test scripts, repetitively and continuously for a longer period of time with accuracy and precision.
Is there any testing technique that does not needs any sort of requirements or planning?
Yes, but with the help of test strategy using checklists, user scenarios and matrices.
Difference between ad-hoc testing and exploratory testing?
Both ad-hoc testing and exploratory testing are the informal ways of testing the system without having proper planning & strategy. However, in ad-hoc testing, a tester is well-versed with the software and its features and thereby carries out the testing whereas in exploratory, he/she gets to learn and explore more about the software during the course of testing and thus tests the system gradually along with software understanding and learning throughout the testing process.
How monkey testing is different from ad-hoc testing?
Both monkey and ad-hoc testing are the informal approach of testing but in monkey testing, a tester does not requires the pre-understanding and detailing of the software, but learns about the product during the course of testing whereas in ad-hoc testing, tester has the knowledge and understanding of the software.
Why non-functional testing is equally important to functional testing?
Functional testing tests the system’s functionalities and features as specified prior to software development process. It only validates the intended functioning of the software against the specified requirement and specification but the performance of the system to function in the unexpected circumstances and conditions in real world environment at the user’s end and to meet customer satisfaction is done through non-functional testing technique. Thus, non-functional testing looks after the non-functional traits of the software.
Which is a better testing methodology: black-box testing or white-box testing?
Both black-box and white-box testing approach have their own advantages and disadvantages. Black-box testing approach enables testers to externally test the system on the basis of specified requirement and specification and does not provide the scope of testing the internal structure of the system, whereas white-box testing methodology verify and validates the software quality through testing of its internal structure and working.
If black-box and white-box, then why gray box testing?
Gray box testing is a third type of testing and a hybrid form of black-box and white-box testing approach, which provides the scope of externally testing the system using test plans and test cases derived from the knowledge and understanding of internal structure of the system.
Difference between static and dynamic testing of software.
The primary difference between static and dynamic testing approach is that the former does not involves the execution of code to test the system whereas latter approach requires the code execution to verify and validate the system quality.
Smoke and Sanity testing are used to test software builds. Are they similar?
Although, both smoke and sanity testing is used to test software builds but smoke testing is used to test the initial build which are unstable whereas sanity tests are executed on relatively stable builds which had undergone multiple time through regression testing.
When, what and why to automate?
Automation is preferred when the execution of tests needs to be carried out repetitively for a longer period of time and within the specified deadlines. Further, an analysis of ROI on automation is desired to analyse the cost-benefit model of the automation. Preferably functional, regression and functional tests may be automated. Further, tests which requires accuracy and precision, and is time-consuming may be considered for automation, including data driven tests also.
What are the challenges faced in automation?
Some of the common challenges faced in the automation are Initial cost is very high along with the maintenance costs. Thus, requires proper analysis to assess ROI on automation.
- Increased complexities.
- Limited time.
- Demands skilled tester, having appropriate knowledge of programming.
- Automation training cost and time.
- Selection of right and appropriate tools and frameworks.
- Less flexible.
- Keeping test plans and cases updated and maintained.
Difference between retesting and regression testing.
Both retesting and regression testing is done after modification in software features and configuration to remove or correct the defect(s). However, retesting is done to validate that the identified defects has been removed or resolved after applying patches while regression testing is done to ensure that the modification in the software doesn’t impacts or affects the existing functionalities and originality of the software.
How to categorize bugs or defects found in the software?
A bug or a defect may be categorized on the priority and severity basis, where priority defines the need to correct or remove defect, from business perspective, whereas severity states the need to resolve or eliminate defect from software requirement and quality perspective.
What is the importance of test data?
Test data is used to drive the testing process, where diverse types of test data as inputs are provided to the system to test the response, behaviour and output of the system, which may be desirable or unexpected.
Why agile testing approach is preferred over traditional way of testing?
Agile testing follows the agile model of d/evelopment, which requires no or less documentation and provides the scope of considering and implementing the dynamic and changing requirements along with the direct involvement of client or customer to work on their regular feedbacks and requirements to provide software in multiple and short iterative cycles.
What are the parameters to evaluate and assess the performance of the software?
Parameters which are used to evaluate and assess the performance of the software are active defects, authored tests, automated tests, requirement coverage, no. of defects fixed/day, tests passed, rejected defects, severe defects, reviewed requirements, test executed and many more.
How important is the localization and globalization testing of a software application?
Globalization and localization testing ensures the software product features and standards to be globally accepted by the world wide users and to meet the need and requirements of the users belonging to a particular culture, area, region, country or locale, respectively.
What is the difference between verification and validation approach of software testing?
Verification is done throughout the development phase on the software under development whereas validation is performed over final product produced after the development process with respect to specified requirement and specification.
Does test strategy and test plan define the same purpose?
Yes, the end purpose of test strategy and test plan is same i.e. to works as a guide or manual to carry out the software testing process, but still they both differs.
Which is better approach to perform regression testing: manual or automation?
Automation would provide better advantage in comparison to manual for performing regression testing.
What is bug life cycle?
Bug or Defect life cycle describes the whole journey or the life of a defect through various stages or phases, right from when it is identified and till its closure.
Explain bug life cycle or the different states of a bug.
A bug goes through the following phases in software development-
● New – A bug or defect when detected is in New state
● Assigned – The newly detected bug when assigned to the corresponding developer is in Assigned state
● Open – When the developer works on the bug, the bug lies in Open state
● Rejected/Not a bug – A bug lies in rejected state in case the developer feels the bug is not genuine
● Deferred – A deferred bug is one, fix of which is deferred for some time (for the next releases) based on urgency and criticality of the bug
● Fixed – When a bug is resolved by the developer it is marked as fixed
● Test – When fixed the bug is assigned to the tester and during this time the bug is marked as in Test
● Reopened – If the tester is not satisfied with issue resolution the bug is moved to Reopened state
● Verified – After the Test phase if the tester feels bug is resolved, it is marked as verified
● Closed – After the bug is verified, it is moved to Closed status.
What are the different types of experience-based testing techniques?
Error guessing, checklist-based testing, exploratory testing, attack testing.
Whether a software application can be 100% tested?
No, as one of the principles of software testing states that exhaustive testing is not possible.
Why exploratory testing is preferred and used in the agile methodology?
As agile methodology requires the speedy execution of the processes through small iterative cycles, thereby calls for the quick, and exploratory testing which does not depends on the documentation work and is carried out by tester through gradual understanding of the software, suits best for the agile environment.
Difference between load and stress testing.
The primary purpose of load and stress testing is to test system’s performance, behavior and response under different varied load. However, stress testing is an extreme or brutal form of load testing where a system under increasing load is subjected to certain unfavorable conditions like cut down in resources, short or limited time period for execution of task and various such things.
What is data driven testing?
As the name specifies, data driven testing is a type of testing, especially used in the automation, where testing is carried out and drive by the defined sets of inputs and their corresponding expected output.
When to start and stop testing?
- Basically, on the availability of software build, testing process starts. However, testing may be started early with the development process, as soon as the requirements are gathered and available. Moreover, testing depends upon the requirement of the software development model like in waterfall model, testing is done in the testing phase, whereas in agile testing is carried out in multiple and short iteration cycle.
- Testing is an infinite process as it is impossible to make a software 100% bug free. But still, there are certain conditions specified to stop testing such as:
- Complete execution of the test suites and scripts.
- Meeting the specified exit criteria for a test.
- High priority and severity bugs are identified and resolved.
- Complete testing of the functionalities and features.
Whether exhaustive software testing is possible?
What are the merits of using the traceability matrix?
The primary advantage of using the traceability matrix is that it maps the all the specified requirements with that to test cases, thereby ensures complete test coverage.
What is software testability?
Software testability comprises of various artifacts which gives the estimation about the efforts and time required in the execution of a particular testing activity or process.
What is positive and negative testing?
Positive testing is the activity to test the intended and correct functioning of the system on being fed with valid and appropriate input data whereas negative testing evaluates the system’s behaviour and response in the presence of invalid input data.
Brief out different forms of risks involved in software testing.
Different types of risks involved in software testing are budget risk, technical risk, operational risk, scheduled risk and marketing risk.
What is cookie testing?
Cookie is used to store the personal data and information of a user at server location, which is later used for making connections to web pages by the browsers, and thus it is essential to test these cookies.
What constitutes a test case?
A test case consists of several components. Some of them are test suite id, test case id, description, prerequisites, test procedure, test data, expected results, test environment.
What are the roles and responsibilities of a tester or a QA engineer?
A QA engineer has multiple roles and is bounded to several responsibilities such as defining quality parameters, describing test strategy, executing test, leading the team, reporting the defects or test results.
What is rapid software testing?
Rapid software testing is a unique approach of testing which strikes out the need of any sort of documentation work, and motivates testers to make use of their thinking ability and vision to carry out and drive the testing process.
Difference between error, defect and failure.
In the software engineering, error defines the mistake done by the programmers. Defect reflects the introduction of bugs at production site and results into deviation in results from its expected output due to programming mistakes. Failure shows the system’s inability to execute functionalities due to presence of defect. i.e. defect explored by the user.
Whether security testing and penetration testing are similar terms?
No, but both testing types ensure the security mechanism of the software. However, penetration testing is a form of security testing which is done with the purpose to attack the system to ensure not only the security features but also its defensive mechanism.
Distinguish between priority and severity.
Priority defines the business need to fix or remove identified defect whereas severity is used to describe the impact of a defect on the functioning of a system.
What is test harness?
Test harness is a term used to collectively define various inputs and resources required in executing the tests, especially the automated tests to monitor and assess the behavior and output of the system under different varied conditions and factors. Thus, test harness may include test data, software, hardware and many such things.
What constitutes a test report?
A test report may comprise of following elements:
- Test summary
- Logged defects
- Exit criteria
- Resources used
What are the test closure activities?
Test closure activities are carried out the after the successful delivery or release of the software product. This includes collection of various data, information, testwares pertaining to software testing phase so as to determine and assess the impact of testing on the product.
List out various methodologies or techniques used under static testing.
- Technical reviews
- Informal reviews
Whether test coverage and code coverage are similar terms?
No, code coverage amounts the percentage of code covered during software execution whereas test coverage concerns with the test cases to cover specific functionality and requirement.
List out different approaches and methods to design tests.
Broadly, there are different ways along with their sub techniques to design test cases, as mentioned below
- Black Box design technique- BVA, Equivalence Partitioning, use case testing.
- White Box design technique- statement coverage, path coverage, branch coverage
- Experience based technique- error guessing, exploratory testing
How system testing is different to acceptance testing?
System testing is done with the perspective to test the system against the specified requirements and specification whereas acceptance testing ensures the readiness of the system to meet the needs and expectations of a user.
Distinguish between use case and test case.
Both use case and test case is used in the software testing. Use case depicts and defines the user scenarios including various possible path taken by the system under different conditions and circumstances to execute a particular task and functionality. On the other side, test case is a document based on the software and business requirements and specification to verify and validate the software functioning.
What is the need of content testing?
In the present era, content plays a major role in creating and maintaining the interest of the users. Further, the quality content attracts the audience, makes them convinced or motivated over certain things, and thus is a productive input for the marketing purpose. Thus, content testing is a must testing to make your software content suitable for your targeted users.
List out different types of documentation/documents used in the software testing.
- Test plan
- Test scenario
- Test cases
- Traceability Matrix
- Test Log and Report
What is test deliverables?
Test deliverables are the end products of a complete software testing process- prior, during and after the testing, which is used to impart testing analysis, details and outcomes to the client.
What is fuzz testing?
Fuzz testing is used to discover coding flaws and security loopholes by subjecting system with the large amount of random data with the intent to break the system.
How testing is different with respect to debugging?
Testing is done with the purpose of identifying and locating the defects by the testing team whereas debugging is done by the developers to fix or correct the defects.
What is the importance of database testing?
Database is an inherited component of a software application as it works as a backend system of the application and stores different types of data and information from multiple sources. Thus, it is crucial to test the database to ensure integrity, validity, accuracy and security of the stored data.
What are the different types of test coverage techniques?
- Statement Coverage
- Branch Coverage
- Decision Coverage
- Path Coverage
Why and how to prioritize test cases?
Due to abundance of test cases for the execution within the given testing deadline arises the need to prioritize test cases. Test prioritization involves the reduction in the number of test cases, and selecting & prioritizing only those which are based on some specific criteria.
How to write a test case?
Test cases should be effective enough to cover each and every feature and quality aspect of software and able to provide complete test coverage with respect to specified requirements and specifications.
How to measure the software quality?
There are certain specified parameters, namely software quality metrics which is used to assess the software quality. These are product metrics, process metrics and project metrics.
What different types of testing may be considered and used for testing the web applications?
- Functionality testing
- Compatibility testing
- Usability testing
- Database testing
- Performance testing
- Accessibility testing
What is pair testing?
Pair testing is a type of ad-hoc testing where pair of testers or tester and developer or tester & user is being formed which are responsible for carrying out the testing of the same software product on the same machine.
Give an example of Low priority-Low severity, Low priority-High severity, High priority-Low severity, High priority-High severity defects.
- Low priority-Low severity – A spelling mistake in a page not frequently navigated by users.
- Low priority-High severity – Application crashing in some very corner case.
- High priority-Low severity – Slight change in logo color or spelling mistake in company name.
- High priority-High severity – Issue with login functionality.
What are some of the bug or defect management tools?
Some of the most widely used Defect Management tools are – Jira, Bugzilla,Redmine, Mantis, Quality Center etc.
Difference between defect, error, bug?
A mistake in coding is called Error, error found by tester is called defect , defect accepted by development team then it is called bug.
What is SDLC?
Software Development Life Cycle refers to all the activities that are performed during software development, including – requirement analysis, designing, implementation, testing, deployment and maintenance phases.
Explain STLC – Software Testing life cycle.
Software testing life cycle refers to all the activities performed during testing of a software product. The phases include-
● Requirement analysis and validation – In this phase the requirements documents are analyzed and validated and scope of testing is defined.
● Test planning – In this phase test plan strategy is defined, estimation of test effort is defined along with automation strategy and tool selection is done.
● Test Design and analysis – In this phase test cases are designed; test data is prepared and automation scripts are implemented.
● Test environment setup – A test environment closely simulating the real-world environment is prepared.
● Test execution – The test cases are prepared, bugs are reported and retested once resolved.
● Test closure and reporting – A test closure report is prepared having the final test results summary, learnings and test metrics.
What are some attributes of a test case?
A test case can have following attributes-
- TestCaseId – A unique identifier of the test case.
- Test Summary – One-liner summary of the test case.
- Description – Detailed description of the test case.
- Prerequisite or pre-condition – A set of prerequisites that must be followed before executing the test steps.
- Test Steps – Detailed steps for performing the test case.
- Expected result – The expected result in order to pass the test.
- Actual result – The actual result after executing the test steps.
- Test Result – Pass/Fail status of the test execution.
- Automation Status – Identifier of automation – whether the application is automated or not.
- Date – The test execution date.
- Executed by – Name of the person executing the test case.
How is monkey testing different from adhoc testing?
In case of adhoc testing although there are no predefined or documented test cases still testers have the understanding of the application. While in case of monkey testing testers doesn’t have any understanding of the application.
What is performance testing?
Performance testing is a type of non-functional testing in which the performance of the system is evaluated under expected or higher load. The various performance parameters evaluated during performance testing are – response time, reliability, resource usage, scalability etc.
What is load testing?
Load testing is a type of performance testing which aims at finding application’s performance under expected workload. During load testing we evaluate the response time, throughput, error rate etc parameters of the application.
What is stress testing?
Stress testing is a type of performance testing in which application’s behavior is monitored under higher workload than expected. Stress testing is done to find memory leaks, robustness of the application as it is subjected to high workload.
What is volume testing?
Volume testing is a type of performance testing in which the performance of application is evaluated with large amount of data. It checks the scalability of the application and helps in identification of bottleneck with high volume of data.
Explain Agile methodology?
Agile methodology of software development is based on iterative and incrementalapproach. In this model the application is broken down into smaller build on which different cross functional team work together providing rapid delivery along with adapting to changing needs at the same time.
What is scrum?
A scrum is a process for implementing Agile methodology. In scrum, time is divided into sprints and on completion of sprints, a deliverable is shipped.
What are the different roles in scrum?
The different roles in scrum are –
1. Product Owner – The product owner owns the whole development of the product, assign tasks to the team and act as an interface between the scrum-team (development team) and the stakeholders.
2. Scrum Master – The scrum master monitors that scrum rules get followed in the team and conducts scrum meeting.
3. Scrum Team – A scrum team participate in the scrum meetings and perform the tasks assigned.
What is a scrum meeting?
A scrum meeting is daily held meeting in scrum process. This meeting is conducted by scrum master and update of previous day’s work along with next day’s task and context is defined in scrum.
Explain TDD (Test Driven Development).
Test Driven Development is a software development methodology in which thedevelopment of the software is driven by test cases created for the functionality to be implemented. In TDD first the test cases are created and then code to pass the tests is written. Later the code is refactored as per the standards.
What is a test scenario?
A test scenario is derived from a use case. It is used for end end to end testing of a feature of an application. A single test scenario can cater multiple test cases. The scenario testing is particularly useful when there is time constraint while testing.
What is a Compatibility Testing?
It is to deploy and check whether the application is working as expected in different combination of environmental components.