What is Software Testing

Published on February 2017 | Categories: Documents | Downloads: 26 | Comments: 0 | Views: 280
of 10
Download PDF   Embed   Report

Comments

Content

What is Software? A set of programs to take inputs, to do process and provide outputs. Software Application VS Product? A software developed depending on a specific customer requirements is called as application or project. A software developed depending on overall requirements in market is called as software product. What is Software Testing? Testing is the process of executing Test cases with the intent of finding bugs in software. OR Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test. Difference between software testing and Quality assurance (QA)? QA is the process of verifying or determining whether a product or service meet or exceed customer expectations.

Testing: The process of executing a system with the intent of finding defects including Test planning prior to the execution of the test cases. Quality Control: A set of activities designed to evaluate a developed workingProduct. Quality Assurance: A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives. The key difference to remember is that QA is interested in the process whereas testing and quality control are interested in the product. Having a testing component in your development process demonstrates a higher degree of quality (as in QA).

After accepting a software proposal, the corresponding project managers should one of the available 5 sdlc model to follow in the development cycle. There are 5 SDLC models available currently.They are

1.

Waterfall Model

2. 3. 4. 5.

Prototype Model Incremental Model Spiral Model V-Model

Waterfall Model: When the customer requirements are clear and complete Requirements Gathering—>Analysis & Planning—> Design—> Coding—> Testing—> Release & Maintenance Prototype Model: When the customer requirements are unclear and confusing Incremental Model: When the customer requirements are clear but not complete, because client is giving requirements in installment basis. Spiral Model: When the customer requirements are clear and complete but enhancing in future Note: In above 4 SDLC models the testing is available as one stage and the stage was also conducted by same developers.Due to this the organizations are concentrating on multiple stages of testing and separate testing teams for quality software development. V-Model: V- stands for Verification and Validation

• •

It is a recognized model by organizations This model defines the mapping in between multiple stages of development and multiple stages of testing

To decrease project cost,the organizations are maintaining the separate testing team only for system testing. Because the system testing stage is working as bottle neck stage in software development.

What is a Test Plan? What it Can Contain??
A software project Test plan is a document that describes the objectives, scope, approach, and focus of a software testing effort. The process of preparing a test plan is a useful way to think through the efforts needed to validate the acceptability of a software Product. The completed document will help people outside the test group understand the ‘why’ and ‘how’ of product validation. It should be thorough enough to be useful but not so thorough that no one outside the test group will read it. The following are some of the items that might be included in a test plan, depending on the particular project: 1. 2. 3. 4. 5. 6. 7. 8. 9. Title Identification of software including version/release numbers Revision history of document including authors, dates, approvals Table of Contents Purpose of document, intended audience Objective of testing effort Software product overview Relevant related document list, such as requirements, design documents, other test plans, etc. Relevant standards or legal requirements Traceability requirements Relevant naming conventions and identifier conventions Overall software project organization and personnel/contact-info/responsibilties Test organization and personnel/contact-info/responsibilities Assumptions and dependencies Project risk analysis Testing priorities and focus Scope and limitations of testing Test outline - a decomposition of the test approach by test type, feature, functionality, process, system, module, etc. as applicable Outline of data input equivalence Classes, boundary value analysis, error classes Test environment - hardware, operating systems, other required software, data configurations, interfaces to other systems Test environment validity analysis - differences between the test and production systems and their impact on test validity. Test environment setup and configuration issues Software migration processes Software CM processes test data setup requirements Database setup requirements

10.
11. 12. 13. 14. 15. 16. 17. 18.

19.
20. 21. 22. 23. 24.

25.
26.

27. Outline of system-logging/error-logging/other capabilities, and tools such as screen
capture software, that will be used to help describe and Report bugs 28. Discussion of any specialized software or hardware tools that will be used by testers to help track the cause or source of bugs 29. Test automation - justification and overview 30. Test tools to be used, including versions, patches, etc. 31. Test script/test code maintenance processes and version control 32. Problem tracking and resolution - tools and processes 33. Project test metrics to be used 34. Reporting requirements and testing deliverables 35. Software entrance and exit criteria 36. Initial sanity testing period and criteria 37. Test suspension and restart criteria 38. Personnel allocation 39. Personnel pre-training needs 40. Test site/location 41. Outside test organizations to be utilized and their purpose, responsibilties, deliverables, contact persons, and coordination issues 42. Relevant proprietary, classified, security, and licensing issues. 43. Open issues 44. Appendix - glossary, acronyms, etc. All these are not compulsory in a test plan, but these are all can contain in a test plan. What to include and what to exclude is all that depends on the organization and the process they follow.

WHAT IS UNIT TESTING?
unit testing is the first testing stage in software development. Validating each and every line of code in programs is called unit testing. All the single programs in software should under go unit testing to ensure that each and every single program is working fine independently. Whit box testing techniques are used in Unit testing phase. There are 4 techniques in white box testing. They are 1. Basic path Coverage Control Structure Coverage Programs Technique Coverage Mutation Coverage

2.
3. 4.

Basic path Coverage: It’s a program testing technique. Using this technique, the programmer is validating the execution of that program without any runtime errors. In this validation, the programmer is Running that program more than one time to cover all the area of that program. The number of times the programmer running the program to cover whole program is called Cyclomatic Complexity.

For example: If you execute a if else program, you need to execute it two time to cover each and every line in the program. So the Cyclomatic complexity of that program is 2 i.e. Cyclomatic complexity=2 Control Structure Coverage: After completion of basic path coverage, the corresponding programmer is validating that program correctness in terms of inputs, process and outputs. Program Technique Coverage: After completion of control structure coverage, the corresponding programmer is calculating the execution speed of that program. If the execution speed is not acceptable, then the programmer is performing changes in that program structure without disturbing functionality. For Example: Take swapping of 2 numbers as example. This can be done using 3 variables and 2 variables. Mutation Coverage: Mutation means that a change. The programmers are performing changes in a tested program to estimate the correctness and completeness of that program testing. Note: White-box testing techniques are also known as clear box techniques OR Open box testing techniques.

Black box Testing Techniques?
System testing uses black box testing techniques. There are 4 techniques in Black box

1. 2. 3. 4.

Boundary Value Analysis (BVA) Equivalence Class Partitions (ECP) Decision Tables (DT) State Transition Diagrams (STD)

Boundary Value Analysis (BVA): BVA takes care about the size in software testing For example: Testing Password Field, Password field should be minimum 4 chars and maximum 8 chars. BVA for this is

• • • • • •

Min=4 Min-1=3 Min+1=5 Max=8 Max-1=7 Max+1=9

Equivalence Class Partitions (ECP): ECP takes care about the Type in software testing. For example: Testing username Field, User name should be combination of Capital letters and numbers.

Note: If our Test is related to a field, the testers are using BVA and ECP techniques because exhaustive testing is impossible from testing principles Decision Tables: If our test related to an operation with alternative expectations, the testers are using DT techniques. For example: If login user name and password are correct, next window will appear. If any one of user name or password is are wrong, error window should open. So here we have 2 alternatives like Next window and error window. State Transition Diagrams (STD): If a test related to an operation with no alternative expectations, the testers are using state transition diagrams.

What is System Testing?
After completion of software Integration and integration testing, the development team is releasing a software build to Test engineer team. The testing team is conducting system testing on that software in two sub levels such as 1. 2. Functional Testing Non-Functional Testing

Functional testing is concentrating on customer requirements and the Non-Functional testing is concentrating on customer expectations. Functional Testing: It’s a mandatory testing level, during this test the testing team is validating a software build functionality in terms of below factors with respect to customer requirements.

1. 2. 3. 4. 5. 6.

Behavioral / GUI: The changes in properties of Objects OR controls in a software is called behavioral or GUI. Input Domain: Whether the objects are taking correct type and size of inputs or not? Error Handling: Whether our software is preventing wrong operations or not? Manipulations: Whether our software is generating correct output or not? Database Validity: Whether our software front end screens operations are correctly impacting on database of the software or not? Sanitation: Finding extra operations in a software with respect to customer requirements.

The above factors checking on a software is called as functional testing. During this checking the testers are using black box testing techniques or closed box testing techniques. Non-Functional Testing: After completion of functional testing successfully, the testing team is concentrating on non-functional testing. During non-functional testing, the testing team is concentrating on customer expectations or software characteristics. This non-functional testing is classified into below sub testing topics.

1.

2.
3. 4. 5. 6. 7.

8.
9.

10. 11. Stress testing
12. 13. 14. 15. 16.

Usability Testing (UI Check) Manual Check (Help documents testing) Compatibility Testing OR Portability Testing Configuration Testing Inter system Testing Multi languity Testing Data volume Testing Installation Testing Performance Testing Load testing Endurance Testing Security Testing Parallel Testing User Acceptance Testing (UAT) Software Release and Release Testing

How Many Software Testing Techniques are there?
In total there are 3 types of testing techniques are there. They are 1. Review Techniques white box Techniques black box Techniques

2. 3.
Note:

• •

Combination of White box and Black box techniques are called Gray box or Validation Techniques or Dynamic testing techniques. Review techniques are also called as Verification techniques or Static testing techniques

Review Techniques: The techniques used to verify the documents that will be useful in testing are called Review techniques or verification techniques or Static testing techniques. There are 4 techniques in this. They are 1. 2. 3. Walk Through Inspections Peer Reviews

White box Techniques: There are 4 types in this 1. Basic path Coverage Control Structure Coverage Programs Technique Coverage Mutation Coverage

2.
3. 4.

Black box Techniques: There are 4 types in this as well

1. 2. 3. 4.

Boundary Value Analysis (BVA) Equivalence Class Partitions (ECP) Decision Tables (DT) State Transition Diagrams (STD)

What is Difference Between Testing,QA and QC?
Testing: The process of executing a system with the intent of finding defects including Test planning prior to the execution of the test cases. Quality Control: A set of activities designed to evaluate a developed workingProduct. Quality Assurance: A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives. The key difference to remember is that QA is interested in the process whereas testing and quality control are interested in the product. Having a testing component in your development process demonstrates a higher degree of quality (as in QA).

Difference between Re-testing and Regression Testing?
This is a very popular interview question where candidate should very careful to answer this.

• •

Re- Test:Retesting means we testing only the certain part of an Applicationagain 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.

What is Test bed and Test data?
test bed is an execution environment configured for software testing. It consists of specific hardware, network topology, Operating System, configuration of the Productto be under Test, system software and other applications. The Test Plan for a project should be developed from the test beds to be used. 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.

What is AUT?
aut is nothing but “Application Under Test“. After the designing and coding phase in Software development Life Cycle, the application comes for testing then at that time the application is stated as Application Under Test.

What should be Done if you Don’t Have Enough Time for Testing?


Subscribe to our feed
o
þÿ
Subscribe

Subscribe by Email

We take privacy seriously. Your email address will not be shared. • •

What Should be Done if you Don’t Have Enough Time for Testing?
Posted on August 10th, 2009 in Manual Testing Since it’s rarely possible to Test every possible aspect of an Application, every possible combination of events, every dependency, or everything that could go wrong, risk analysis is appropriate to most software development projects. This requires judgement skills, common sense, and experience. (If warranted, formal methods are also available.) Considerations can include: 1. 2. 3. 4. 5. Use risk analysis to determine where testing should be focused. Which functionality is most important to the project’s intended purpose? Which functionality is most visible to the user? Which functionality has the largest safety impact? Which functionality has the largest financial impact on users?

6. Which aspects of the application are most important to the customer? 7. Which aspects of the application can be tested early in the development cycle? 8. Which parts of the code are most complex, and thus most subject to errors? 9. Which parts of the application were developed in rush or panic mode? 10. Which aspects of similar/related previous projects caused problems? 11. Which aspects of similar/related previous projects had large maintenance expenses? 12. Which parts of the requirements and design are unclear or poorly thought out? 13. What do the developers think are the highest-risk aspects of the application? 14. What kinds of problems would cause the worst publicity? 15. What kinds of problems would cause the most customer service complaints? 16. What kinds of tests could easily cover multiple functionalities? 17. Which tests will have the best high-risk-coverage to time-required ratio? Client will also contribute some ideas to utilize the available time. All this depends on organization to organization and person to person.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close