1. What is the purpose of the testing?
Software testing is the process used to help identify the Correctness, Completeness, Security and Quality of the developed Computer Software.
Software Testing
is the process of executing a program or system with the intent of finding errors.
2. What is quality assurance?
Software
QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.
3. What is the difference between QA and testing?
Testing involves operation of a system or application under controlled conditions and evaluating the results. It is oriented to 'detection'.
Software
QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.
4. Describe the
Software Development Life Cycle
It includes aspects such as initial concept, requirements analysis, functional design, internal design, documentation planning, test planning, coding, document preparation, integration, testing, maintenance, updates, retesting, phase-out, and other aspects.
5. What are SDLC and STLC and the different phases of both?
SDLC
> Requirement phase
> Desing phase (HLD, DLD (Program spec))
> Coding
> Testing
> Release
> Maintenance
STLC
> System Study
> Test planning
> Writing Test case or scripts
> Review the test case
> Executing test case
> Bug tracking
> Report the defect
6. What is a Test bed?
Test Bed is an execution environment configured for software testing. It consists of specific hardware, network topology, Operating System, configuration of the product to be under test, system software and other applications. The Test Plan for a project should be developed from the test beds to be used.
7. What is a Test data?
Test Data is that run through a computer program to test the software. Test data can be used to test the compliance with effective controls in the software.
8. Why does software have bugs?
Miscommunication or no communication about the details of what an application should or shouldn't do
Programming errors in some cases the programmers can make mistakes.
Changing requirements there are chances of the end-user not understanding the effects of changes, or may understand and request them anyway to redesign, rescheduling of engineers, effects of other projects, work already completed may have to be redone or thrown out.
Time force - preparation of software projects is difficult at best, often requiring a lot of guesswork. When deadlines are given and the crisis comes, mistakes will be made.
9. What is the Difference between Bug, Error and Defect?
Error: It is the Deviation from actual and the expected value.
Bug: It is found in the development environment before the product is shipped to the respective customer.
Defect: It is found in the product itself after it is shipped to the respective customer.
10. Describe the difference between validation and verification
Verification is done by frequent evaluation and meetings to appraise the documents, policy, code, requirements, and specifications. This is done with the checklists, walkthroughs, and inspection meetings.
Validation is done during actual testing and it takes place after all the verifications are being done.
11. What is the difference between structural and functional testing?
Structural testing is a "white box" testing and it is based on the algorithm or code.
Functional testing is a "black box" (behavioral) testing where the tester verifies the functional specification.
12. Describe bottom-up and top-down approaches
Bottom-up approach: In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module.
Top-down approach: In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the submodule.
13. What is Re- test? What is Regression Testing?
Re- test - Retesting means we testing only the certain part of an application again and not considering how it will effect in the other part or in the whole application.
Regression Testing - Testing the application after a change in a module or part of the application for testing that is the code change will affect rest of the application.
14. Explain Load, Performance and Stress Testing with an Example.
Load Testing and Performance Testing are commonly said as positive testing where as Stress Testing is said to be as negative testing.
Say for example there is a application which can handle 25 simultaneous user logins at a time. In load testing we will test the application for 25 users and check how application is working in this stage, in performance testing we will concentrate on the time taken to perform the operation. Where as in stress testing we will test with more users than 25 with less memory and less network bandwidth and the test will continue to any number and we will check where the application is cracking.
15. What is UAT testing? When it is to be done?
UAT testing - UAT stands for 'User acceptance Testing. This testing is carried out with the user perspective and it is usually done before the release.
16. Functional testing (also known as black-box testing), is a software testing approach in which:
1. the tester will have a user perspective in mind,
2. not knowing and doesn't mind how the program works.
3. Input and output are the only things that matter.
4. The tester acts as if he/she is the final user of the program.
On the other hand, structural testing (also known as white-box testing), is a software testing approach in which:
1. the tester will have a developer perspective in mind,
2. knowing how the program works behind the scene,
3. such that the test will test all algorithm paths in the program.
4. Everything does matter.
5. The tester acts as a developer of the program who knows the internal structure of the program very well.
17. Difference between Client Server and Web Application?
In client server application you have two different components to test. Application is loaded on server machine while the application exe on every client machine. You will test broadly in categories like, GUI on both sides, functionality, Load, client-server interaction, backend. This environment is mostly used in Intranet networks. You are aware of number of clients and servers and their locations in the test scenario.
Web application is a bit different and complex to test as tester don’t have that much control over the application. Application is loaded on the server whose location may or may not be known and no exe is installed on the client machine, you have to test it on different web browsers. Web applications are supposed to be tested on different browsers and OS platforms so broadly Web application is tested mainly for browser compatibility and operating system compatibility, error handling, static pages, backend testing and load testing.
18. What is the role of the QA team on a software development project?
The QA Team is responsible for the quality of the Project by preventing and detecting bugs.
Help R&D team in meeting the schedules of the project.
Indicate the defect proven areas in the project.
Automation.
Analyze the Bugs Using Root cause Analysis.
To reduce overall cost and improve quality of the project.
19. What does 'regression testing' mean and why is it important to do it?
Testing conducted for the purpose of evaluating whether or not a change to the system has introduced a new failure.
Regression Testing is so important that the Product Stability is evaluated
When new functionality is added or existing functionality is modified, there is every possibility that new defects or side effects might have been introduced.
20. What is automated testing? What makes automation hard to do ?
Automating the Test cases which are manually tested by a Tester.
Automation is hard for the following reasons.
1.Selection of proper automation tool that is suitable to the project.
2.Scripter (person responsible for automation) should have awareness of the tool and basic programming skills.
3..Most of the projects' UI controls does not fall under automation tool's traditional window classes. So need to find work arounds.
4.Automated scripts need to be documented properly and perfectly as scripts would be executed not by scripter alone but by entire QA team.
5.Controls or objects tags or UI frequently changes causing scripts to be changed frequently.
21. What are some likely differences between a QA and a Production environment?
QA Environment is the Test Environment, the Project is tested on the Test Environment before moving on to the Production environment which will be fully operational.
QA environment is controlled whereas production environment is uncontrolled.
Tester knows how to use the product but end user (in production environment) may or may not be know about the product.
Any mistake in QA environment does not have impact on the company but same mistake when made in production environment brings bad name for the company.
22. What is SQL and why might QA testers need to use it?
SQL is a Structured Query Language which is used for doing transactions like addition, deletion and modifications of records in the table and also for Querying the database.
As most of the products these days are based on databases Tester should know about SQL.
23. Did you ever consider becoming a developer? Why did you choose QA for your career?
Initially when I was fresher (as soon as I was out of college) I thought of becoming a developer.
QA work interests me especially use of automation tools.
It is QA team which has more knowledge about a project than developers.