Basic FAQs in Software Testing

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 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.

For more FAQs in Software Testing visit =>http://softwaretestingguide.blogspot.com

Onboarding Your New Software Testing Company

Bringing on a new QA partner is just like bringing on a new employee: in order for them to do their very best work, they need to know everything they can about the company, the product, the culture, and the existing workflow processes. Though partners that have been in the industry for a while will know the ropes and can get up to speed quickly, you should still be prepared to share knowledge, documentation, and other learnings about your product and any existing testing infrastructure.

Here’s a quick guide that will help you successfully onboard your new software testing company:

Provide clear requirements

Your QA partner needs clear, actionable project requirements before they take any action related to testing. Project requirements help engineers formulate a thorough and effective test plan, so you’ll need to specify the type of testing required (in detail), your technical requirements (environment, language, platforms, etc.), and any caveats that you feel the team needs to know.

Just as important as the initial requirements is your availability at this early stage in onboarding. Make sure you are around to answer any clarifying questions your engineers have about the requirements list.

Transfer the right knowledge

If your software testing company is staffed with plenty of domain experts, skip this step. But if not, you’ll need to make sure that you pass on plenty of knowledge about your product and its place within the market — especially if you work within the financial, healthcare, or retail space, where huge amounts of sensitive user data consistently pass through your product. Domain experts will have a good feel for the nuances of your product based on years of previous experience, and they’ll uncover weak spots that are easily missed by dev teams and those QA engineers who may be totally competent, but just not as experienced in the domain.

The other benefit of contracting with a company rich in domain expertise is improved communication. Experienced QA engineers will be able to relay bugs to stakeholders using the correct terminology, and explain how the issue affects other processes within your product: what it breaks, and how it can be fixed.

Establish communication protocols

Many companies still shy away from outsourced QA because of the distance between the stakeholders and onsite dev team, and the engineers that are testing their product. But thanks to major advances in communication technology, outsourcing is a totally viable option. They may not be located down the hall, but with the right protocols in place, it will feel like they are.

First, decide what kind of communication schedule you want to enact. Do you value daily status meetings over the phone, or will an email suffice? Do you need weekly progress reports, so that you can report the latest to the CEO? Will you need a comprehensive retrospective meeting to review what’s worked and what hasn’t? Your software testing company will be able to structure itself around your schedule, and can connect with you via video/phone chat, instant messaging platform, or email — whichever you prefer.

The added bonus of outsourced QA is that the time difference works in your favor. Your code is tested at night, and you can hear or read all of the reporting when you come back into the office in the morning.

Still searching for the right one?

There are tried and true markers of success for offshore QA providers. Ensure that your prospective partner offers a majority of these:

– Hybrid offshore/onsite model

– High client and engineer retention

– Continuous training on the latest testing methodologies and tools

– Flexible scalability of resources — they’re ready to ramp-up when you are!

– Rich experience across different domains

– Experience with implementing and designing automation frameworks

As you can see, there’s a fair amount of preparation that goes into onboarding your new testing partner. Be sure that you are vigilant at the start of the relationship, as it will set the tone going forward. The more prepared and confident your QA engineers are, the better your results will be — and the more powerful and robust your product will be!