Friday 15 November 2013

Testing Levels in SDLC


In the V-Model, at early stages testing process will be started and equal importance is given to testing.
Usually SDLC has different testing levels.
Each level is explained clearly below:
1)      Requirements Review
After the preparation of requirement documents like BRS and FRS documents formal reviews will be conducted to check
·         Whether all the business needs of the client covered or not?
·         All the requirements are covered or not?
·         All the requirements understandable or not?
·         All the requirements reliable or not?

2)      Design Review
After the preparation of GUI , Database and application (HLD+LLD) design documents review will be conducted on the documents by checking the following factors.
·         Design logic is correct or not?
·         Design logic is complete or not?
·         All the requirements are covered or not?
·         Design logic is reliable or not?

3)      Unit Testing
Once the preparation of source code is completed at developer’s site the development team performs testing to check for the following factors using White box testing techniques.
·         All the statements are performing in the execution or not?
·         Loops are executing perfectly or not?
·         Conditional statements are executing correctly or not?
·         Path coverage and complexity of execution.
After the successful implementation of individual components unit testing is performed.

4)      Integration Testing
After unit testing all the individual components are combined to form the system and checks the data communication among the modules.
But practically, completions of all the modules are not possible at a time to perform integration testing. At that time we follow either big-bang approach or incremental approach.
                                I.            In the big –bang approach the team has to wait until all the components are implemented to perform integration testing.
                              II.            In incremental approach the team can able to perform integration testing before the  implementation  all the components using two different techniques.
a)      Top-down Approach: whenever the sub components are under construction the temporary program called “Stub” is used to carry the result from sub components to main components while implementing integration testing.
b)      Bottom-up Approach: whenever the main component is under construction the temporary program called “driver” is used to carry the result from main component to sub components while implementing integration testing.

Tuesday 5 November 2013

Testing Methodologies


Now we have to go in-depth to software testing concepts

How to test the application?

Either manually or by using any third party automation tool (like QTP, Selenium, Load runner…)
Manual testing: By writing test cases manually validating the functionality of the application is called manual testing.
Automation Testing: Using third party automation tool validating the application functionality.

What are the inputs of testing?

Test data: The data which we pass to the application while validating the application.
 Instead of using static testing approach Test engineer use dynamic testing approach while validating the application functionality.

How to derive test Case?

The best possible test cases can be derived using different testing techniques. Out of them 3 techniques are important. They are
1)      White Box Testing (WBT):
Using programming knowledge validating the source code of the application is called white box testing (WBT)/Glass Box testing/Plain Box Testing/Open Box Testing.
In general at developer’s site, the development team use this WBT technique to derive test cases.
While testing the application the development team checks for the code coverage instead of covering the user requirements. They will check for
a)      Statements coverage: They will check whether all the statements in code are covered or not while execution.
b)      Path/ Branch coverage: They will check the loops conditions… are executed correctly or not.

2)        Black Box Testing (BBT):
Without having the programming knowledge on source code, the separate testing team validates the application only with the help of BRS and FRS documents and the released build (.exe file) with end- user’s perspective is known as Black Box Testing (BBT)/Closed Box Testing.
They use the following techniques to

a.       Boundary Value Analysis (BVA):  This technique is used to validate the input condition in terms of size/range. Using this technique total 3 possible conditions are derived at each boundary level,
Example: (Expression)
 4<=x<=6 (this expression is for validation)
So for this boundary values are 4, 6
Now,
Min                        4              valid                       Max                        6             Valid
Min -1                   4-1=3     valid                       Max-1                   6-1=5     Valid
Min+1                   4+1=5    valid                       Max+1                  6+1=7    Invalid
The test data derived using this technique is passed to the application while validating the certain expression.
Note: In general there is a high possibility of errors in and around the boundary conditions so we can identify the best possible test data.
Disadvantages: Using this method it is not possible to validate the data type. And that too only boundary conditions are validated.

b.      Equivalence Class Partition (ECP): This technique is used to validate the input condition in terms of data type. Using this technique entire test data is derived at first and later it was divided into valid and invalid test data sets.
At the time of execution, sample data is taken from each class to validate the input condition.
Example:
Prepare test data using ECP to validate the withdraw condition for ATM which allows from 100/- to 20,000/- whereas amount should be multiples of 100/-

Valid                                                                      Invalid
===========================|==================================
100<=Amount<=20,000                              Amount<100/-
                        Only multiples of 100/-                                 Amount>20,000
                                                                                            Amount with decimal points
                                                                                            Amount which is not multiples of 100/-

Note: In general we derive test data with the combination of BVA and ECP techniques.
c.       Error Guessing (EG): This technique is used only by the experienced person , with the help of their previous experience of functional testing they will guess the related data for the current situation and performs testing.

3)      Grey Box Testing (GBT): Having the programming knowledge on source code testing the application functionality from user’s perspective using BRS and FRS documents is known as grey box testing.
s     
      Interview Questions_037: Give me some automation tools name?
Interview Questions_038: If we are performing the validation manually then why should we go for Automation tools for testing?
Interview Questions_039: We can make our task fast and easy with automation tool then why should we follow this manual testing??
Interview Questions_040: What is the purpose and need of testing methodologies>
Interview Questions_041: Difference between WBT and BBT?
Interview Questions_042: Which test cases are derived first?
Interview Questions_043: Which Test cases are executed first?
Interview Questions_044: According to you which Technique is better to derive the best possible test data?
Interview Questions_045: Difference between static testing and dynamic testing approaches?
Interview Questions_046: Difference between test data and test case?
Interview Questions_047: If the development team performs testing, which technique they will prefer and why?
Interview Questions_048: Under BBT, how many sub techniques are there?
Interview Questions_049:  Explain BVA and ECP techniques?
Interview Questions_050: Difference between BVA and ECP techniques?
Interview Questions_051: Under BBT, which techniques you have used till now while testing the projects at your institute (If you put any projects on testing then there is a chance for this question)? [In technical round at NCR, HR asked me this question]


Monday 4 November 2013

SDLC Model_ V-Model, Agile Model


Verification and Validation Model (V Model)

This model follows the sequential approach and the testing activities are started in the early stages along with development activities

Meeting point in this model is Coding.

Verification and validation techniques are used and started in the early stages.

Testing is conducted in every level. As per that we have separate concept of Testing levels in SDLC.


When to choose: Clear Requirements, when we need high quality product.

Advantage: Risk management is easy; quality application can be produced.

Disadvantage: Not suitable for dynamic changes.

Interview Questions_033: When to choose V –Model?
Interview Questions_034: How it is different from other models?

 Agile Model

Now-a-days every MNC is following Agile model. In this model, a team of members called Scrum Team will take all the activities.

Client can be closely associated with development team.

At first small unit of the application is implemented and delivered the initial build to the client and testing team for getting approval. If the client satisfies then development team will move to the implementation of next unit otherwise modification work will be done on the current module until the client satisfies.

Total application is implemented in this way and delivered to the client finally.

Implementation -     à     Build1

                                                /  \

                                            /         \

                                Client            Testing Team
 
Satisfies à next module otherwise rework on first build

When to choose: To handle dynamic changes along with production of quality application.

Advantage: Dynamic changes can be handled, high quality application  will be produced.

Disadvantage: Less documentation work, Strict schedule is required.

Interview Questions_035: Do you really think this model is useful than other models. If explain with your opinion??
Interview Questions_036: According to you , which model is better to deliver the high quality product within estimated time?

Sunday 3 November 2013

SDLC Model_RAD Model


RAD Model

Whenever the application has to be delivered within short span (60-90days) the management team will select this RAD Model.

From the existing project the development team imports the components into the present application and delivers the project to the client after testing (Developer + Testing Team) the application.

When to choose: When time period is less.
Disadvantage: This model is not preferable.
 
 
Interview Questions_031: When to choose RAD Model?
Interview Questions_032: If we choose this model do u think that are we cheating the client?

SDLC Model/Methodologies_Spiral Model

Whenever we deal with research applications those are not possible to implement the application successfully at early stages because of the lack of clear requirements. At that situation application has to be developed module wise and deliver to the client for their working purpose, then spiral model is applicable to handle the situation.
Each module will have individual SDLC process.
When to choose: Research kind of Application, No Clear Requirements
Advantage: Risk management is easy; quality application can be produces, less resource requirement.
Disadvantage: It is a time consuming process.
 
Interview Questions_030: Why should we choose Spiral Model??


Saturday 2 November 2013

SDLC Models_Prototype Model


1)      Prototype Model
In this model, after the requirement analysis the
development team will develop the Quick Design. As per the
quick design a prototype (dummy application) is developed
and presents in front of the client for evaluation.
After presentation collects the
feedback

client satisfies               à Immediately actual coding of the application will be started by  the development        team

      client satisfies (Not)   à Refines the requirement develops the prototype and evaluation work until  the client satisfies with the design.

      Once the client satisfies with the quick design actual coding is started, after that Testing team validates the application before releasing the project.

When to choose: when client is not sure about requirements, No Clear Requirements
Advantage: Before the coding phase company will get complete requirements about the client’s business
Disadvantage:
§  Developing prototypes is an additional activity to the development team.

§  Prototypes are not reusable.

§  More cost
 
Interview Questions_025: When should we opt for Prototype model
Interview Questions_026: What do you mean by prototype?
Interview Questions_027: Suppose I have clear requirements. Shall I go for Prototype model?
Interview Questions_028: When we have short span is it good to for prototype model to deliver the quality product??
Interview Questions_029: Can we build the application with 100% quality???
 
 

SDLC Models/Methodologies_1)Waterfall Model


Depends on the client’s requirements and Time period Management team decides the SDLC Model to implement the development process. We have several models among them some important models are listed below.

1)      Waterfall model                                                              


·      Whenever there is requirement for small applications which have clear requirements then Management opt for waterfall model.

·         This model contains all the SDLC phases.

·         After the completion of one phase the next phase will be started.

·         It follows linear sequential approach.

Requirements collection à Requirement Analysis à Design à Coding à Testing à Release and Maintenance.

When to choose: Small Application, Clear Requirements

Advantage: Simple and easy to develop the applications.

Disadvantage: Defect identification in early stages is not possible and this model will not support dynamic changes in the requirements.
 
Interview Questions_019: Difference between requirement collection and analysis
Interview Questions_020: On what basis  you decide whether the application is small or big?
Interview Questions_021: I have a client from some XYZ company related to supermarket. Shall we choose the waterfall model. If so, explain the total development process for that application..
Interview Questions_022: Can we get 100% clear requirements at requirements collection before coding phase??
Interview Questions_023: Now I know that there are dynamic changes in the requirements . Can I opt for waterfall Model?
Interview Questions_024: Using waterfall model I have developed the application . Now Want to change the requirements . What kind of situations I should face now??
 
 

Friday 1 November 2013

Quality Management

Management Team
          We may find the words like quality assurance and quality control in the job description section while searching the job notifications to apply. Those are a bit tricky words. But, no problem we will remember in a shortcut method.

Quality Management
(The team which manages the process of preventing the defects in the development and to ensure that end -product is defect free at the time of release)

//                             \\
 //                                \\
                                                           //                                   \\


                                                               Quality Assurance                                       Quality control
              ( The Team which conducts reviews on                                              ( The team validates the  
development process and improves the team                        application functionality process before the 
strength with suggestions)                                                       release)

Interview Questions_018: Difference between Quality Assurance and Quality Control??
                                                             

Common Problems


Common Problems faced by the stakeholders while developing the software application.


  • Miss communication among the group.
  • Poor requirements.
  • Dynamic changes in requirements.
  • Inadequate Testing.
  • Unrealistic Schedule.

Whenever we say checklist should remember the following four terms


  • Completeness
  • Correctness
  • Understandability
  • Reliability

Interview Questions_014: What is reliability?
Interview Questions_015: Why do dynamic changes occur in requirements??
Interview Questions_016: Can't we freeze the requirements after collection?
Interview Questions_017: One person came to give you his business project. So what you will do? (real time question asked by HR at my NCR interview)??

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) is the development process of s/w project/product to fulfill the client's requirements within specified budget and time. The entire process is carried out in different phases.

1) Requirement collection
Business Analyst ( BA) goes to client place gathers the requirements by conducting meetings and prepares Business Requirement Specification (BRS) Document. After that Conducts feasibility study with crew by considering S/w quality factors. If the project is acceptable BA release the Request for proposal (RFP) and service level agreement (SLA) documents.

2) Requirement Analysis
Immediately after the release of RFP and SLA documents, using the BRS document the System Analyst (SA) prepares the Functional Requirement Specification (FRS) documents by analysing the client's requirements.

3)Design
With the help BRS and FRS documents as inputs Design Architect (DA) generates GUI design document, Database Design Document, Application design (Both HLD and LLD) documents

GUI design document contains dummy screenshots of an application.
Database Design Document contains structure of the tables in the database.
HLD (High level Design) describes the number of modules in the application.
LLD (Low level Design) describes the internal logic of each module in the application.

4) Coding 

By considering HLD and LLD as inputs Software development team starts implementing the logic in a programming language and generates the source code (.exe files) as output.

5) Testing

On the source code

development team performs  --> unit testing , Integration Testing using WBT Techniques.
Testing team performs  --> System Testing using BBT Techniques.
Client performs  -->User Acceptance Testing and gives feedback

6) Release & Maintenance

If the customer/client satisfies with the application then the application is installed at client's location is called Release.
According to the guidelines in SLA document Change control Board (CCB) will provide maintenance to the application.


I think ..now it is easy to remember the SDLC easily.

Interview Questions_010:  What is SDLC?
Interview Questions_011: Difference between HLD and LLD?
Interview Questions_012: When the Testing team is involved in SDLC?
Interview Questions_013:  When can SDLC will get stopped?

Roles and Responsibilities of the test engineer

                 


  • Analyze the application functionality using Business Requirement Specification (BRS) and Functional Requirement Specification (FRS) documents.
  • Identify Test Scenarios.
  • Developing Test Cases.
  • Implement Test Scripts in Automation Tool.
  • Reviews of Test Cases and Test Scripts.
  • Execution of Test Cases and Test Scripts.
  • Defect Reporting and  Prioritizing defects.
  • Performing Re-Testing and Regression Testing.

Now you may get lots of doubts, "What are these words :( " Don't worry. I will explain each term :)

Business Requirement Specification (BRS)- The document which describes the client's business needs.
Functional Requirement Specification (FRS)- The document describes the functionality of the application as per BRS document.
Test Scenario- The situation / conditions which we are going to validate.
Test Case-It is the set of steps with user interaction and subsequent reaction from the system in order to validate the application functionality.
Test Script- Instructions which are given in the automation tool to validate the application.
Defect Reporting -Intimating about the identified defects while execution to the development team is known as defect reporting.
Re-Testing- After fixing the defect, testing the application is called re-testing.
Regression Testing- Testing  to check the effect of defect fixing work on other areas of application.

Other Important terms for now.....

Defect/ Bug Fixing: Solving the defect is known as defect fixing and it will be done by s/w developers.
Debugging: Identifying the root for causing the defect is known as debugging using Root Cause Analysis (RCA).

Interview Questions_006: difference between BRS and FRS documents?
Interview Questions_007: Difference between Re-Testing and Regression Testing?
Interview Questions_008:Define the terms Test Scenario, Test Case, Test Script, Defect Reporting , Defect/Bug Fixing, Debugging