This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Tuesday 8 January 2013

Testing Stages or Phases (Unit Testing)



2) Unit Testing: 
  • When the Design Documents are base-lined, corresponding Programmers can start Coding by writing Programs.
  • The same programmers can test these Programs to validate completeness and correctness.This process is called Unit Testing.
unit testing

  • This Unit Testing is also called as program testing / code testing / white box testing / glass box testing / open box testing / clear box testing.
In Unit Testing, Programmers  can follow white Box testing techniques they are  as follows:


a) Basic Paths coverage:

Programmers can use this technique to confirm that the Program is Running without any syntax and run time errors.
While applying this technique, programmers can follow below process:
  •  Write the Program
  •  Draw a flow Graph for that program and then 
  •  Find the Number of Paths in that Graph
  •  Run the Program that many times to cover Entirely.

Here in this 'Basic Paths coverage' technique, programmers goal is to cover all the regions.

Note: The number of paths in a program is called as "Cyclomatic complexity"(CC).

Example:

flow graph


       b)Control Stucture Coverage: 


Programmers use this Technique to validate that the  Program correctness in terms of Inputs and Outputs. This technique is called also called as 'Debugging'


Debugging : Checking a program line by line for correction of inputs and outputs.


    c) Program Technique coverage:

Programmers use this Technique to calculate the execution speed of a program. If program speed is not reasonable then programmer acn modify the proper structure without disturbing the functionality.

Example: Swapping of two numbers

A=10

B=10

C=A               (This logic will take less time and more memory)

A=B
B=C
 if we follow the above logic then we will get a=20 and b=10. in the same way let us apply the second logic which is as follows:
A=10
B=20

A=A+B           (This logic will Take less memory and more time)
B=A+B
A=A-B

if we follow the above logic then we will get a=20 and b=10 same as above.

As we know for any company time is most precious one, so programmers will apply the 1st logic.

    d) Mutation coverage:


Mutation means a change in program. Programmers use this technique to confirm that the program is tested completely or not.
In this Technique, Programmers perform a Change in Tested Program and Repeat Testing.

While conducting the re-testing, programmers can try to find the changes in that program. If the changes are not identified then that program testing is incomplete.
This mutation coverage technique is also called as 'Bebugging'. 


Testing Stages or Phases (Documents Testing)

From Fish, V and Agile Models of development process testing will get multiple stages.
1) Document Testing:

  1. It is the first stage in Software Development Process, Requirements Gathering will be done by Business Analyst ( BA ).
  2. Here, BA prepares a Document based on Customer Requirements called BRS / CRS / URS.
                BRS : Business Requirement Specifications.
                CRS : Customer Requirement Specifications.
                URS : User Requirement specifications.
      3.This BRS will be reviewed by the same BA for Completeness & Correctness.

Once BRS is base-lined, system analyst ( SA ) prepares SRS ( Software Requirement Specification ) depends on that  BRS.
example of srs brs




    Here we can observe that SRS is divided in to FRS & NFRS.
FRS consists of Customer Requirements to be Developed and NFRS consists of Customer Expectations to be Achieved.
After completion of SRS preparation, Corresponding System Analyst reviews that SRS for its Completeness & Correctness.
Once SRS is base-lined, Corresponding Designers / Technical Architects concentrate on Software Design in High Level & in Low Level.
High Level Design(HLD - Project Level )
High Level Design shows the complete architecture of Software.
Example:
example of hld

Low Level Design's ( LLD's - Module Level )
Low Level Design provides the Internal Architecture or Logic for a Specific Module. so, thats why, One software or Project has One HLD and Multiple LLD's.
After completion of HLD & LLD's, Corresponding Technical Architrect(TA) can review those Designs for Completeness & Correctness.

Example:
example of lld

Note: During above document testing, people can review documents by following 3 techniques such as walkthrough,inspection,and peer review


a) walk-through:
Walk-Through means a Document being studied from First to Last.
b) Inspection:
Inspection means searching a Factor in Document.
c) Peer review:
Peer Review means Comparing 2 Similar Documents.

Note:
Above 3 Techniques are also called as Documents Testing Techniques or Verification Techniques or Review Techniques or Static Testing Techniques.

Monday 7 January 2013

Old and new SDLC models

Old SDLC (Software Development Life Cycle) Models:

a) Waterfall model or Linear sequential model

b)Prototype model
c) Incremental model
d)Spiral model
e) Rapid application development (RAD) model 

Before learning the waterfall model let you know about:

Software bidding:A proposal to develop a new software is called as 'software bidding'
  • If a proposal came from the customer point of view then it is called as "software project bidding".
  • If a company will study the needs of the market and develop the software then that type of proposal is called as "software product bidding"
a) Waterfall Model:
                                       
waterfall model
                                          
                                              Fig: Waterfall Model

Note: The above waterfall model is also called as the "Linear Sequential Model"

Explanation of above diagram:
  1. From the above diagram at first software bidding will be done between the CEO of company and customer or client. Then after bidding, the CEO will conduct the meeting with all the project managers(PM) in the company called as "kick of meeting"(KIM)
  2. In that meeting  CEO will make an announcement about that new project to handle that project any one of the project manager will be selected.Then that project manager will give an project initiation note(PIN) to CEO.
  3.  Then PM will assign the work to the business analyst(BA) to gather all the requirements from the customer.
  4. Then BA will submit all the gathered requirements to the system analyst(SA) to design inorder to do the analysis or detailed planning which is going to submit it to the PM.Then PM will approve that planning done by SA. 
  5. Then SA will submit that document to the technical architect(TA). 
  6. Then designers will do the design which consists of HLD and LLD's.
  7. Based on that design programmers will do the coding and that corresponding programmers will test the developed code. 
  8. Then after testing that  s/w few programmers will be selected for onsite and release the s/w. 
  9. Then change for control board(CCB) people will do the maintenance/support of that s/w.                 
b) Prototype Model: 
Whenever the customer requirements are not clear, organizations can goto develop a model software to show to customers and to get clear requirements.This sample software is called as "prototype".
                                                     
prototype model
                                         
                                           
                                           Fig: Prototype model
Explanation of above diagram:
  1. From the above diagram at first software bidding will be done between the CEO of company and customer or client. Then after bidding, the CEO will conduct the meeting with all the project managers(PM) in the company called as "kick of meeting"(KIM).
  2.  In that meeting  CEO will make an announcement about that new project, to handle that project any one of the project manager will be selected.Then that project manager will give an project initiation note(PIN) to CEO. 
  3. Then PM will assign the work to the business analyst(BA) to gather all the requirements from the customer.If customer requirements are not clear then company will develop a model s/w and show to the customer. At that time customer will identify the new requirements and those requirements will be gathered by BA.
  4. Then BA will submit all the gathered requirements to the system analyst (SA) inorder to do the analysis or detailed planning which is going to submit it to the PM.Then PM will approve that planning done by SA. 
  5. Then SA will submit that document to the technical architect(TA). 
  6. Then designers will do the design which consists of HLD and LLD's.
  7. Based on that design, programmers will do the coding and that corresponding programmers will test the developed code. 
  8. Then after testing that  s/w, few programmers will be selected for onsite and release the s/w. Then change for control board(CCB) people will do the maintenance/support of that s/w.
c) Incremental Model: 
When customer requirements are clear but, huge.Then the organizations can follow the incremental model to release the  software installment by installment.
incremental model
Fig: Incremental model

  1. From the above diagram in the first installment (i #1) all the process from the software requirement gathering(SRG) to maintenance will be done and this will be proceeded  upto last installment (i # N). 
  2. Thus finally all the huge requirement software will be developed and released to the customer installment by installment.
d) Spiral Model:
When the requirements are clear and enhancing regularly, organizations can follow spiral model to release the software version by version.
spiral model
                                                                Fig: Spiral Model

  1. From the above diagram requirement gathering will be done at first and later design this will be continued till the maintenance stage.
  2. If customer will need any enhancements, those enhancements will be gathered by them and again with the new requirements, analysis will be done. This cycle will be repeated for every new version of the software.
e) Rapid Application Development (RAD) Model:

  1. Organizations are following this Model, when Customer Requirements are known.
     
  2. When customer requirements are similar to old projects, then organizations can follow this model to develop a new software by copying coding from old projects and they will r
    elease new Software using existing Software Coding.
  3.  Here, New Software will be integrated by using Existing Components of Old Projects
Advanced SDLC (Software Development Life Cycle) Models:

Before going to learn the Advanced SDLC models, let you know the reasons for 

outdating the old SDLC models in the organizations.They are:
1. In all the Old SDLC Models, Testing Stage comes after Coding only.
2. This Single Stage of Testing is conducted by the Same Programmers / Developers who perform Coding.
3. Due to this, Organizations are not able to release Quality Software to Customer or to Market.
4. To Develop and Release Quality Software, Organizations are following New SDLC Models.
5. In New SDLC Models, Organizations conduct Multiple Stages of Testing and maintain Separate Testing Teams. The new SDLC models are as follows:

a) Fish Model

b) V-Model
c) Agile Model(XP,SPRINT,SCRUM)

a) Fish Model:


To develop a quality s/w w.r.t to customer requirements and expectations,organizations  are following fish model.But, this model is costly to follow

and time consuming model.

Explanation of above diagram:

fish model
                                                                     Fig: Fish Model
  1. At first project initiation note(PIN) will be given to the CEO,from there the work is going to begin.
  2. The business analyst(BA) will gather all the requirements from the customer and for that gathered requirements testing purpose a 'seperate testing team' will be assigned.
  3. Then system analyst(SA) will do the analysis of that requirements and for the review of those analysed requirements a 'seperate testing team' will be assigned.
  4. Technical architect (s.r programmer) will do the design of those analysed requirements in the form of HLD and LLD's after that a 'seperate testing team' will be assigned for the review of those design. 
  5. All the above conducted testing or reviewing is called as 'documents testing' or 'verification' or 'static testing'.
  6. Unit testing: unit testing means that conducting testing on a single programme in java, .NET,oracle,SAP,C,C++ and etc.
  7. Integration testing: Integration testing means conducting testing on the interconnection of two or more programmes.The below diagram depicts the integration testing: 

8.       Software testing: software testing means conducting the testing on a complete   
          software w.r.t to the customer requirements and expectations.
9.      Acceptance testing: Acceptance testing means that collecting the feedback on 
         s/w from the real customers(Clients) or model customers(Public).
10.     Release testing: Release testing means that the whether s/w was completely and          
           correctly ported into customer site or not. It is also called as onsite testing/
           delivery testing/port testing.
11.    Maintenance testing: During the maintenance testing, CCB people can modify 
         and test s/w w.r.t to customer change request.        



b) V-Model: 
  • This model was introduced by "William evans ferrie".
  • 'V' stands for verification and validation.
  • This model is also defining mapping in between development stages and testing stages.
  • This model is not taking more time to develop a quality s/w unlike  Fish model.
v model
                                                                 Fig: V-Model
Explanation of above diagram:
  1. From the above model BA can prepare and review BRS.
  2. SA can prepare and review SRS.
  3. TA can prepare and review HLD and LLD's.
  4. Programmer can write programmes and conduct unit testing and integration testing w.r.t  LLD's and integration testing w.r.t HLD.
  5. A seperate testing team can test s/w (system testing) w.r.t SRS.
  6. Customer site people can provide feedback on s/w w.r.t BRS.
  7. Release team will take care of s/w release and port testing and CCB people can take care of maintenance/support.
Note: From the V-model, a separate test engineers will be needed for s/w testing stage.Those test engineers also responsible for involve in the acceptance testing and release testing.
Note: Small and medium scale companies prefer V-model to follow because this model is inexpensive and not taking more time.

c) Agile Model: In large scale companies,this model is followable.Because, client is able to maintain stakeholder team to approve deliverables of each stage in development.

After completion of software testing and approval from the stakeholders, real customers are involving to give the feedback on that software.
Under the guidence of stakeholders,release  team can release software and CCB can maintain software.
In agile model development stages will be called with different names:

Note: In old SDLC models, testing will come after coding only. But, in advanced SDLC models testing will come in every stage of develoment by same developer or seperate tester.
Old SDLC models with V-Model: 
 Prototype V-Model:
  • When customer requirements are clear, organizations are following v-model by conducting testing in every stage of development and seperate testing team for software testing stage.
  • When customer requirements are not clear, organizations will follow prototype   V-model.

  • Once requirements are finalized, again same V-model will proceeds.  
Incremental V-Model:
When customer requirements are clear and huge, oraganizations can follow Incremental V-model.

Spiral V-Model: 
When customer requirements are enhancing regularly, oraganizations can follow Spiral V-model.


Case Study:(Old SDLC under along with Agile Model)
When customer requirements are clear and customers are ready to provide stakeholders then organizations can follow the 'Agile model'.
  1. When customer requirements are not clear and customer is ready to provide stakeholders,organizations can follow prototype based agile model called as 'XP' (Extreame Programming).
  2. When customer requirements are huge and customer is ready to provide stakeholders,organizations can follow in based incremental based agile model called as 'SPRINT'.
  3. When customer requirements are enhancing regularly and customer is ready to provide stakeholders,organizations can follow spiral based agile model called as 'SCRUM'.

Company Architecture of HP-QC


Introduction of HP-Quality Center:
  • QC stands for "Quality Center".
  • This tool old name is "Test-Director".
  • HP-QC is a complete test management tool.
  • Working as a website in company Network.
  • This leading web-based QC system helps QA teams to implement a quality management process and build a foundation for best practices on an enterprise-wide level.
  • Quality Center(QC) is designed to cover all the quality activities including requirements , test management, defect tracking, defect reporting as well as areas like business process testing.
  • Ultimately what we can expect from Quality Center is improved application 'quality' with more effective and cost efficient project implementation in company.
Company Architecture of HP-QC:
company architecture of qc


Explanation of above diagram
  • From the above architecture of a company network, H/W team can install QC software in server computer.At that time server OS is as windows 2003 or 2008 of microsoft.
  •  In server computer,QC can create database by using ORACLE or SQL server to store testing documents.
  •  In that network, client machines are using by network admin, PM (project managers), testlead, teamlead,developers,viewers (Business analyst,technical architect etc..) and stakeholders (only for agile model).
  • Network admin is using 'site administrator bin'(SA-bin) part of QC,remaining employees are using 'Quality center bin' (QC-bin) part of QC.
  • To open SA-bin part or QC-bin part, employees are using a common browser installed in client machine called as "QC explorer".


Saturday 5 January 2013

Introduction To Software Testing

Software Testing

'Software testing' is both a discipline and a process. Though software testing is part of the software development process, it should not be considered part of software development. It is a separate discipline from software development.Software testing is an iterative process of both verification and validating functionality, and, even more important, attempting to break the software. The iterative process of software testing consists of:

  1. Designing tests
  2. Executing tests
  3. Identifying problems
  4. Getting problems fixed
The objective of software testing is to find problems and fix them to improve quality.

The most important thing for any 'Software Tester' is to understand the motive behind testing of any product before carrying out the testing process in their respective company. 
   
The main purpose of software testing is Verification, Validation and Identification of Bugs. Verification is basically inspecting on the process and verifies if we are building the product right whereas validation is a process carried out after verification and determines if the product meets the user’s requirements. Bugs identification is vital to figure out discrepancy in Actual and Expected result. 

Defining 'Software Testing' in simple terms:
software Testing:Testing out the software by comparing the expected and actual result inorder to improve the quality of the software is called as 'software testing'.

  • Software: A set of executable programmes is called as 'Software'.
  • Software Project  Vs Software Product: If a Software was developed with respect to to specific customer requirements, then that Software is called 'Software Project' or 'Software application'.
   If a Software was developed with respect to to overall requirements in market,
   then that Software is called 'Software Product'.                        

Introduction of SQL for software Testers

Note:This introduction of SQL is completely for only Software Testers

 Working with SUT (software under testing) Database:

In general, test automators are using MS-excel files for testdata reading and test results storing MS-excel files can allow cells formatting and charts preparation for the agile based project testing.But, some test automators can use corresponding SUT database for data reading and data storing or data writing.So, test automators need "SQL commands" to access database.

SQL (Structured Query Language)

  • SQL is developed by IBM which is universal language to access database developed in ORACLE,MYSQL,DB2,SQL SERVER,SYBASE,MS-ACCESS,BIGDATA and etc.
  • SQL is used to communicate with a database.It is the standard language for relational database management systems(RDBMS).
  • SQL statements are used to perform tasks such as update data on a database, or retrieve data from a database. Although most database systems use SQL, most of them also have their own additional proprietary extensions that are usually only used on their system. 
  • However, the standard SQL commands such as "Select", "Insert", "Update", "Delete", "Create", and "Drop" can be used to accomplish almost everything that one needs to do with a database.

Client Server Architecture:
It is the most frequently used architecture model to implement the projects.In this model we will contain a main computer called as 'server',which is connected with multiple other computers called 'clients'.
Below diagram explains you the client server architecture:
client server architecture

The server will be used to store the data in an organized manner with the help of software such as SQL server,ORACLE,DB2,MYSQL and etc.Inorder to access aswellas manipulate the data on each client computer we will contain a GUI tool called as 'Application programme' or 'Application software'.They will be developed using technologies like VBScript, Java, Dot-net and etc.

           A project is a combination of one front end and one back end database.It is the responsibility of developer to develop database on the server,design the application programme on the client and implementing the programming logic to back end database.It is the responsibility of a test engineer to perform an operation on the front end application and verify whether it is currently effecting the database back end or not. This process is called "Database Testing".
              
          In simple terms database testing means that giving the data at the frontend application and checking whether that is effecting in backend or not w.r.t to modifications.

SQL server:

This database software was developed by the Microsoft organization like any other microsoft components SQL server can also be used only on windows OS.And currently we are using SQL server 2008R2(10.5) and 2012(11.0) versions.

Management Studio Tool:

Inorder to perform operations such as storing, retrieving and manipulating the data in SQL server we have to use this management tool. It contains a window called object explorer which can be used to perform the operations by following navigations by picking on the 'new Query' icon of the tool bar we will get a 'Query editor' window
using this window we can execute related SQL to perform the operation.

Components of SQL server:

Whatever version of SQL server we are using all will follow the same architecture as specified below:
components of sql server


While operating with SQL server we must use the following steps:

  1. Establish a connection with the server.
  2. Create a location called database in the connected server.
  3. Create an object called 'table' inside the database to store actual data.
  4. Create and use all other objects based on the existing tables.                                                          

Connecting to the server:

We can connect to the SQL server in two ways, they are:
  1. Windows authentication: In this model we use a windows user account to establish a connection with the server. This user accounts will be created and controlled by system administrator.                                                                                                         
  2. SQL server authentication: In this method we use a database user account to establish the connection. They will be created and controlled by the Database administrator(DBA).
Authentication: It is the process of validating the correctness of a user account.

Authorization: It is the process of providing permissions to a valid user.