Monday, August 18, 2014

Software Testing Fundamentals

Software Testing Fundamentals
Testing objectives include
1. Testing is a process of executing a program with the intent of finding an error.
2. A good test case is one that has a high probability of finding an as yet undiscovered error. 
3. A successful test is one that uncovers an as yet undiscovered error. 
Testing should systematically uncover different classes of errors in a minimum amount of time and with a minimum amount of effort. A secondary benefit of testing is that it demonstrates that the software appears to be working as stated in the specifications. The data collected through testing can also provide an indication of the software's reliability and quality. But, testing cannot show the absence of defect — it can only show that software defects are present. 
White Box Testing
White box testing is a test case design method that uses the control structure of the procedural design to derive test cases. Test cases can be derived that
1. Guarantee that all independent paths within a module have been exercised at least once, 
2. Exercise all logical decisions on their true and false sides,
3. Execute all loops at their boundaries and within their operational bounds, and
4. Exercise internal data structures to ensure their validity. 
The Nature of Software Defects
Logic errors and incorrect assumptions are inversely proportional to the probability that a program path will be executed. General processing tends to be well understood while special case processing tends to be prone to errors. 
We often believe that a logical path is not likely to be executed when it may be executed on a regular basis. Our unconscious assumptions about control flow and data lead to design errors that can only be detected by path testing. 
Typographical errors are random. 
Basis Path Testing
This method enables the designer to derive a logical complexity measure of a procedural design and use it as a guide for defining a basis set of execution paths. Test cases that exercise the basis set are guaranteed to execute every statement in the program at least once during testing. 
Flow Graphs
Flow graphs can be used to represent control flow in a program and can help in the derivation of the basis set. Each flow graph node represents one or more procedural statements. The edges between nodes represent flow of control. An edge must terminate at a node, even if the node does not represent any useful procedural statements. A region in a flow graph is an area bounded by edges and nodes. Each node that contains a condition is called a predicate node. Cyclomatic complexity is a metric that provides a quantitative measure of the logical complexity of a program. It defines the number of independent paths in the basis set and thus provides an upper bound for the number of tests that must be performed. 
The Basis Set
An independent path is any path through a program that introduces at least one new set of processing statements (must move along at least one new edge in the path). The basis set is not unique. Any number of different basis sets can be derived for a given procedural design. Cyclomatic complexity, V(G), for a flow graph G is equal to 
1. The number of regions in the flow graph.
2. V(G) = E - N + 2 where E is the number of edges and N is the number of nodes.
3. V(G) = P + 1 where P is the number of predicate nodes. 
Deriving Test Cases
1. From the design or source code, derive a flow graph.
2. Determine the cyclomatic complexity of this flow graph.
o Even without a flow graph, V(G) can be determined by counting the number of conditional statements in the code. 
3. Determine a basis set of linearly independent paths.
o Predicate nodes are useful for determining the necessary paths.
4. Prepare test cases that will force execution of each path in the basis set.
o Each test case is executed and compared to the expected results. 
Automating Basis Set Derivation
The derivation of the flow graph and the set of basis paths is amenable to automation. A software tool to do this can be developed using a data structure called a graph matrix. A graph matrix is a square matrix whose size is equivalent to the number of nodes in the flow graph. Each row and column correspond to a particular node and the matrix corresponds to the connections (edges) between nodes. By adding a link weight to each matrix entry, more information about the control flow can be captured. In its simplest form, the link weight is 1 if an edge exists and 0 if it does not. But other types of link weights can be represented: 
• the probability that an edge will be executed,
• the processing time expended during link traversal,
• the memory required during link traversal, or
• the resources required during link traversal. 
Graph theory algorithms can be applied to these graph matrices to help in the analysis necessary to produce the basis set. 
Loop Testing
This white box technique focuses exclusively on the validity of loop constructs. Four different classes of loops can be defined:
1. simple loops,
2. nested loops, 
3. concatenated loops, and
4. unstructured loops. 
Simple Loops
The following tests should be applied to simple loops where n is the maximum number of allowable passes through the loop:
1. skip the loop entirely,
2. only pass once through the loop, 
3. m passes through the loop where m < n,
4. n - 1, n, n + 1 passes through the loop. 
Nested Loops
The testing of nested loops cannot simply extend the technique of simple loops since this would result in a geometrically increasing number of test cases. One approach for nested loops: 
1. Start at the innermost loop. Set all other loops to minimum values.
2. Conduct simple loop tests for the innermost loop while holding the outer loops at their minimums. Add tests for out-of-range or excluded values. 
3. Work outward, conducting tests for the next loop while keeping all other outer loops at minimums and other nested loops to typical values.
4. Continue until all loops have been tested. 
Concatenated Loops
Concatenated loops can be tested as simple loops if each loop is independent of the others. If they are not independent (e.g. the loop counter for one is the loop counter for the other), then the nested approach can be used. 
Unstructured Loops
This type of loop should be redesigned not tested!!!
Other White Box Techniques
Other white box testing techniques include:
1. Condition testing
o exercises the logical conditions in a program. 
2. Data flow testing
o selects test paths according to the locations of definitions and uses of variables in the program. 
Black Box Testing

Introduction
Black box testing attempts to derive sets of inputs that will fully exercise all the functional requirements of a system. It is not an alternative to white box testing. This type of testing attempts to find errors in the following categories: 
1. incorrect or missing functions,
2. interface errors,
3. errors in data structures or external database access,
4. performance errors, and
5. initialization and termination errors.
Tests are designed to answer the following questions: 
1. How is the function's validity tested?
2. What classes of input will make good test cases?
3. Is the system particularly sensitive to certain input values?
4. How are the boundaries of a data class isolated? 
5. What data rates and data volume can the system tolerate?
6. What effect will specific combinations of data have on system operation?
White box testing should be performed early in the testing process, while black box testing tends to be applied during later stages. Test cases should be derived which 
1. reduce the number of additional test cases that must be designed to achieve reasonable testing, and
2. tell us something about the presence or absence of classes of errors, rather than an error associated only with the specific test at hand. 
Equivalence Partitioning
This method divides the input domain of a program into classes of data from which test cases can be derived. Equivalence partitioning strives to define a test case that uncovers classes of errors and thereby reduces the number of test cases needed. It is based on an evaluation of equivalence classes for an input condition. An equivalence class represents a set of valid or invalid states for input conditions. 
Equivalence classes may be defined according to the following guidelines:
1. If an input condition specifies a range, one valid and two invalid equivalence classes are defined.
2. If an input condition requires a specific value, then one valid and two invalid equivalence classes are defined. 
3. If an input condition specifies a member of a set, then one valid and one invalid equivalence class are defined.
4. If an input condition is boolean, then one valid and one invalid equivalence class are defined. 
Boundary Value Analysis
This method leads to a selection of test cases that exercise boundary values. It complements equivalence partitioning since it selects test cases at the edges of a class. Rather than focusing on input conditions solely, BVA derives test cases from the output domain also. BVA guidelines include: 
1. For input ranges bounded by a and b, test cases should include values a and b and just above and just below a and b respectively. 
2. If an input condition specifies a number of values, test cases should be developed to exercise the minimum and maximum numbers and values just above and below these limits. 
3. Apply guidelines 1 and 2 to the output.
4. If internal data structures have prescribed boundaries, a test case should be designed to exercise the data structure at its boundary. 
Cause-Effect Graphing Techniques
Cause-effect graphing is a technique that provides a concise representation of logical conditions and corresponding actions. There are four steps:
1. Causes (input conditions) and effects (actions) are listed for a module and an identifier is assigned to each. 
2. A cause-effect graph is developed.
3. The graph is converted to a decision table.
4. Decision table rules are converted to test cases. 
1. What is diff. between CMMI and CMM levels?
A: - CMM: - this is applicable only for software industry. KPAs -18 
CMMI: - This is applicable for software, out sourcing and all other industries. KPA - 25
2. What is the scalability testing?
1. Scalabilty is nothing but how many users that the application should handle 
2. Scalability is nothing but maximum no of users that the system can handle
3. Scalability testing is a subtype of performance test where performance requirements for response time, throughput, and/or utilization are tested as load on the SUT is increased over time. 
4. As a part of scalability testing we test the expandability of the application. In scalability we test 1.Applicaation scalability, 2.Performance scalability 
Application scalability: to test the possibility of implementing new features in the system or updating the existing features of the system. With the help of design doc we do this testing 
Performance scalability: To test how the s/w perform when it is subjected to varying loads to measure and to evaluate the
Performance behavior and the ability for the s/w to continue to function properly under different workloads. 
–> To check the comfort level of an application in terms of user load. And user experience and system tolerance levels
–> The point within an application that when subjected to increasing workload begin to degrade in terms of end user experience and system tolerance 
–> Response time
Execution time
System resource utilization
Network delays
 stress testing è
3. What is status of defect when you are performing regression testing?
A:-Fixed Status 
4. What is the first test in software testing process?
A) Monkey testing
B) Unit Testing 
c) Static analysis
d) None of the above
A: - Unit testing is the first test in testing process, though it is done by developers after the completion of coding it is correct one. 
4. When will the testing starts? a) Once the requirements are Complete b) In requirement phase? 
A: - Once the requirements are complete.
This is Static testing. Here, u r supposed to read the documents (requirements) and it is quite a common issue in S/w industry that many requirements contradict with other requirements. These are also can be reported as bugs. However, they will be reviewed before reporting them as bugs (defects). 
5. What is the part of Qa and QC in refinement v model?
A: — V model is a kind of SDLC. QC (Quality Control) team tests the developed product for quality. It deals only with product, both in static and dynamic testing. QA (Quality Assurance) team works on the process and manages for better quality in the process. It deals with (reviews) everything right from collecting requirements to delivery. 
6. What are the bugs we cannot find in black box?
A: — If there r any bugs in security settings of the pages or any other internal mistake made in coding cannot be found in black box testing. 
7. What are Microsoft 6 rules?
A: — As far as my knowledge these rules are used at user Interface test. 
These are also called Microsoft windows standards. They are
. GUI objects are aligned in windows
• All defined text is visible on a GUI object
• Labels on GUI objects are capitalized 
• Each label includes an underlined letter (mnemonics) 
• Each window includes an OK button, a Cancel button, and a System menu
8. What are the steps to test any software through automation tools?
A: — First, you need to segregate the test cases that can be automated. Then, prepare test data as per the requirements of those test cases. Write reusable functions which are used frequently in those test cases. Now, prepare the test scripts using those reusable functions and by applying loops and conditions where ever necessary. However, Automation framework that is followed in the organization 
should strictly follow through out the process.
9. What is Defect removable efficiency?
A: - The DRE is the percentage of defects that have been removed 
during an activity, computed with the equation below. The DRE can also be computed for each software development activity and plotted on a bar graph to show the relative defect removal efficiencies for each activity. Or, the DRE may be computed for a specific task or technique ( e.g. design inspection, code walkthrough, unit test, 6 month operation, etc.) Number Defects Removed
DRE = –—————————————————— * 100
Number Defects at Start of Process
DRE=A/A+B = 0.8
A = Testing Team (Defects by testing team)
B = customer ( " " customer )
If dre <=0.8 then good product otherwise not.
10. Example for bug not reproducible?
A: — Difference in environment
11. During alpha testing why customer people r invited? 
A: — becaz alpha testing related to acceptance testing, so,
accepting testing is done in front of client or customer for
there acceptance
12. Difference between adhoc testing and error guessing?
A: — Adhoc testing: without test data r any documents performing testing. 
Error Guessing: This is a Test data selection technique. The selection criterion is to pick values that seem likely to cause errors.
13. Diff between test plan and test strategy?
A: — Test plan: After completion of SRS learning and business requirement gathering test management concentrate on test planning, this is done by Test lead, or Project lead. 
Test Strategy: Depends on corresponding testing policy quality analyst finalizes test Responsibility Matrix. This is dont by QA. But both r Documents.
14. What is "V-n-V" Model? Why is it called as "V"& why not "U"? Also tell at what Stage Testing should be best to stared? 
A: — It is called V coz it looks like V. the detailed V model is shown below.
          SRS                       
                 Acceptance testing
            \                           
                      /
             
 \                                             /
   
    HLD (High Level Design)       System testing
    
             \                                      /

                   \                                  
/
          LLD (Low level           Integration testing
              Design)                          
/
                        \         
               /    
                    
      \             Unit Testing
            
               \                 /

                             \             /
                              \      
    /
                           
     Coding
There is no such stage for which you wait to start testing. 
Testing starts as soon as SRS document is ready. You can raise defects that are present in the document. It's called verification. 
15. What is difference in between Operating System 2000 and OS XP?
A; — Windows 2000 and Windows XP are essentially the same operating system (known internally as Windows NT 5.0 and Windows NT 5.1, respectively.) Here are some considerations if you're trying to decide which version to use:
Windows 2000 benefits:
1) Windows 2000 has lower system requirements, and has a simpler interface (no "Styles" to mess with).
2) Windows 2000 is slightly less expensive, and has no product activation. 
3) Windows 2000 has been out for a while, and most of the common problems and security holes have been uncovered and fixed.
4) Third-party software and hardware products that aren't yet XP-compatible may be compatible with Windows 2000; check the manufacturers of your devices and applications for XP support before you upgrade. 
Windows XP benefits:
1) Windows XP is somewhat faster than Windows 2000, assuming you have a fast processor and tons of memory (although it will run fine with a 300 MHz Pentium II and 128MB of RAM). 
2) The new Windows XP interface is more cheerful and colorful than earlier versions, although the less- cartoon "Classic" interface can still be used if desired.
3 Windows XP has more bells and whistles, such as the Windows Movie Maker, built-in CD writer support, the Internet Connection Firewall, and Remote Desktop Connection. 
4) Windows XP has better support for games and comes with more games than Windows 2000.
5) Manufacturers of existing hardware and software products are more likely to add Windows XP compatibility now than Windows 2000 compatibility. 
16. What is bug life cycle?
A: — New: when tester reports a defect
Open: when developer accepts that it is a bug or if the developer rejects the defect, then the status is turned into "Rejected" 
Fixed: when developer make changes to the code to rectify the bug…
Closed/Reopen: when tester tests it again. If the expected result shown up, it is turned into "Closed" and if the problem resists again, it's "Reopen 
17. What is deferred status in defect life cycle?
A: — Deferred status means the developer accepted the bus, but it is scheduled to rectify in the next build 
18. What is smoke test?
A; — Testing the application whether it's performing its basic functionality properly or not, so that the test team can go ahead with the application 
19. Do you use any automation tool for smoke testing?
A: - Definitely can use.
20. What is Verification and validation?
A: — Verification is static. No code is executed. Say, analysis of requirements etc. Validation is dynamic. Code is executed with scenarios present in test cases. 
21. What is test plan and explain its contents?
A: — Test plan is a document which contains the scope for testing the application and what to be tested, when to be tested and who to test. 
22. Advantages of automation over manual testing?
A: — Time, resource and Money 
23. What is ADhoc testing?
A: — AdHoc means doing something which is not planned. 
24. What is mean by release notes?
A: — It's a document released along with the product which explains about the product. It also contains about the bugs that are in deferred status. 
25. Scalability testing comes under in which tool?
A: — Scalability testing comes under performance testing. Load testing, scalability testing both r same. 
26. What is the difference between Bug and Defect?
A: — Bug: Deviation from the expected result. Defect: Problem in algorithm leads to failure. 
A Mistake in code is called Error.
Due to Error in coding, test engineers are getting mismatches in application is called defect.
If defect accepted by development team to solve is called Bug.
27. What is hot fix?
A: — A hot fix is a single, cumulative package that includes one or more files that are used to address a problem in a software product. Typically, hot fixes are made to address a specific customer situation and may not be distributed outside the customer organization. 
Bug found at the customer place which has high priority.
28. What is the difference between functional test cases and compatability testcases?
A: — There are no Test Cases for Compatibility Testing; in Compatibility Testing we are Testing an application in different Hardware and software. If it is wrong plz let me know.
29. What is Acid Testing??
A: — ACID Means:
ACID testing is related to testing a transaction. 
A-Atomicity
C-Consistent
I-Isolation
D-Durable
Mostly this will be done database testing.
30. What is the main use of preparing a traceability matrix?
A: — To Cross verify the prepared test cases and test scripts with user requirements. 
To monitor the changes, enhance occurred during the development of the project.
Traceability matrix is prepared in order to cross check the test cases designed against each requirement, hence giving an opportunity to verify that all the requirements are covered in testing the application. 
31. If we have no SRS, BRS but we have test cases does u execute the test cases blindly or do u follow any other process? 
A: — Test case would have detail steps of what the application is supposed to do. SO
1) Functionality of application is known. 
2) In addition you can refer to Backend, I mean look into the Database. To gain more knowledge of the application
32. How to execute test case?
A: — There are two ways:
1. Manual Runner Tool for manual execution and updating of test status. 
2. Automated test case execution by specifying Host name and other automation pertaining details.
33. Difference between re testing and regression testing?
A: — Retesting: –
Re-execution of test cases on same application build with different input values is retesting.
Regression Testing: 
Re-execution of test cases on modifies form of build is called regression testing…
34. What is the difference between bug log and defect tracking?
A; — Bug log is a document which maintains the information of the bug where as bug tracking is the process. 
35. Who will change the Bug Status as Differed?
A: — Bug will be in open status while developer is working on it Fixed after developer completes his work if it is not fixed properly the tester puts it in reopen After fixing the bug properly it is in closed state. 
Developer
36. wht is smoke testing and user interface testing ?
A: — ST:
Smoke testing is non-exhaustive software testing, as pertaining that the most crucial functions of a program work, but not bothering with finer details. The term comes to software testing from a similarly basic type of hardware testing. 
UIT:
I did a bit or R n D on this…. some says it's nothing but Usability testing. Testing to determine the ease with which a user can learn to operate, input, and interpret outputs of a system or component. 
Smoke testing is nothing but to check whether basic functionality of the build is stable or not?
I.e. if it possesses 70% of the functionality we say build is stable. 
User interface testing: We check all the fields whether they are existing or not as per the format we check spelling graphic font sizes everything in the window present or not|
37. what is bug, deffect, issue, error?
A: — Bug: — Bug is identified by the tester.
Defect:– Whenever the project is received for the analysis phase ,may be some requirement miss to get or understand most of the time Defect itself come with the project (when it comes). 
Issue: — Client site error most of the time.
Error: — When anything is happened wrong in the project from the development side i.e. called as the error, most of the time this knows by the developer.
Bug: a fault or defect in a system or machine 
Defect: an imperfection in a device or machine;
Issue: An issue is a major problem that will impede the progress of the project and cannot be resolved by the project manager and project team without outside help 
Error:
Error is the deviation of a measurement, observation, or calculation from the truth
38. What is the diff b/w functional testing and integration testing?
A: — functional testing is testing the whole functionality of the system or the application whether it is meeting the functional specifications 
Integration testing means testing the functionality of integrated module when two individual modules are integrated for this we use top-down approach and bottom up approach 
39. what type of testing u perform in organization while u do System Testing, give clearly? 
A: — Functional testing
User interface testing
Usability testing
Compatibility testing
Model based testing
Error exit testing
User help testing
Security testing
Capacity testing
Performance testing
Sanity testing
Regression testing
Reliability testing
Recovery testing
Installation testing
Maintenance testing
Accessibility testing, including compliance with: 
Americans with Disabilities Act of 1990
Section 508 Amendment to the Rehabilitation Act of 1973
Web Accessibility Initiative (WAI) of the World Wide Web
Consortium (W3C)
40. What is the main use of preparing Traceability matrix and explain the real time usage? 
A: — A traceability matrix is created by associating requirements with the work products that satisfy them. Tests are associated with the requirements on which they are based and the product tested to meet the requirement. 
A traceability matrix is a report from the requirements database or repository.
41. How can u do the following 1) Usability testing 2) scalability Testing 
A:–
UT:
Testing the ease with which users can learn and use a product.
ST:
It's a Web Testing defn.allows web site capability improvement.
PT:
Testing to determine whether the system/software meets the specified portability requirements.
42. What does u mean by Positive and Negative testing & what is the diff's between them. Can anyone explain with an example? 
A: — Positive Testing: Testing the application functionality with valid inputs and verifying that output is correct
Negative testing: Testing the application functionality with invalid inputs and verifying the output. 
Difference is nothing but how the application behaves when we enter some invalid inputs suppose if it accepts invalid input the application
Functionality is wrong 
Positive test: testing aimed to show that s/w work i.e. with valid inputs. This is also called as "test to pass'
Negative testing: testing aimed at showing s/w doesn't work. Which is also know as 'test to fail" BVA is the best example of -ve testing. 
43. what is change request, how u use it?
A: — Change Request is a attribute or part of Defect Life Cycle.
Now when u as a tester finds a defect n report to ur DL…he in turn informs the Development Team.
The DT says it's not a defect it's an extra implementation or says not part of req'ment. Its newscast has to pay. 
Here the status in ur defect report would be Change Request
I think change request controlled by change request control board (CCB). If any changes required by client after we start the project, it has to come thru that CCB and they have to approve it. CCB got full rights to accept or reject based on the project schedule and cost. 
44. What is risk analysis, what type of risk analysis u did in u r project?
A: — Risk Analysis:
A systematic use of available information to determine how often specified events and unspecified events may occur and the magnitude of their likely consequences 
OR
Procedure to identify threats & vulnerabilities, analyze them to ascertain the exposures, and highlight how the impact can be eliminated or reduced
Types: 
1. QUANTITATIVE RISK ANALYSIS
2.QUALITATIVE RISK ANALYSIS
45. What is API?
A: – Application program interface
46. High severity, low priority bug?
A: — A page is rarely accessed, or some activity is performed rarely but that thing outputs some important Data incorrectly, or corrupts the data, this will be a bug of H severity L priority 
47. If project wants to release in 3months what type of Risk analysis u do in Test plan? 
A:– Use risk analysis to determine where testing should be focused. 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 judgment skills, common sense, and experience. (If warranted, formal methods are also available.) Considerations can include: 
• 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?
• Which aspects of the application are most important to the customer?
• Which aspects of the application can be tested early in the development cycle? 
• Which parts of the code are most complex, and thus most subject to errors? 
• Which parts of the application were developed in rush or panic mode?
• Which aspects of similar/related previous projects caused problems? 
• Which aspects of similar/related previous projects had large maintenance expenses?
• Which parts of the requirements and design are unclear or poorly thought out?
• What do the developers think are the highest-risk aspects of the application? 
• What kinds of problems would cause the worst publicity?
• What kinds of problems would cause the most customer service complaints?
• What kinds of tests could easily cover multiple functionalities?
• Which tests will have the best high-risk-coverage to time-required ratio 
48. Test cases for IE 6.0?
A:– Test cases for IE 6.0 i.e. Internet Explorer 6.0:—
1)First I go for the Installation side, means that –
+ is it working with all versions of Windows ,Netscape or other softwares in other words we can say that IE must check with all hardware and software parts. 
2) Secondly go for the Text Part means that all the Text part appears in frequent and smooth manner.
3) Thirdly go for the Images Part means that all the Images appears in frequent and smooth manner.
4) URL must run in a better way. 
5) Suppose Some other language used on it then URL take the Other Characters, Other than Normal Characters.
6)Is it working with Cookies frequently or not.
7) Is it concerning with different script like JavaScript and VBScript. 
HTML Code work on that or not.
9) Troubleshooting works or not.
10) All the Tool bars are work with it or not.
11) If Page has Some Links, than how much is the Max and Min Limit for that.
12) Test for Installing Internet Explorer 6 with Norton Protected Recycle Bin enabled . 
13) Is it working with the Uninstallation Process?
14) Last but not the least test for the Security System for the IE 6.0
49. Where you involve in testing life cycle ,what type of test you perform ?
A:– Generally test engineers involved from entire test life cycle i.e, test plan, test case preparation, execution, reporting. Generally system testing, regression testing, adhoc testing 
etc.
50. what is Testing environment in your company, means how testing process start ? 
A:– testing process is going as follows
quality assurance unit
quality assurance manager
test lead
test engineer
51. Who prepares the use cases?
A: – In Any company except the small company Business analyst prepares the use cases
but in small company Business analyst prepares along with team lead
52. What methodologies have you used to develop test cases?
A: – generally test engineers uses 4 types of methodologies
1. Boundary value analysis
2.Equivalence partition
3.Error guessing
4.cause effect graphing 
53. Why we call it as a regression test not retest?
A: – If we test whether defect is closed or not i.e. Retesting But here we are checking the impact also regression means repeated times 
54. Is automated testing better than manual testing? If so, why?
A:– Automated testing and manual testing have advantages as well as disadvantages
Advantages: It increase the efficiency of testing process speed in process
reliable 
Flexible
disadvantage's
Tools should have compatibility with our development or deployment tools needs lot of time initially If the requirements are changing continuously Automation is not suitable
Manual: If the requirements are changing continuously Manual is suitable Once the build is stable with manual testing then only we go 4 automation 
Disadvantages:
It needs lot of time
We can not do some type of testing manually
E.g Performances
55. What is the exact difference between a product and a project.give an example ? 
A:– Project Developed for particular client requirements are defined by client Product developed for market Requirements are defined by company itself by conducting market survey 
Example
Project: the shirt which we are interested stitching with tailor as per our specifications is project
Product: Example is "Ready made Shirt" where the particular company will imagine particular measurements they made the product 
Mainframes is a product
Product has many mo of versions
but project has fewer versions i.e depends upon change request and enhancements
56. Define Brain Storming and Cause Effect Graphing? With Eg?
A:– BS:
A learning technique involving open group discussion intended to expand the range of available ideas 
OR
A meeting to generate creative ideas. At PEPSI Advertising, daily, weekly and bi-monthly brainstorming sessions are held by various work groups within the firm. Our monthly I- 
Power brainstorming meeting is attended by the entire agency staff.
OR
Brainstorming is a highly structured process to help generate ideas. It is based on the principle that you cannot generate and evaluate ideas at the same time. To use brainstorming, you must first gain agreement from the group to try brainstorming for a fixed interval (eg six minutes). 
CEG: 
A testing technique that aids in selecting, in a systematic way, a high-yield set of test cases that logically relates causes to effects to produce test cases. It has a beneficial side effect in pointing out incompleteness and ambiguities in specifications. 
57. Actually by using severity u should know which one u need to solve so what is the need of priority? 
A: – I guess severity reflects the seriousness of the bug where as priority refers to which bug should rectify first. of course if the severity is high the same case is with priority in normal. 
Severity decided by the tester where as priority decided by developers. which one need to solve first knows through priority not with severity. how serious of the bug knows through 
severity.
Severity is nothing impact of that bug on the application. Priority is nothing but importance to resolve the bug yeah of course by looking severity we can judge but sometimes high severity bug doesn't have high priority At the same time High priority bug don't have high severity 
So we need both severity and priority
58. What do u do if the bug that u found is not accepted by the developer and he is saying it's not reproducible. Note: The developer is in the on site location? 
A: – once again we will check that condition with all reasons. Then we will attach screen shots with strong reasons. Then we will explain to the project manager and also explain to the client when they contact us 
Sometimes bug is not reproducible it is because of different environment suppose development team using other environment and you are using different environment at this situation there is chance of bug not reproducing. At this situation please check the environment in the base line documents that is functional documents if the environment which we r using is correct we will raise it as defect We will take screen shots and sends them with test procedure also 
59. what is the difference between three tier and two tier application?
A:– Client server is a 2-tier application. In this, front end or client is connected to
'Data base server' through 'Data Source Name'; front end is the monitoring level. 
Web based architecture is a 3-tier application. In this, browser is connected to web server through TCP/IP and web server is connected to Data base server, browser is the monitoring level. In general, Black box testers are concentrating on monitoring level of any type of application. 
All the client server applications are 2 tier architectures.
Here in these architecture, all the "Business Logic" is stored in clients and "Data" is stored in Servers. So if user request anything, business logic will b performed at client, and the data is retrieved from Server (DB Server). Here the problem is, if any business logic changes, then we 
need to change the logic at each any every client. The best ex: is taking a super market, i have branches in the city. At each branch I have clients, so business logic is stored in clients, but the actual data is store in servers. If assume I want to give some discount on some items, so I need to change the business logic. For this I need to go to each branch and need to change the business logic at each client. This disadvantage of Client/Server architecture. 
So 3-tier architecture came into picture:
Here Business Logic is stored in one Server, and all the clients are dumb terminals. If user requests anything the request first sent to server, the server will bring the data from DB Sever and send it to clients. This is the flow for 3-tier architecture. 
Assume for the above. Ex. if i want to give some discount, all my business logic is there in Server. So i need to change at one place, not at each client. This is the main advantage of 3-tier architecture. 
60. What is Impact analysis? How to do impact analysis in yr project?
A: — Impact analysis means when we r doing regressing testing at that time we r checking that the bug fixes r working properly, and by fixing these bug other components are working as per their requirements r they got disturbed. 
61. HOW TO TEST A WEBSITE BY MANUAL TESTING?
A: — Web testing
During testing the websites the following scenarios should be considered.
Functionality
Performance
Usability
Server side interface
Client side compatibility
Security
Functionality: 
In testing the functionality of the web sites the following should be tested. 
Links
Internal links
External links
Mail links
Broken links
Forms
Field validation
Functional chart
Error message for wrong input
Optional and mandatory fields
Database
Testing will be done on the database integrity. 
Cookies
Testing will be done on the client system side, on the temporary internet files.
Performance:
Performance testing can be applied to understand the web site's scalability, or to benchmark the performance in the environment of third party products such as servers and middle ware for potential purchase. 
Connection speed:
Tested over various Networks like Dial up, ISDN etc
Load
what is the no. of users per time?
Check for peak loads & how system behaves. 
Large amount of data accessed by user.
Stress
Continuous load
Performance of memory, cpu, file handling etc.
Usability: 
Usability testing is the process by which the human-computer interaction characteristics of a system are measured, and weaknesses are identified for correction. Usability can be defined as the degree to which a given piece of software assists the person sitting at the keyboard to accomplish a task, as opposed to becoming an additional impediment to such accomplishment. The broad goal of usable systems is often assessed using several 
Criteria: 
Ease of learning
Navigation
Subjective user satisfaction
General appearance 
Server side interface: 
In web testing the server side interface should be tested.
This is done by Verify that communication is done properly.
Compatibility of server with software, hardware, network and database should be tested.
The client side compatibility is also tested in various platforms, using various browsers etc. 
Security: 
The primary reason for testing the security of an web is to identify potential vulnerabilities and subsequently repair them. 
The following types of testing are described in this section:
Network Scanning
Vulnerability Scanning
Password Cracking
Log Review
Integrity Checkers
Virus Detection
Performance Testing
Performance testing is a rigorous usability evaluation of a working system under realistic conditions to identify usability problems and to compare measures such as success 
rate, task time and user satisfaction with requirements. The goal of performance testing is not to find bugs, but to eliminate bottlenecks and establish a baseline for future regression testing.
To conduct performance testing is to engage in a carefully controlled process of measurement and analysis. Ideally, the software under test is already stable enough so that this process can proceed smoothly. A clearly defined set of expectations is essential for meaningful performance testing. 
For example, for a Web application, you need to know at least two things:
expected load in terms of concurrent users or HTTP connections
acceptable response time
Load testing: 
Load testing is usually defined as the process of exercising the system under test by feeding it the largest tasks it can operate with. Load testing is sometimes called volume testing, or longevity/endurance testing 
Examples of volume testing:
testing a word processor by editing a very large document
testing a printer by sending it a very large job
testing a mail server with thousands of users mailboxes
Examples of longevity/endurance testing: 
testing a client-server application by running the client in a loop against the server over an extended period of time
Goals of load testing:
Expose bugs that do not surface in cursory testing, such as memory management bugs, memory leaks, buffer overflows, etc. Ensure that the application meets the performance baseline established during Performance testing. This is done by running regression tests against the application at a specified maximum load. 
Although performance testing and load testing can seen similar, their goals are different. On one hand, performance testing uses load testing techniques and tools for measurement and benchmarking purposes and uses various load levels whereas load testing operates at a predefined load level, the highest load that the system can accept while still functioning properly. 
Stress testing: 
Stress testing is a form of testing that is used to determine the stability of a given system or entity. This is designed to test the software with abnormal situations. Stress testing attempts to find the limits at which the system will fail through abnormal quantity or frequency of inputs. 
Stress testing tries to break the system under test by overwhelming its resources or by taking resources away from it (in which case it is sometimes called negative testing).
The main purpose behind this madness is to make sure that the system fails and recovers gracefully — this quality is known as recoverability. 
Stress testing does not break the system but instead it allows observing how the system reacts to failure. Stress testing observes for the following.
Does it save its state or does it crash suddenly?
Does it just hang and freeze or does it fail gracefully? 
Is it able to recover from the last good state on restart?
Etc.
Compatibility Testing
A Testing to ensure compatibility of an application or Web site with different browsers, OS and hardware platforms. Different versions, configurations, display resolutions, and Internet connect speeds all can impact the behavior of the product and introduce costly and embarrassing bugs. We test for compatibility using real test environments. That is testing how will the system performs in the particular software, hardware or network environment. Compatibility testing can be performed manually or can be driven by an automated functional or reg The purpose of compatibility testing is to reveal issues related to the product& interaction session test suite. With other software as well as hardware. The product compatibility is evaluated by first identifying the hardware/software/browser components that the product is designed to support. Then a hardware/software/browser matrix is designed that indicates the configurations on which the product will be tested. Then, with input from the client, a testing script is designed that will be sufficient to evaluate compatibility between the product and the hardware/software/browser matrix. Finally, the script is executed against the matrix,and any anomalies are investigated to determine exactly where the incompatibility lies. 
Some typical compatibility tests include testing your application:
On various client hardware configurations
Using different memory sizes and hard drive space
On various Operating Systems
In different network environments 
With different printers and peripherals (i.e. zip drives, USBs, etc.)
62. Which comes first test strategy or test plan?
A: – Test strategy comes first ans this is the high level document…. and approach for the testing starts from test strategy and then based on this the test lead prepares the 
test plan….
63. What is the difference between web based application and client server application as a testers point of view? 
A: – According to Tester's Point of view——
1) Web Base Application (WBA)is a 3 tier application ;Browser, Back end and Server.
Client server Application (CSA) is a 2 tier Application; Front End, Back end. 
2) In the WBA tester test for the Script error like java script error VB script error etc, that shown at the page. In the CSA tester does not test for any script error.
3) Because in the WBA once changes perform reflect at every machine so tester has less work for test. Whereas in the CSA every time application need to be install hence ,it maybe possible that some machine has some problem for that Hardware testing as well as software testing is needed. 
63. What is the significance of doing Regression testing?
A: – To check for the bug fixes. And this fix should not disturb other functionality 
To ensure the newly added functionality or existing modified functionality or developer fixed bug arises any new bug or affecting any other side effect. this is called regression test and ensure already PASSED TEST CASES would not arise any new bug. 
64. What are the diff ways to check a date field in a website?
A: – There are different ways like:–
1) you can check the field width for minimum and maximum.
2) If that field only take the Numeric Value then check it'll only take Numeric no other type. 
3) If it takes the date or time then check for other.
4) Same way like Numeric you can check it for the Character, Alpha Numeric and all.
5) And the most Important if you click and hit the enter key then some time page may give the error of JavaScript, that is the big fault on the page. 
6) Check the field for the Null value.
ETC…………………
The date field we can check in different ways Positive testing: first we enter the date in given format
Negative Testing: We enter the date in invalid format suppose if we enter date like 30/02/2006 it should display some error message and also we use to check the numeric or text 

No comments:

Post a Comment