Questions and answers taken from real job interviews.
Find interview questions and answers on this website:
The first step in FPA is to define the boundary. There are two types of major boundaries: • Internal Application Boundary • External Application Boundary The external application boundary can be identified using the following litmus test: • Does it have or will it have any other interface to maintain its data, which was not developed by you?. • Does your program have to go through a third party API or layer? In order for your application to interact with the tax department application your code has to interact with the tax department API. • The best litmus test is to ask yourself if you have full access to the system. If you have full rights to make changes then it is an internal application boundary, otherwise it is an external application boundary.
Function points are a unit measure for software much like an hour is to measuring time, miles are to measuring distance or Celsius is to measuring temperature. Function Points are an ordinal measure much like other measures such as kilometers, Fahrenheit, hours, so on and so forth. This approach computes the total function points (FP) value for the project, by totaling the number of external user inputs, inquiries, outputs, and master files, and then applying the following weights: inputs (4), outputs (5), inquiries (4), and master files (10). Each FP contributor can be adjusted within a range of +/-35% for a specific project complexity.
There are three main elements which determine estimates for black box testing: size, test strategy, and productivity. Using all three elements we can determine the estimate for black box testing for a given project. Let's take a look at these elements. • Size: The most important aspect of estimating is definitely the size of the project. The size of a project is mainly defined by the number of function points. But a function point fails or pays the least attention to the following factors: • Complexity: Complexity defines how many conditions exist in function points identified during a project. More conditions means more test cases which means more testing estimates. • Interfacing: How much does one function affect the other part of the system? If a function is modified then accordingly the other systems have to be tested as one function always impacts another. • Uniformity: How reusable is the application? It is important to consider how many similar structured functions exist in the system. It is important to consider the extent to which the system allows testing with slight modifications. • Test strategy: Every project has certain requirements. The importance of all these requirements also affects testing estimates. Any requirement importance is from two perspectives: one is the user importance and the other is the user usage. Depending on these two characteristics a requirement rating can be generated and a strategy can be chalked out accordingly, which also means that estimates vary accordingly. • Productivity: This is one more important aspect to be considered while estimating black box testing. Productivity depends on many aspects.
Below are the steps in function points: • First Count ILF, EIF, EI, EQ, RET, DET, FTR and use the rating tables. After you have counted all the elements you will get the unadjusted function points. • Put rating values 0 to 5 to all 14 GSC. Adding total of all 14 GSC to come out with total VAF. Formula for VAF = 0.65 + (sum of all GSC factor/100). • Finally, make the calculation of adjusted function point. Formula: Total function point = VAF * Unadjusted function point. • Make estimation how many function points you will do per day. This is also called as "Performance factor".On basis of performance factor, you can calculate Man/Days.
Software applications are a combination of elementary processes. When elementary processes come together they form a software application. There are two types of elementary processes: • Dynamic elementary Process: The dynamic elementary process moves data from an internal application boundary to an external application boundary or vice-versa. Example: Input data screen where a user inputs data into the application. Data moves from the input screen inside the application. • Static elementary Process: Static elementary process which maintains the data of the application either inside the application boundary or in the external application boundary. For example, in a customer maintenance screen maintaining customer data is a static elementary process.
• File Type References (FTRs): An FTR is a file or data referenced by a transaction. An FTR should be an ILF or EIF. So count each ILF or EIF read during the process. If the EP is maintained as an ILF then count that as an FTR. So by default you will always have one FTR in any EP. • Internal Logical Files (ILFs): ILFs are logically related data from a user's point of view. They reside in the internal application boundary and are maintained through the elementary process of the application.ILFs can have a maintenance screen but not always. • External Interface Files (EIFs): EIFs reside in the external application boundary. EIFs are used only for reference purposes and are not maintained by internal applications. EIFs are maintained by external applications. • External Input (EI): EIs are dynamic elementary processes in which data is received from the external application boundary. Example: User interaction screens, when data comes from the User Interface to the Internal Application. • External Output (EO): EOs are dynamic elementary processes in which derived data crosses from the internal application boundary to the external application boundary. • External Inquiry (EQ): An EQ is a dynamic elementary process in which result data is retrieved from one or more ILF or EIF. In this EP some input requests have to enter the application boundary. Output results exits the application boundary. • General System Characteristics (GSCs): This section is the most important section. All the previously discussed sections relate only to applications. But there are other things also to be considered while making software, such as are you going to make it an N-Tier application, what's the performance level the user is expecting, etc. These other factors are called GSCs.
TPA is a technique used to estimate test efforts for black box testing. Inputs for TPA are the counts derived from function points. Below are the features of TPA: • Used to estimate only black box testing. • Require function points as inputs.
The testing estimates derived from function points are actually the estimates for white box testing. So in the following figure the man days are actually the estimates for white box testing of the project. It does not take into account black box testing estimation.
There are five methodologies most frequently used: • Top down according to budget • WBS (Work Breakdown Structure) • Guess and gut feeling • Early project data • TPA (Test Point Analysis)