Manual Testing Part - 1

S/w Testing:
It is a process used to identify correctness, completeness and quality of developed S/w application
Or
In simple S/w testing is a combination of Verification and Validation
Advantages of S/w Testing:
        -it will help to deliver  reliable product to the customer
        -it will reduce maintenance cost for a project
        -it will help to stay in Business
        -to deliver bug free application to the customer
Objective of TE:
        Objective of TE is to identify defects in application, when those are resolved then S/w quality improves

Defect:

It is a deviation between expected to actual results in AUT
Defect can also called as an Issue/Incident/fault

AUT: Calculator
Scenario: multiplication
Procedure:
        Click on “9”
        Click on “*”
        Click on “5”
        Click on “=”
        Expected value is “45”
        Actual result is “14”
        Status: failed
Why?
a*b
a+bàLogical errors

note:
in general defects may present in application due to human mistakes while writing the programs like logical errors and Syntax Errors
ex:
Required Scenario:  (Value1+Value2)*value3
Dev-1: (Value1*Value2)+Value3  àLogical error
Dev-2: (Value1+Value2*value3  àSyntax Error
Error –it is a terminology related to programs level
Bug:
When developers are accepted our defects which are reported then those are called Bugs
Failure:
When defects are reached to the end user then it is called failure
Quality S/w:
From producer point of view when application fulfilled with all the client requirements and end user point of view when application fit for use then it is consider as quality s/w
Following are the major factors depend on S/w quality:
i.                  Budget/Cost
ii.              In time Release
iii.           Reliability
a.    Meet client requirements in terms of functionalities
b.   Meet client expectations in terms of speed, compatibility, security, usability, recovery, maintainability …etc

Some of the major activities in S/w Company:
1.   Coding:
Writing the programs using programming/scripting languages in order to develop the application is called “coding”
It is performed by Developers
2.   **Testing:
Once application developed that will be delivered to separate testing team
Whereas TE’s will validate application as per client requirements and expectations
Testing team members are:
        -Test Manager (>7+yrs of Exp)
        -Test Lead (> 5+yrs of Exp)
        -Sr. TE (> 3+yrs of Exp)
        -TE/Trainee (0-2+yrs of Exp)
3.   **Defect Reporting:
Notifying about the defects to developers is called Defect Reporting
It is performed by TE’s

4.   Debugging:
Analyzing source code of the application in order to identify root cause for a defect
It is performed by Developers

5.   Bug fixing:
Modifying source code of the application in order to solve the defects is called Bug fixing/Bug Resolving
It is performed by Developers

Skill set required for Functionality TE:
-knowledge on Manual testing concepts
-knowledge on any one of the Functionality testing tool like Selenium/QTP
-knowledge on any one of the Defect Reporting tool like Quality Center/Bugzilla
-some knowledge on any DB technology like SQL server/Oracle
Software Testing Methods
In general organization follows two types of methods to validate applications. They are
1.   Manual Testing
2.   Automation Testing
1.   Manual Testing:
Without using any automation tool, Test Engineer (TE) directly interacts with application to verify actual behavior while performing operations is called Manual Testing.

For Manual Testing, TE will prepare test cases and those are used to validate application.
Ex: I want to check a file is going to upload in gmail or not.
2.   Automation Testing:
Any task or activity performed with help of tool/programs is called Automation.

Automating human activities (i.e. Test Execution) in order to validate application is called Automation Testing. Automation Testing can be performed using programs/scripting languages or using any one of the third party automation tools like Selenium/QTP/Win runner/Rational Robot/QA Run etc.

For automation testing we need to develop the automation test scripts.

Roles and Responsibilities of Test Engineer(3 + Years’ Experience of Manual and Automation Testing:

1.   Review on Requirement Documents like BRS and FRS in order to understand application functionalities.
2.   Identify Test Scenarios for allocated module.
Note: Scenario is nothing but a functionality.
Test Scenario: It describes test condition or requirement or functionality which we need to validate.
Ex: Identify Test Scenarios in gmail home page.

TS01: Login to gmail
TS02: Find my account
TS03: Create new account
TS04: Selection of language
3.   Prepare Test cases of Manual Testing.
Test case: It describes validation procedure of a specific requirement in application.
Ex: Identify possible test cases to validate login functionality.

TC01: Verify login functionality using valid data.
TC02: Verify login functionality using Invalid data.
TC03: Verify login functionality without data.

Ex: Write TC to verify login functionality using invalid data.
4.   Develop the automation test scripts
5.   Review on Test Cases and automation test scripts
6.   Execution of Test Cases and automation test scripts.
7.   Defect Reporting and Prioritize Defects.
8.   Performing Re-Testing and Regression Testing.

        Skill Set
1.   Knowledge of Manual Testing
2.   Knowledge on Selenium/QTP
3.   Defect Tracking Tool
Software Program
Set of Statements, logics and related data to perform specific task in a system.
Eg:
Int a=10;
Int b=20;
Int c=a+b;
System.out.println©;
Task: To perform Addition

10 & 20 are data.
Software:
Set of instructions or programs to perform related activities in a system.
Eg: Ms-Word, www.youtube.com etc.

Based on Development Software can be categorized into two types.

i.                  Product Based Software
ii.              Project Based Software
i.                  Product Based Software:
Whenever software developed based on generic/standard requirements of particular industry or segment of people in the market then those are called Product Based Software.
Eg: Google Search Engine, www.gmail.com, www.youtube.com, www.webex.com etc

ii.              Project Based Software:
Whenever software developed based on particular organization or requirements then those are called Project Based Software.
Client, End User and Company
i.                  Client/Customer:
It is an organization or individual person who will provide requirements to develop the software.
E.g.
www.grafx-itsolutions.com -> client in “grafx-itsolutions” , it is an organization or single person.
                            Or
Who will buy the license to use software.
E.g. www.webex.com -> client is grafx-itsolutions

ii.              End User:
Who will use software in their business with real data.
E.g.: faculty and students who will use www.webex.com

iii.           Company:
It is an organization where software will be developed as per given requirements.
E.g.
www.webex.com -> It is “Cisco” company product.

Based on work there are two types of companies in IT Industry.
i.                  Product Based Company
ii.              Service Based Company
i.                  Product Based Company:
Company which will focus on their own products to develop.
E.g. Google, Microsoft, HP, Dell, CISCO etc.

ii.              Service Based Company:
Company which will develop individual projects for individual clients.
Eg: TCS, Infosys, Accenture etc.

Environment
Set of software and hardware configuration to perform particular activities by specific team.

There are four types of environments for a project.
i.                  Development Environment
ii.              Test Environment
iii.           User Acceptance Test Environment
iv.            Production Environment

i.                  Development Environment:
It is also called producer environment.  In this environment development team will write the program in order to develop the application as per requirements.

ii.              Test Environment:
It is also called staging environment.  Where separate testing involved to validate application as per client requirements and expectations.

iii.           User Acceptance Test Environment:
Where client team involved in order to confirm application is acceptable or not.



iv.            Production Environment:
Where end user will uses S/W with real date in their business.

Based on usage S/W can be categorized into two types.
1.   System Software
2.   Application Software
1 . System Software
        It is also called BIOS(Base Input/Output System).  Which are used to provide interface among the system components(i.e. system booting)
Eg: Device drivers, operating system like windows, unix, linux, solaris etc.
2.Application Software
        Also called as Front-End application which are used to perform particular business activities in a system.  Whereas Front-End used to manipulate data into back end.

Why do you prefer Software Testing(Job)?
·       It is Technology independent
·       Consistency in Job activities(some roles and responsibilities)
·       Scope to learn different domains
·       Basically I am passionate about Testing activities where it more suitable for my thinking abilities to break the system/to find loop holes in a system.
Common problems in SDLC:
1.   Poor Requirements:
When initial requirements are not clear or incomplete to develop application
2.   Unrealistic schedule:
If too much of work crammed in a too little time
3.   Inadequate Testing: (incomplete testing)
In present scenario it is difficult to estimate how much testing sufficient to validate application
4.   Dynamic changes in Requirements:
When client continuously sending changes in the requirements
5.   Miscommunication:
Lack of communication among the associated project members


Q: When do defects will arise while developing application?
Due to human mistakes while developing application
There is a possibility to defects will arise
i.                  Mistakes in Coding àcoding defects
ii.              Mistakes in Design à Design Defects
iii.           Wrong Requirements àWrong project/Product
Note:
Correct Requirementsà Design to meet Requirements àCoding to meet Design àRight project/product

Q: do you think due to TE’s mistake defects will arise while developing application?
No, due to TE mistake existing defects are not identified (i.e. defects leakage)

Defect Repair cost w. r. to SDLC phases:
In general defect repair cost is estimated using following formula
(no. of persons*no. of hours)
DRC=-----------------------------------------*cost per person-hr
                (no. of defects resolved)

SDLC phases
Defect Repair Cost
Requirements
0% of cost
Design
10% of Cost
Coding
30% of Cost
Testing
50% of Cost
Maintenance
100% of cost

Q:  when do you think testing activities should start in development process of s/w? why?
Testing activities should start early stages with development activities
Early stages identified defects will take less cost to resolve those defects compare to later stages identified defects



Quality Management:
It is a process of preventing defects while developing s/w to ensure there are no defects in final product
QM is divided into 2 parts
i.                  Quality Assurance (QA)
ii.              Quality Control (QC)
i.                  Quality Assurance:
QA team will define development process of S/w in order to prevent defects
QA team will involve throughout life cycle to monitor and measure strength of development process, if any weakness identified then they provide suggestion to improve strength of development process

ii.              Quality Control (QC)
QC team will involve after product is built in order to identify any defects in it, if any defects are identified then make sure those defects should be resolved before deliver application to the client
Q: Explain difference between QA and QC
QA
QC
It is a process oriented
It is product oriented(i.e. Out comes)
It involve throughout life cycle
It involve after product is built
**it is a defects preventive approach
**it is defects detective approach
Auditing, Reviews are the QA activities
s/w testing is an example of QC activity

SDLC Methodologies/Models:
In general high level management team (i.e. QA Team) will decide which model we need to follow to develop application
Based on need of client and complexity of requirements we can adopt any one of the following SDLC model to develop application
Note:
Case study: {to select SDLC model}
1. need of client:
        a. Budget:
                client-1: normal cost
                client-2: low cost

        b. Time:{Actual duration for a project 12 months}
                Client-3: wait up to 12 months
        Client-4: wait up to 8 months then expecting some partial release
                Client-5: Wait up to 3 months then expecting whole system
2. complexity of requirements:
        Scenarios:
        Scenario-1:
                small project with clear requirements
        Scenario-2:
                big project with clear requirements
        Scenario-3:
                incomplete requirements
        Scenario-4:
                Risk in Requirements
        Scenario-5:
                Dynamic changes in requirements



3 comments:

  1. I would like to thank you for the efforts you have made in writing this article about Software Testing Services in Boston. I am hoping the same best work from you in the future as well Software Testing Companies in Chicago. Thank you for sharing such a great blog post Software Testing Companies in Dallas with us this blog is really informative and useful, keep it up..

    Read more - Software Testing Services in Florida

    ReplyDelete

PHP Notes

The Characteristics of PHP:- ----------------------------------- 1.PHP is a high level programming language. 2.It is a server-side scrip...