Why does knowing how the Software works influence how and what you should test

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

1.Q: - Why does knowing how the Software works influence how and what you should test?

Ans: -

Think like an End User

Don not thinks only like a technical guy. Think like customers or end users.Always think beyond your end users.Test your application as an end user.Think how an end user will be using your application.Technical plus end user thinking will assure that your application is user friendly and will pass acceptance tests easily. This was the first advice to me from my test manager when I was a novice tester.

100% Test Coverage Is Not Possible

Dont obsess about 100% test coverage.There are millions of inputs and test combinations that are simply impossible to cover.Use techniques like boundary value analysis and equivalence partitioning testing to limit your test cases to manageable sizes.

Build Good Relations with Developers

As a tester, you communicate with many other team members, especially developers. There are many situations where tester and developer may not agree on certain points. It will take your skill to handle such situations without harming a good relationship with the developer. If you are wrong, admit it. If you are right, be diplomatic. Dont take it personally. After all, it is a profession, and you both want a good product.

Learn From Mistakes

As a novice, you will make mistakes. If you dont make mistakes, you are not testing hard enough! You will learn things as you get experience. Use these mistakes as your learning experience. Try not to repeat the same mistakes. It hurts when the client files any bug in an application tested by you. It is definitely an embracing situation for you and cannot be avoided. However, dont beat yourself up. Find the root cause of the failure. Try to find out why you didnt find that bug, and avoid the same mistake in the future. If required, change some testing procedures you are following.

Dont Underestimate yourself if some of your bugs Are Not Fixed

Some testers have assumptions that all bugs logged by them should get fixed. It is a good point to a certain level but you must be flexible according to the situation. All bugs may or may not be fixed. Management can defer bugs to fix later as some bugs have low priority, low severity or no time to fix.

2.Q: - What is the biggest problem of White-Box testing either Static or Dynamic?

Ans: -

White box testing also known as transparent box testing uses an internal perspective of the system to design test cases based on internal structure. It requires programming skills to identify all paths through the software. The tester chooses test case inputs to exercise paths through the code and determines the appropriate outputs. In electrical hardware testing, every node in a circuit may be probed and measured; an example is in-circuit testing (ICT).

Since the tests are based on the actual implementation, if the implementation changes, the tests probably will need to change, too. For example ICT needs updates if component values change, and needs modified/new fixture if the circuit changes. This adds financial resistance to the change process, thus buggy products may stay buggy. Automated optical inspection (AOI) offers similar component level correctness checking without the cost of ICT fixtures; however changes still require test updates.

Problems of White Box Testing

As knowledge of code and internal structure is a prerequisite, a skilled tester is needed to carry out this type of testing, which increases the cost. And it is nearly impossible to look into every bit of code to find out hidden errors, which may create problems, resulting in failure of the application.

3.Q: - How could you guarantee that your Software would never have a Configuration Problem?

Ans: -

Software configuration management tools and techniques tend to focus on managing individual products. However, most development organizations today must create and maintain a product line a collection of closely related products with variations in features and functions - rather than just a single product.

What is the effect of product line versus product on configuration management? Recently the industry has discovered that the answer to this question has significant strategic implications on the way that companies operate and compete. Companies such as Nokia, HP, Philips, Boeing, Cummins and many more have achieved one to two order-of-magnitude improvements in time-to-market, engineering cost, defect rates, and development capacity simply by adopting what are called Software Product Line techniques for managing the variations in their product lines.

Divide and Conquer

Configuration management for a software product line is a multi-dimensional problem. In addition to the conventional problem of managing software evolution over time, software product lines introduce the additional problem of managing variation among the different products within the application domain space of the product line. Thus we have a CM problem in both time and space. The potentially complex interactions between CM in time and in space can make the development of a CM solution for software product lines a formidable challenge.

This challenge can be divided into smaller problems, and then conquered by addressing each of these more manageable sub-problems. A best practice utilized extensively by Big Lever Software clients partitions the problem along two dimensions, the granularity of software assets (files, components, and products), and the time/space distinction (sequential time, parallel time, domain space). The resulting 3x3 grid exposes 9 smaller problems that can be solved using conventional CM technology, component base lining techniques, and the Big Lever Software Gears software product line variation management capabilities

4.Q: - Create the equivalence partitioning and write test cases to test the login screen containing username and password?

Ans: -

Equivalence partitioning is a method for deriving test cases. In this method, classes of input conditions called equivalence classes are identified such that each member of the class causes the same kind of processing and output to occur. In this method, the tester identifies various equivalence classes for partitioning. A class is a set of input conditions that are is likely to be handled the same way by the system. If the system were to handle one case in the class erroneously, it would handle all cases erroneously.

In this method the input domain data is divided into different equivalence data classes. This method is typically used to reduce the total number of test cases to a finite set of testable test cases, still covering maximum requirements.

In short it is the process of taking all possible test cases and placing them into classes. One test value is picked from each class while testing.

E.g.: If you are testing for an input box accepting numbers from 1 to 1000 then there is no use in writing thousand test cases for all 1000 valid input numbers plus other test cases for invalid data.

Using equivalence partitioning method above test cases can be divided into three sets of input data called as classes. Each test case is a representative of respective class.

  1. One input data class with all valid inputs. Pick a single value from range 1 to 1000 as a valid test case. If you select other values between 1 and 1000 then result is going to be same. So one test case for valid input data should be sufficient.
  2. Input data class with all values below lower limit. I.e. any value below 1, as an invalid input data test case.
  3. Input data with any value greater than 1000 to represent third invalid input class.

5.Q: - Explain the key elements involved in formal reviews?

Ans: -

A software review:

A process or meeting during which a software product is project personnel, managers, users, customers, user representatives, or other interested parties for comment or approval.

In this context, the term software product means any technical document or partial document, produced as a deliverable of a software development activity, and may include documents such as contracts, project plans and budgets, requirements documents, specifications, designs, source code, user documentation, support and maintenance documentation, test plans, test specifications, standards, and any other type of specialist work product.

Different Types of Reviews

  1. Code review is systematic examination of computer source code.
  2. Pair programming is a type of code review where two persons develop code together at the same workstation.
  3. Inspection is a very formal type of peer review where the reviewers are following a well-defined process to find defects.
  4. Walkthrough is a form of peer review where the author leads members of the development team and other interested parties through a software product and the participants ask questions and make comments about defects.

6.Q: - Is it acceptable to release a Software Product that has Configuration Bugs?

Ans: -

No, this is not acceptable to release a software product that has configuration bugs. Before reporting any bug, make sure it isnt your mistake while testing you have missed any important flag to set or you might have not configured your test setup properly.

Troubleshoot the reasons for the failure in application. On proper troubleshooting report the bug. I have complied a troubleshooting list. Check it out - what can be different reasons for failure.

Reasons of failure:

  • If you are using any configuration file for testing your application then make sure this file is upto date as per the application requirements: Many times some global configuration file is used to pick or set some application flags. Failure to maintain this file as per your software requirements will lead to malfunctioning of your application under test. You cant report it as bug.
  • Check if your database is proper Missing table is main reason that your application will not work properly. One of my projects was querying many monthly user database tables for showing the user reports. First table existence was checked in master table (This table was maintaining only monthly table names) and then data was queried from different individual monthly tables. Many testers were selecting big date range to see the user reports. But many times it was crashing the application as those tables were not present in database of test machine server, giving SQL query error and they were reporting it as bug which subsequently was getting marked as invalid by developers.
  • If you are working on automation testing project then debug your script twice before coming to conclusion that the application failure is a bug.

7.Q: -In addition to age and popularity what other criteria might you use to equivalence Partition Hardware for Configuration testing?

Ans: -

Equivalence partitioning is a software testing technique that divides the input data of a software unit into partition of data from which test cases can be derived. In principle, test cases are designed to cover each partition at least once. This technique tries to define test case that uncovers classes of errors, thereby reducing the total number of test cases that must be developed.

In rare cases equivalence partitioning is also applied to outputs of a software component, typically it is applied to the inputs of a tested component. The equivalence partitions are usually derived from the requirements specification for input attributes that influence the processing of the test object. An input has certain ranges which are valid and other ranges which are invalid. Invalid data here does not mean that the data is incorrect, it means that this data lies outside of specific partition. This may be best explained by the example of a function which takes a parameter "month". The valid range for the month is 1 to 12, representing January to December. This valid range is called a partition. In this example there are two further partitions of invalid ranges. The first invalid partition would be <= 0 and the second invalid partition would be >= 13.

..... -2 -1 0 ............ 12 13 14 15......


Invalid partition 1 valid partition Invalid partition 2

8.Q: - What are the different levels of Testing and the goals of different levels? For each level Which Testing Approach is more suitable?

Ans: - Level 0

There is no difference between testing and debugging defects may be stumbled upon but there is no formalized effort to find there.

Level 1

The purpose of testing is to show that software works subconsciously select test cases that should not fail.

Level 2

The purpose of testing is to show that the software doesn't work. Consciously select test cases that evaluate the system at its boundaries and near its edges, using diabolically constructed test cases.

Level 3

The purpose of testing is not to prove anything but to reduce the perceived risk of not walking to an acceptable value.

We can prove a system incorrect with only one test case, it is impossible to ever prove it correct. To do so would require us to test every possible valid combination of input data and every possible invalid combination of input data. Goal is to understand the quality of the software in terms of its defects, to furnish the program.

9.Q: -Relate verification and validation to the Quality control and Quality Assurance with an example?

Ans: -

Verification and validation is the process of checking that a product, service, or system meets specifications and that it fulfills its intended purpose. These are critical components of a quality management system such as ISO 9000. Sometimes proceeded with Independent to ensure the validation is performed by a disinterested third party.

Verification is a Quality control process that is used to evaluate whether or not a product, service, or system complies with regulations, specifications, or conditions imposed at the start of a development phase. Verification can be in development, scale-up, or production. This is often an internal process.

Validation is Quality assurance process of establishing evidence that provides a high degree of assurance that a product, service, or system accomplishes its intended requirements. This often involves acceptance of fitness for purpose with end users and other product stakeholders.

It is sometimes said that validation can be expressed by the query Are you building the right thing? And verification by Are you building the thing right? Building the right thing refers back to the user's needs, while building it right checks that the specifications be correctly implemented by the system. In some contexts, it is required to have written requirements for both as well as formal procedures or protocols for determining compliance.

10.Q: -In a code review check list there are some items as given below .Categories them.

Ans: -

1.Are all the conditional path reachable?

NO, there are, of course, some difficulties with this approach. First, some decisions may not be reachable, which can result in unsolvable constraints. Second, assignment statements before conditionals can complicate the process of solving constraints. Jeff Palm did suggest that if the code is written in SSA form we no longer have this problem. Matthias responded that we can use this technique to find errors in programs written in the earlier teaching language levels in Drachma, which are purely functional.

We concluded our discussion of branch coverage with an example that demonstrates this method's incompleteness: writing test cases that exercise both branches of an if expression does not guarantee that the logic of the condition itself is correct. Someone expressed surprise that people believed branch coverage testing to be complete, and Matthias clarified this: people were trying to find the holes that they knew existed in testing methods for the specific purpose of trying to improve the methods.

2.If the pointers are used, are they initialized properly?

Initialize the component of the virtual function table used by the parent class. Initialize the component of the virtual function table used by the parent class they may, of course, be deleted if the annulled pointer.

3.Is there any part of code unreachable?

Yes, there is any part of code can be unreachable. if there is any incorrect statement in the program.

4.Has the use of similar looking operators (e.g. &, && or =, == in C) checked?

Yes, the use of similar looking operators in c is checked differrantly.

5.Does the code follow the coding conventions of the organization?

Yes, the code follows the coding conventions of the organization.