What is the testing process followed in a company ideally?
- Whenever a company got new project for testing usually there is a meeting in which they decide about client, testing process, duration, delivery date and who all will be involved in a team. From SRS (Software Requirement specification) project plan is developed and accordingly developer start coding and testers create their test plan.
Responsibility of a tester is to create a test scenario and write test cases according to assigned test modules. They try to cover most of the functional test cases from SRS. Data can be maintained manually in some excel test case template or bug tracking tool
When developer finish individual modules, those modules are assigned to testers and they perfume smoke testing on them and if they fail those tests then they are assigned to respective developers to fix.
Different tests are performed on individual modules and integration testing on module integration. These tests include Compatibility testing i.e testing application on different hardware, OS versions, software platform, different browsers etc. this is a brief outline of the process of project life cycle.
Detail of each testing steps:
#1) SRS Review: Review of the software requirement specifications
#2) Objectives are set for Major releases
#3) Target Date planned for the Releases
#4) Detailed Project Plan is built. This includes the decision on Design Specifications
#5) Develop Test Plan based on Design Specifications
#6) Test Plan: This includes objectives, the methodology adopted while testing, features to be tested and not to be tested, risk criteria, testing schedule, multi-platform support and the resource allocation for testing.
#7) Test Specifications: This document includes technical details (Software requirements) required prior to testing.
#8) Writing of Test Cases
Smoke (BVT) test cases, Sanity Test cases, Regression Test Cases, Negative Test Cases,
Extended Test Cases
#9) Developments – Modules are developed one by one
#10) Installers Binding: Installers are built around the individual product.
#11) Build procedure: A build includes Installers of the available products – multiple platforms.
Smoke Test (BVT): Basic application test to take decision on further testing
Testing of new features, Cross-browser and cross-platform testing
Stress testing and memory leakage testing.
#13) Test Summary Report: Bug report and other reports are created
#14) Code freezing: No more new features are added at this point.
#15) Testing: Build and regression testing.
#16) Decision to release the product
#17) Post-release scenario for further objectives.
Explain difference between SDLC and STLC?
|S. No.||Phase||SDLC – Software Development Life cycle||STLC – Software Test Life Cycle|
|1||Requirements Gathering||Requirements gathering is done by business analyst. Development team analyze the requirements from the design, architecture & coding perspective.||Testing team also review & analyze the requirements. Testing team identifies the testing requirements like what types of testing will be required and review the requirements for logical functional relationship between various features / modules, so that any gaps can be caught at an early stage.|
|2||Design||Technical architect works for the high level & low design of the software. Business analyst works for the UI design of the application||Here, test architect generally the test lead/manager, does the test planning, identify high level testing points. Basically, requirement detailing is done in this phase.|
|3||Coding or development||Development team does the actual coding based on the designed architecture.||Testing team write the detailed test cases.|
|4||Testing||In SDLC, actual testing is carried out in this phase. It includes unit testing, integration testing & system testing etc..||Test Execution and bug reporting, manual testing, automation testing is done, defects found are reported. Re-testing and regression testing is also done in this phase. But, I don’t agree with this statement. So, if I want to relate the testing phase with STLC, I would say it it is testing of test cases & test plans i.e. is basically review of test cases, test scenarios etc..|
|5||Deployment||Application is deployed on production environment for real end users.||Final testing and implementation is done is this phase and final test report is prepared. For this statement as well, I don’t agree. For software / application deployment is basically, when it is installed for real use. So, this way, STLC, deployment would be when test when test cases getting used i.e. execution of test cases.|
|6||Maintenance||Basically, it includes, post production / deployment support & enhancements.||Most of people say – Maintenance testing is carried out in this phase. My definition for this is – updation & maintenance of test plans, test case required for the testing of support requests & enhancements as a part of maintenance.|
What is test scenario, test condition and test case?
Test Scenario: A Test Scenario is any functionality that can be tested. It is also called Test Condition or Test Possibility. As a tester, you may put yourself in the end user’s shoes and figure out the real-world scenarios and use cases of the Application Under Test.
How to create a Test Scenario
As a tester, you can follow these five steps to create Test Scenarios-
- Step 1: Read the Requirement Documents like BRS, SRS, FRS, of the System Under Test (SUT). You could also refer uses cases, books, manual, etc. of the application to be tested.
- Step 2: For each requirement, figure out possible users actions and objectives. Determine the technical aspects of the requirement. Ascertain possible scenarios of system abuse and evaluate users with hacker’s mindset.
- Step 3: After reading the Requirements Document and doing your due Analysis, list out different test scenarios that verify each feature of the software.
- Step 4: Once you have listed all possible Test Scenarios, a Traceability Matrix is created to verify that each & every requirement has a corresponding Test Scenario
- Step 5: The scenarios created are reviewed by your supervisor. Later, they are also reviewed by other Stakeholders in the project.
Test Condition: Test condition is a categorized input and a required output. Conditions are written during a planning period, before executing a test, and they should act a little like a checklist of variations that you want to test before we can confidently say that the code appears to be working. A single requirement can translate into multiple conditions, and [depending on the writing style] multiple requirements may be grouped into a single condition. Also, types or categories of data often enter into a condition, but the condition itself is data independent.
In the common User Login example, a high level requirement would state that a user is able to log into a system (we will call this requirement 1). A sub requirement of that might state that the username is not case sensitive (call this requirement 1.1). Below is an example of some test conditions that may have been written for these requirements; conditions A-D: A) 1 – When a valid username is entered with the correct password, a user is logged into the system. B) 1 – When a valid username is entered with the wrong password, an error message displays. C) 1 – When an invalid username is entered with a password, an error message displays. D) 1, 1.1 – When a valid username is entered in all caps with the correct password, a user is logged into the system. E) 1, 1.1 – When a valid username is entered in all lowercase with the correct password, a user is logged into the system.
Test Case: A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly.
The process of developing test cases can also help find problems in the requirements or design of an application
TEST CASE TEMPLATE
A test case can have the following elements. Note, however, that normally a test management tool is used by companies and the format is determined by the tool used.
|Test Suite ID||The ID of the test suite to which this test case belongs.|
|Test Case ID||The ID of the test case.|
|Test Case Summary||The summary / objective of the test case.|
|Related Requirement||The ID of the requirement this test case relates/traces to.|
|Prerequisites||Any prerequisites or preconditions that must be fulfilled prior to executing the test.|
|Test Procedure||Step-by-step procedure to execute the test.|
|Test Data||The test data, or links to the test data, that are to be used while conducting the test.|
|Expected Result||The expected result of the test.|
|Actual Result||The actual result of the test; to be filled after executing the test.|
|Status||Pass or Fail. Other statuses can be ‘Not Executed’ if testing is not performed and ‘Blocked’ if testing is blocked.|
|Remarks||Any comments on the test case or test execution.|
|Created By||The name of the author of the test case.|
|Date of Creation||The date of creation of the test case.|
|Executed By||The name of the person who executed the test.|
|Date of Execution||The date of execution of the test.|
|Test Environment||The environment (Hardware/Software/Network) in which the test was executed.|
What is a test cycle and why it is important to carry out testing in cycles?
- Software Testing Life Cycle (STLC) is defined as a sequence of activities conducted to perform Software Testing.
It consists of series of activities carried out methodologically to help certify your software product.
Different stages in Software Test Life Cycle:
Each of these stages have a definite Entry and Exit criteria, Activities & Deliverables associated with it.
Entry Criteria: Entry Criteria gives the prerequisite items that must be completed before testing can begin.
Exit Criteria: Exit Criteria defines the items that must be completed before testing can be concluded
There are major Importance of testing in the part of SDLC and it is better to introduce testing in the early stage of SDLC phases so it help to identify the defects in the early stage & try to avoid the bugs finding & get resolve in the last critical stage.
What is Importance of Testing?
Let’s take a look of advantages of software testing in the Software Development Life Cycle:
- Testing should be introduce in the early stage of the SDLC, The cost of fixing the bug is larger if testing is not done in early stage & bugs found in later stages.
- In the today’s competitive market only the quality product stays longtime firmly, so to make sure the produce the good quality product the testing of application is key factor in SDLC.
- As it not possible makes it software application is defect free but testing will be necessary.
- Most important thing of testing is the development environment is different than the Testing environment and the testing done on testing environment is similar to the Production environment.
Ques: Explain Requirement Traceability Matrix (RTM) in simple terms?
Requirement Traceability Matrix or RTM captures all requirements proposed by the client or software development team and their traceability in a single document delivered at the conclusion of the life-cycle.
In other words, it is a document that maps and traces user requirement with test cases. The main purpose of Requirement Traceability Matrix is to see that all test cases are covered so that no functionality should miss while doing Software testing.
Requirement Traceability Matrix – Parameters include
- Requirement ID
- Requirement Type and Description
- Trace to design specification
- Unit test cases
- Integration test cases
- System test cases
- User acceptance test cases.
- Trace to test script