Monday, February 25, 2013

Unix Questions

1) How to Print/Display first line of a file?

>> head -1 file.txt

head -1 prints first line in the file specified.

Or you can use 'sed' command.

$> sed '2,$ d' filename.txt'

Sed command deletes all the lines starting from 2nd line to end of line [Represented by '$']. Though sed command does not modify file content. It only prints first line.

Monday, September 10, 2012

Company Questions


Company 1:
2)   What is a test scenario?
4)   Example of one scenario which has high priority and low severity. And vice versa.?
6)   Write test cases for a static web page.
7)   Explain different test strategies.
8)   Project related questions.
9)   Mantiss related questions.
10) There are two fathers and two sons. They go to the market to buy apples. There are only 3 apples. Each one gets 1 apple. How?

Company 2:

1)   What is a test case?
2)   What is response time?
3)   What are cookies?
4)   What is a session?
5)   What is cache?
6)   What is XML?
7)   What is Trace-ability Matrix?
8)   What is Performance Testing?
9)   What is volume testing?
10) Which part of the software would you like to automate?
11) What is the difference between Desktop Application and Web application?

Security Testing

What is Security testing and what are the main things to test in Security Testing?

Answer:
Whenever we develop any web applications security testing should be on top priority basically for Finance domain and banking applications. Commonly in security testing below terms uses most of the times.

 - Password cracking
 - Vulnerability
 - URL manipulation
 - SQL injection
 - Cross Site Scripting
 - Spoofing

Below are few things needed to concentrate while doing security testing:

 - Authentication, Authorisation, Validations and Password protection.
 - Direct URL’s should not work after logging to the application.
 - HTTP and HTTPS validations.
 - Protocols and IP config validations.
 - Memory leaks.
 - Configuration of the application in servers.


Links:

Previous: What are the different types or approaches of Integration Testing..?

See: Blog Index.

Integration testing types

What are the different types of Integration testing?

Answer:
Big Bang:
In this approach, all or most of the developed modules are coupled together to form a complete software system or major part of the system and then used for integration testing. The Big Bang method is very effective for saving time in the integration testing process. However, if the test cases and their results are not recorded properly, the entire integration process will be more complicated and may prevent the testing team from achieving the goal of integration testing.

A type of Big Bang Integration testing is called Usage Model testing. Usage Model Testing can be used in both software and hardware integration testing. The basis behind this type of integration testing is to run user-like workloads in integrated user-like environments. In doing the testing in this manner, the environment is proofed, while the individual components are proofed indirectly through their use. Usage Model testing takes an optimistic approach to testing, because it expects to have few problems with the individual components. The strategy relies heavily on the component developers to do the isolated unit testing for their product. The goal of the strategy is to avoid redoing the testing done by the developers, and instead flesh out problems caused by the interaction of the components in the environment. For integration testing, Usage Model testing can be more efficient and provides better test coverage than traditional focused functional integration testing. To be more efficient and accurate, care must be used in defining the user-like workloads for creating realistic scenarios in exercising the environment. This gives that the integrated environment will work as expected for the target customers.

Top-down and Bottom-up:

Bottom Up Testing:
In this approach, integration testing is carried out where the sub level components are tested first, and then used to assist the progress of testing of higher level components. This approach is repeated until the modules at the top are tested.

Top Down Testing:
In this approach, integration testing is carried out where the top integrated modules are tested first and then branch of the module is tested step by step until the end of the related module.

Sandwich Testing / Hybrid Testing:
In this approach the combinations of top down testing with bottom up testing is carried out.

The main advantage of the Top-Down, is that it is easier to find a missing branch link. With Bottom-Up approach bugs are more easily found.


What is Software Testing?

Explain Software Testing.

Answer:
Software Testing is carried out in association with verification and validation:

Verification: Did we build the software precisely? i.e., does the built software/product implement the requirements correctly?

Validation: Did we build the right software? (i.e., does the requirements satisfy the client/customer).


Software testing can be briefly stated as the phase or process of comparing with the international standards, verifying and validating that a software application/product:
  • Conforms to the requirements that directed its design and development.
  • Works as expected.
  • Can be put into action with the same behaviors.
  • Satisfies the needs of stakeholders and their customers.


Links:


See: Blog Index.

V & V Model

What is Verification and Validation Model OR V & V Model.?

Answer:
Verification: is planned on to inspect that an application/product, or system, conforms to a set of preliminary system design requirements specifications, and business regulations. In the product or application development phase, the procedures of verifying involves executing tests of models or to reproduce a single unit, or the merged Units, and then engaging an analysis or audit of the combined final results.

Verification Phases:
  • Requirements analysis. 
  • System Design. 
  • Architecture Design. 
  • Module Design. 

Validation: is a process in which it is intended to analyze that the development and the verification processes for an application/product, or system, ends up in an application/product, or system that conforms to initial requirements specifications, and business regulations.

Validation Phases:
  • Unit Testing. 
  • Integration Testing. 
  • System Testing. 
  • User Acceptance Testing. 
  • Release Testing.

Links:



See: Blog Index.

Testing types approaches

What is Unit Testing, Integration testing, System Testing, User Acceptance testing and Release Testing…?

Answer:
Unit Testing:
Unit testing is a phase in which each sole units of modules or source codes are tested to verify that they are feasible to use. A "unit" is the smallest testable part of a product or an application. Unit tests are usually created by coders/developers and barely by white box testers. The only main purpose of unit testing is - to verify the logic of the code, by testing each possible section within the given functionality, also known as test coverage. Unit testing is typically done by automating the test scenarios by coding test scripts. Usually test scripts are coded for each unit by white box testers using frameworks like - TestNG, JUnit and Selenium-IDE. These automation test scripts are usually executed every time a developer makes changes to that particular unit. Later, each unit of these automated test scripts can either be combined together in a predefined order for "integration testing" or can be run individually again and again for "unit testing".


Integration Testing:
In integration testing each single unit of modules will be combined together and tested to unmask the defects and faults in the fuses of units and in the interaction between integrated units/components. There are different types of integration testing - some are :- big-bang, bottom-up, top-down, and sandwich testing.

System Testing:
System testing is a stage in which the system requirements and conditions will be analyzed and compared against the actual developed system. System tests are performed, probably after favorable completion of integration testing. System testing inspects if the assembled product meets the specified system requirements.

What are the Reasons for system test.?
1. In the prior test phases, the technical aspects of products were taken into consideration for testing. The system test will be done from the perspective of the end users and the future users. The testers ascertain whether the requirements are absolutely and suitably met.


2. Most of the actions and system behaviors result from the reciprocal actions of all the system peripherals, wherefore, these behaviors are only revealed on the level of total merged system environment and hence can only be caught and tested there. 

UAT - "User Acceptance Testing": 
UAT is the stage of testing in which they determine whether or not a combined system application/product conforms to the system and design requirements specified. The UAT blueprint is retrieved from the system and design requirements document. The User Acceptance Test phase is the approach used by the End User/Client to verify and validate whether or not to accept the final completed system/product.


Approaches and steps:
1. Formalize the acceptance facts and models: 

  • Quality Analysis and Assurance - (QA&A) of Functionality requirements. 
  • QA&A of Performance requirements. 
  • QA&A of Integration quality requirements. 
  • QA&A of finished system software requirements. 


2. Devise an acceptance plan: 

  • Plan Project descriptions. 
  • Plan User responsibilities. 
  • Plan Acceptance descriptions. 


Release Testing:
Release testing is a state that concludes if the product/software is acceptable for the end-user side organization. This stage of testing involves - testing of compatibility issues with other systems. It tests whether software is optimized for performance and handle user loads.

Links:

Next: What are the different approaches of Integration Testing..?

Previous: What is V and V Model..?

See: Blog Index.