Usually, testing is considered as a part of the System Development Life Cycle, but it can be also termed as Software Testing Life Cycle or Test Development Life Cycle.
Software Testing Life Cycle consists of the following phases:
1. Planning
2. Analysis
3. Design
4. Execution
5. Cycles
6. Final Testing and Implementation
7. Post Implementation
1. Test Planning (Product Definition Phase):The test plan phase mainly signifies preparation of a test plan. A test plan is a high level planning document derived from the project plan (if one exists) and details the future course of testing. Sometimes, a quality assurance plan - which is more broader in scope than a test plan is also made.
Contents of a Test Plan are as follows :
· Scope of testing
· Entry Criteria (When testing will begin?)
· Exit Criteria (When testing will stop?)
· Testing Strategies (Black Box, White Box, etc.)
· Testing Levels (Integration testing, Regression testing, etc.)
· Limitation (if any)
· Planned Reviews and Code Walkthroughs
· Testing Techniques (Boundary Value Analysis, Equivalence Partitioning, etc.)
· Testing Tools and Databases (Automatic Testing Tools, Performance testing tools)
· Reporting (How would bugs be reported)
· Milestones
· Resources and Training
Contents of a SQA Plan, more broader than a test plan, are as follows :
The IEEE standard for SQA Plan Preparation contains the following outline :
· Purpose
· Reference Documents
· Management
· Documentation
· Standards, Practices and Conventions
· Reviews and Audits
· Software Configuration Management
· Problem Reporting and Corrective Action (Software Metrics to be used can be identified at this stage)
· Tools, Techniques and Methodologies
· Code Control
· Media Control
· Supplier Control
· Records, Collection, maintenance and Retention
2.Test Analysis (Documentation Phase)
The Analysis Phase is more an extension of the planning phase. Whereas the planning phase pertains to high level plans - the Analysis phase is where detailed plans are documented. This is when actual test cases and scripts are planned and documented.
This phase can be further broken down into the following steps :
· Review Inputs : The requirement specification document, feature specification document and other project planning documents are considered as inputs and the test plan is further disintegrated into smaller level test cases.
· Formats : Generally at this phase a functional validation matrix based on Business Requirements is created. Then the test case format is finalized. Also Software Metrics are designed in this stage. Using some kind of software like Microsoft project, the testing timeline along with milestones are created.
· Test Cases : Based on the functional validation matrix and other input documents, test cases are written. Also some mapping is done between the features and test cases.
· Plan Automation : While creating test cases, those cases that should be automated are identified. Ideally those test cases that are relevant for Regression Testing are identified for automation. Also areas for performance, load and stress testing are identified.
· Plan Regression and Correction Verification Testing : The testing cycles, i.e. number of times that testing will be redone to verify that bugs fixed have not introduced newer errors is planned.
3. Test Design (Architecture Document and Review Phase):One has to realize that the testing life cycle runs parallel to the software development life cycle. So by the time, one reaches this phase - the development team would have created some code or at least some prototype or minimum a design document would be have been created.
Hence in the Test Design (Architecture Document Phase) - all the plans, test cases, etc. from the Analysis phase are revised and finalized. In other words, looking at the work product or design - the test cases, test cycles and other plans are finalized. Newer test cases are added. Also some kind of Risk Assessment Criteria is developed. Also writing of automated testing scripts begin. Finally - the testing reports (especially unit testing reports) are finalized. Quality checkpoints, if any, are included in the test cases based on the SQA Plan.
4. Test Execution (Unit / Functional Testing Phase):By this time. the development team would have been completed creation of the work products. Of Course, the work product would still contain bugs. So, in the execution phase - developers would carry out unit testing with testers help, if required. Testers would execute the test plans. Automatic testing Scripts would be completed. Stress and performance Testing would be executed. White box testing, code reviews, etc. would be conducted. As and when bugs are found - reporting would be done.
5. Test Cycle (Re-Testing Phase):By this time, minimum one test cycle (one round of test execution) would have been completed and bugs would have been reported. Once the development team fixes the bugs, then a second round of testing begins. This testing could be mere correction verification testing, that is checking only that part of the code that has been corrected. It could also be Regression Testing - where the entire work product is tested to verify that correction to the code has not affected other parts of the code.
Hence this process of :Testing --> Bug reporting --> Bug fixing (and enhancements) --> Retestingis carried out as planned. Here is where automation tests are extremely useful to repeat the same test cases again and again.During this phase - review of test cases and test plan could also be carried out. 6. Final Testing and Implementation (Code Freeze Phase):When the exit criteria is achieved or planned test cycles are completed, then final testing is done. Ideally, this is System or Integration testing. Also any remaining Stress and Performance testing is carried out. Inputs for process improvements in terms of software metrics is given. Test reports are prepared. if required, a test release note, releasing the product for roll out could be prepared. Other remaining documentation is completed.
7. Post Implementation (Process Improvement Phase):This phase, that looks good on paper, is seldom carried out. In this phase, the testing is evaluated and lessons learnt are documented. Software Metrics (Bug Analysis Metrics) are analyzed statistically and conclusions are drawn. Strategies to prevent similar problems in future projects is identified. Process Improvement Suggestions are implemented. Cleaning up of testing environment and Archival of test cases, records and reports are done.
Tuesday, August 19, 2008
Software Test Life Cycle
Posted by Software Tester at 8:21 AM 0 comments
Sunday, August 17, 2008
Database Testing Interview Questions
1. What we normally check for in the Database Testing?
In DB testing we need to check for,
1. The field size validation
2. Check constraints.
3. Indexes are done or not (for performance related issues)
4. Stored procedures
5. The field size defined in the application is matching with that in the db.
2. What is Database testing?
Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions.for doing data validity testing you should be good in SQL queriesFor data integrity testing you should know about referintial integrity and different constraint.For performance related things you should have idea about the table structure and design.for testing Procedure triggers and functions you should be able to understand the same.
3. How to Test database in Manually? Explain with an example
Observing that opertaions, which are operated on front-end is effected on back-end or not.The approach is as follows :While adding a record thr' front-end check back-end that addition of record is effected or not. So same for delete, update,...... Ex:Enter employee record in database thr' front-end and check if the record is added or not to the back-end(manually).
4. What is data driven test?
An1:Data driven test is used to test the multinumbers of data in a data-table, using this we can easy to replace the paramerers in the same time from deferent locations.e.g: using .xsl sheets.
An2:Re-execution of our test with different input values is called Re-testing. In validate our Project calculations, test engineer follows retesting manner through automation tool.Re-teting is also called DataDriven Test.
There are 4 types of datadriven tests.
1) Dynamic Input submissiion (key driven test) : Sometines a test engineer conducts retesting with different input values to validate the calculation through dynamic submission.For this input submission, test engineer use this function in TSL scriipt-- create_input_dialog ("label");
2) Data Driven Files Through FLAT FILES ( .txt,.doc) : Sometimes testengineer conducts re-testing depends on flat file contents. He collect these files from Old Version databases or from customer side.
3)Data Driven Tests From FRONTEND GREAVES : Some times a test engineer create automation scripts depends on frontend objects values such as (a) list (b) menu (c) table (d) data window (e) ocx etc.,
4)Data Driven Tests From EXCEL SHEET : sometimes a testengineer follows this type of data driven test to execute their script for multiple inputs. These multiple inputs consists in excel sheet columns. We have to collect this testdata from backend tables .
5. How to check a trigger is fired or not, while doing database testing?
It can be verified by querying the common audit log where we can able to see the triggers fired.
6. How to Test Database Procedures and Triggers?
Before testing Data Base Procedures and Triggers, Tester should know that what is the Input and out put of the procedures/Triggers, Then execute Procedures and Triggers, if you get answer that Test Case will be pass other wise fail. These requirements should get from DEVELOPER
7. Is a "A fast database retrieval rate" a testable requirement?
No. I do not think so. Since the requirement seems to be ambiguous. The SRS should clearly mention the performance or transaction requirements i.e. It should say like 'A DB retrival rate of 5 micro sec'.
8. How to test a DTS package created for data insert update and delete? What should be considered in the above case while testing it?What conditions are to be checked if the data is inserted, updated or deleted using a text files?
Data Integrity checks should be performed. IF the database schema is 3rd normal form, then that should be maintained. Check to see if any of the constraints have thrown an error. The most important command will have to be the DELETE command. That is where things can go really wrong. Most of all, maintain a backup of the previous database.
9.How to test a SQL Query in Winrunner? without using DataBase CheckPoints?
By writing scripting procedure in the TCL we can connect to the database and we can test data base and queries. The exact proccess should be: 1)connect to the databasedb_connect("query1",DRIVER={drivername};SERVER=server_name;UID=uidname;PWD=password;DBQ=database_name "); 2)Execute the querydb_excecute_query("query1","write query u want to execute");-Condition to be mentioned-3)disconnect the connectiondb_disconnect("query");
10. How do you test whether a database in updated when information is entered in the front end?
It depend on your application interface..
1. If your application provides view functionality for the entered data, then you can verify that from front end only. Most of the time Black box test engineers verify the functionality in this way.
2. If your application has only data entry from front end and there is no view from front end, then you have to go to Database and run relevent SQL query.
3. You can also use database checkpoint function in WinRunner.
11. How do you test whether the database is updated as and when an information are added in the front end?Give me an example?
It depends on what level of testing you are doing.When you want to save something from front end obviously, it has to store somewhere in the database You will need to find out the relevant tables involved in saving the records.Data Mapping from front end to the tables.Then enter the data from front end and save. Go to database, fire queries to get the same date from the back end.
12. What steps does a tester take in testing Stored Procedures?
First the tester should to go through the requirement, as to why the particular stored procedure is written for. Then check whether all the required indexes, joins, updates, deletions are correct comparing with the tables mentions in the Stored Procedure. And also he has to ensure whether the Stored Procedure follows the standard format like comments, updated by, etc. Then check the procedure calling name, calling parameters, and expected reponses for different sets of input parameters. Then run the procedure yourself with database client programs like TOAD, or mysql, or Query Analyzer Rerun the procedure with different parameters, and check results against expected values. Finally, automate the tests with WinRunner.
13. What are the different stages involved in Database Testing
verify field level data in the database with respect to frontend transactionsverify the constraint (primary key,forien key ....)verify the performance of the proceduresverify the triggrs (execution of triggers)verify the transactions (begin,commit,rollback)
14. How to use sql queries in WinRunner/QTP
in QTPusing output databse check point and database check point ,select SQL manual queries optionand enter the "select" queris to retrive data in the database and compare the expected and actual
15. what is database testing and what we test in database testing?
An1:Database testing is all about testing joins, views, inports and exports , testing the procedures, checking locks, indexing etc. Its not about testing the data in the database. Usually database testing is performed by DBA.
An2:Database testing involves some in depth knowledge of the given application and requires more defined plan of approach to test the data.
Key issues include:
1) Data Integrity
2) Data Validity
3) Data Manipulation and updatesTester must be aware of the database design concepts and implementation rules.
An3:Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions.for doing data validity testing you should be good in SQL queriesFor data integrity testing you should know about referintial integrity and different constraint.For performance related things you should have idea about the table structure and design.for testing Procedure triggers and functions you should be able to understand the same.
16. What SQL statements have you used in Database Testing?
The most important statement for database testing is the SELECT statement, which returns data rows from one or multiple tables that satisfies a given set of criteria. You may need to use other DML (Data Manipulation Language) statements like INSERT, UPDATE and DELTE to manage your test data. You may also need to use DDL (Data Definition Language) statements like CREATE TABLE, ALTER TABLE, and DROP TABLE to manage your test tables. You may also need to some other commands to view table structures, column definitions, indexes, constraints and store procedures.
17. How to test data loading in Data base testing?
You have to do the following things while you are involving in Data Load testing.
1. You have know about source data (table(s), columns, datatypes and Contraints)
2. You have to know about Target data (table(s), columns, datatypes and Contraints)
3. You have to check the compatibility of Source and Target.
4. You have to Open corresponding DTS package in SQL Enterprise Manager and run the DTS package (If you are using SQL Server).
5. Then you should compare the column's data of Source and Target.
6. You have to check the number to rows of Source and Target.
7. Then you have to update the data in Source and see the change is reflecting in Target or not.
8. You have to check about junk character and NULLs.
18. What is way of writing testcases for database testing?
An1:You have to do the following for writing the database testcases.
1. First of all you have to understand the functional requirement of the application throughly.
2. Then you have to find out the back end tables used, joined used between the tables, cursors used (if any), tiggers used(if any), stored procedures used (if any), input parmeter used and output parameters used for developing that requirement.
3. After knowing all these things you have to write the testcase with different input values for checking all the paths of SP. One thing writing testcases for backend testing not like functinal testing. You have to use white box testing techniques.
An2:To write testcase for database its just like functional testing.
1.Objective:Write the objective that you would like to test. eg: To check the shipment that i load thru xml is getting inserted for perticular customer.
2.Write the method of input or action that you do. eg:Load an xml with all data which can be added to a customer.
3.Expected :Input should be viewd in database. eg: The shipment should be loaded sucessfully for that customer,also it should be seen in application.
4.You can write ssuch type of testcases for any functionality like update,delete etc.
An3:At first we need to go through the documents provided. Need to know what tables, stored procedures are mentioned in the doc.Then test the functionality of the application. Simultaneously, start writing the DB testcases.. with the queries you have used at the backend while testing, the tables and stored procedures you have used in order to get the desired results. Trigers that were fired. Based on the stored procedure we can know the functionality for a specific peice of the application. So that we can write queries related to that. From that we make DB testcases also.
19;What is Database testing?
An1:here database testing means test engineer should test the data integrity, data accessing,query retriving,modifications,updation and deletion etc
An2:Database tests are supported via ODBC using the following functions: SQLOpen, SQLClose, SQLError, SQLRetrieve, SQLRetrieveToFile, SQLExecQuery, SQLGetSchema and SQLRequest. You can carry out cursor type operations by incrementing arrays of returned datasets. All SQL queries are supplied as a string. You can execute stored procedures for instance on SQL Server you could use “Exec MyStoredProcedure” and as long as that stored procedure is registered on the SQL Server database then it should execute however you cannot interact as much as you may like by supplying say in/out variables, etc but for most instances it will cover your database test requirements
An3:Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions. for doing data validity testing you should be good in SQL queries For data integrity testing you should know about referintial integrity and different constraint. For performance related things you should have idea about the table structure and design. for testing Procedure triggers and functions you should be able to understand the same.
An4:Data base testing generally deals with the follwoing:
a)Checking the integrity of UI data with Database Datab)
b)Checking whether any junk data is displaying in UI other than that stored in Databasec)
c)Checking execution of stored procedures with the input values taken from the database tablesd)
d)Checking the Data Migration .
e)Execution of jobs if any
20. What we normally check for in the Database Testing?
An1:In DB testing we need to check for,
1. The field size validation
2. Check constraints.
3. Indexes are done or not (for performance related issues)
4. Stored procedures
5. The field size defined in the application is matching with that in the db.
An2:Database testing involves some indepth knowledge of the given application and requires more defined plan of approach to test the data. Key issues include :
1) data Integrity
2) data validity
3) data manipulation and updates. Tester must be aware of the database design concepts and implementation rules
Posted by Software Tester at 3:19 AM 0 comments
WinRunner FAQ
What’s the WinRunner?
WinRunner is Mercury Interactive Functional Testing Tool.
How many types of Run Modes are available in WinRunner?
WinRunner provide three types of Run Modes. Verify ModeDebug ModeUpdate Mode
What’s the Verify Mode?
In Verify Mode, WinRunner compare the current result of application to it’s expected result.
What’s the Debug Mode?
In Debug Mode, WinRunner track the defects in a test script.
What’s the Update Mode?
In Update Mode, WinRunner update the expected results of test script.
How many types of recording modes available in WinRunner?
WinRunner provides two types of Recording Mode:Context SensitiveAnalog
What’s the Context Sensitive recording?
WinRunner captures and records the GUI objects, windows, keyboard inputs, and mouse click activities through Context Sensitive Recording.
What’s the Analog recording?
It captures and records the keyboard inputs, mouse click and mouse movement. It’s not captures the GUI objects and Windows.
Where are stored Debug Result?
Debug Results are always saved in debug folder.
What’s WinRunner testing process?
WinRunner involves six main steps in testing process. Create GUI mapCreate TestDebug TestRun TestView ResultsReport Defects
What’s the GUI SPY?
You can view the physical properties of objects and windows through GUI SPY.
How many types of modes for organizing GUI map files?
WinRunner provides two types of modes- Global GUI map filesPer Test GUI map files
What’s the contained in GUI map files?
GUI map files stored the information, it learns about the GUI objects and windows.
How does WinRunner recognize objects on the application?
WinRunner recognize objects on the application through GUI map files.
What’s the difference between GUI map and GUI map files?
The GUI map is actually the sum of one or more GUI map files.
How do you view the GUI map content?
We can view the GUI map content through GUI map editor.
What’s the checkpoint?
Checkpoint enables you to check your application by comparing it’s expected results of application to actual results.
What’s the Execution Arrow?
Execution Arrow indicates the line of script being executed.
What’s the Insertion Point?
Insertion point indicates the line of script where you can edit and insert the text.
What’s the Synchronization?
Synchronization is enables you to solve anticipated timing problems between test and application.
What’s the Function Generator?
Function Generator provides the quick and error free way to add TSL function on the test script.
How many types of checkpoints are available in WinRunner?
WinRunner provides four types of checkpoints- GUI CheckpointBitmap CheckpointDatabase CheckpointText Checkpoint
What’s contained in the Test Script?
Test Script contained the Test Script Language.
How do you modify the logical name or the physical description of the objects in GUI map?
We can modify the logical name or the physical description of the objects through GUI map editor.
What are the Data Driven Test?
When you want to test your application, you may want to check how it performance same operation with the multiple sets of data.
How do you record a Data Driven Test?
We can create a Data Driven Test through Flat Files, Data Tables, and Database.
How do you clear a GUI map files?
We can clear the GUI map files through “CLEAR ALL” option.
What are the steps of creating a Data Driven Test?
Data Driven Testing have four steps- Creating testConverting into Data Driven TestRun TestAnalyze test
What’s the extension of GUI map files?
GUI map files extension is “.gui”.
What statement generated by WinRunner when you check any objects?
Obj_check_gui statement.
What statement generated by WinRunner when you check any windows?
Win_check_gui statement
What statement generated by WinRunner when you check any bitmap image over the objects?
Obj_check_bitmap statement
What statement generated by WinRunner when you check any bitmap image over the windows?
Win_check_bitmap statement
What statement used by WinRunner in Batch Testing?
“Call” statement.
Which short key is used to freeze the GUI Spy?
“Ctrl+F3”
How many types of parameter used by WinRunner?
WinRunner provides three types of Parameter- TestData DrivenDynamic
How many types of Merging used by WinRunner?
WinRunner used two types of Merging- AutoManual
What’s the Virtual Objects Wizard?
Whenever WinRunner is not able to read an objects as an objects then it uses the Virtual Objects Wizard.
How do you handle unexpected events and errors?
WinRunner uses the Exception Handling function to handle unexpected events and errors.
How do you comment your script?
We comment script or line of the script by inserting “#” at the beginning of script line.
What’s the purpose of the Set_Windows command?
Set_Window command set the focus to the specified windows.
How you created your test script?
Programming.
What’s a command to invoke application?
Invoke_application
What do you mean by the logical name of objects?
Logical name of an objects is determined by it’s class but in most cases, the logical name is the label that appear on an objects.
How many types of GUI checkpoints?
In Winrunner, three types of GUI checkpoints- For Single PropertiesFor Objects/WindowsFor Multiple Objects
How many types of Bitmap Checkpoints?
In Winrunner, two types of Bitmap Checkpoints- For Objects/WindowsFor Screen Area
How many types of Database Checkpoints?
In Winrunner, three types of Database Checkpoints- Default CheckCustom CheckRuntime Record Check
How many types of Text Checkpoints?
In Winrunner, four types of Text Checkpoints- For Objects/WindowsFrom Screen AreaFrom Selection (Web Only)Web text CheckpointsNotes:* Winrunner generates menu_select_item statement whenever you select any menu items.* Winrunner generates set_window statement whenever you begin working in new window.* Winrunner generates edit_set statement whenever you enter keyboard inputs.* Winrunner generates obj_mouse_click statement whenever you click any object through mouse pointer.* Winrunner generates obj_wait_bitmap or win_wait_bitmap statements whenever you synchronize the script through objects or windows.* The ddt_open statement opens the table.* The ddt_close statement closes the table.* Winrunner inserts a win_get_text or obj_get_text statements in script for checking the text.* The button_press statement press the buttons.* Winrunner generates list_item_select statement whenever you want to select any value in drop-down menu.* We can compare the two files in Winruuner using the file_compare function.* tl_step statement used to determine whether section of a test pass or fail.* Call_Close statement close the test when the test is completed
Posted by Software Tester at 3:00 AM 0 comments
Thursday, August 14, 2008
Interview Questions of Software Testing
What’s the Software Testing?
A set of activities conducted with the intent of finding errors in software.
What’s the Test Plan?
A high level of documents that define the software testing project.
What’s the Test Case?
A set of test inputs, execution, and expected result developed for a particular objective.
What’s the Test Log?
A chronological record of all relevant details about the execution of a test.
What’s the Test Data?
The actual values used in the test or that are necessary to execute the test.
What’s the Database testing?
In database testing, we can check the integrity of database field values.
What’s the Defect?
The difference between the functional specification and actual program text.
What’s the Negative testing?
That testing is designed for break the system.
What’s the Test Bed?
An environment that contain different types of hardware, software, simulator, testing tools, and other support elements that are necessary to conduct a test.
What’s the Test Condition?
A set of circumstances that a test invokes.
What’s the Usability testing?
Usability testing is for user friendliness.
What’s the Volume Testing?
We can perform the Volume testing, where the system is subjected to large volume of data.
What’s the Black Box testing?
Black Box testing is not based on any knowledge of internal logic.
What’s the White Box testing?
White Box testing is based on knowledge of internal logic.
What’s the Regression Testing?
After every update we should test the system and check the effects on all venerable point of system
What’s the System Testing?
After integration of all module check the correctness of functional flow of system.
What’s the performance Testing?
In performance testing we can check the system with valid entry data and minimize the blocker condition possibility.
What’s the Defect Tracking?
Defect tracking is the process of finding bugs in software.
What’s the Unit Testing?
Testing of individual component of software.
What’s the Test Tool?
A computer program that used in testing the systems.
What’s the Test Driver?
A program or test tool used to execute test.
What’s the End-To-End Testing?
Testing a complete application environment in a situation that mimics a real world use.
What’s Coding?
A generation of source code.
What’s the Cause Effect Graph?
It’s graphical representation of inputs and the output effects that are used to design test case.
What’s the Test Life Cycle?
A Test Life Cycle is contains seven steps-
Plan Test
Design Test Case
Run Test
Analyze Result
Documents Test Result
Preparation of Validation report
Regression Testing
What’s the Validation?
Validation refers to a set of activities that ensure that the software has been built is traceable to customer requirements.
What’s the Verification?
Verification refers to a set of activities that ensure that correctly implements a specific function.
What’s Ad Hoc Testing?
A testing where the tester tries to break the software by randomly trying functionality of software.
What’s Compatibility Testing?
In Compatibility testing we can test that software is compatible with other elements of system.
What’s the Data Flow Diagram?
A modeling notation that represent the functional composition of a system.
What’s the Debugging?
Debugging is the method of finding and rectifying the cause of software failures.
What’s the Positive Testing?
In positive testing we can assume that software is working fine.
Who’s the good software engineer?
A good software engineer has “test to break” attitude, an ability to take the point of view of the customers, and strong quality desire.
What’s the Security Testing?
A testing which confirms that the software can restrict the access of unauthorized personnel.
What’s the Software Requirement Specification?
A deliverable that describe all data, functional and behavioral requirement, and all validation requirements for software.
What’s the Static Testing?
In Static testing we can analyze the source code to expose potential defects.
What’s the Accessibility Testing?
Testing that determines if software will be usable by people with disabilities.
What’s the Bottom-up Testing?
An approach to integration testing where the lowest level component are tested first.
What’s the Smoke Testing?
A Smoke testing is a cursury examination of all of of the basic components of the software to ensure that they will work correctly.
What’s the Boundry Value Analysis?
Boundry Valuse Analysis is a test data selection technique in whice values are choosen maximum, minimum, just inside, just outside boundries, typical values, and error values. The hope is then if software work correctly for these values then it’s will works for all values in between.
What’s the Top-Down testing?
An approach to integration testing where the top level component are tested first.
What’s the Acceptance Testing?
A testing conducted to enable a user or customer to determine whether to accept a software project.
What’s the Functional Testing?
In Functional Testing, we can test features or operational behaviour of a product to ensure that they correspond to it’s requirements.
What’s the Integration Testing?
In Integration Testing, we can test combined parts of application to determine if they work together correctly.
When we performed Integration Testing?
Usually performed after unit and functional testing.
What’s the Test Scenario?
It defines a set of test cases or test scripts and the sequences in which they are to be executed.
What’s the Traceability Matrix?
A document that showing the relationship between Test Requirements and Test Cases.
What’s the Validation Strategies?
A Validation Strategies are-
Unit Testing
Integration Testing
System testing
End to End Testing
User Acceptance Testing
Installation Testing
Beta Testing
What’s the Verification Strategies?
A Verification Strategies are-
Requirement Reviews
Design Reviews
Code Walkthrough
Code Inspections
What’s the Code Walkthrough?
Code Walkthrough help in analyzing the coding techniques and if the code is meeting the coding standards.
What’s the Code Inspections?
Code Inspections is formal analysis of the program source code to find defects as defind by meeting system design specifications.
What’s the Beta Testing?
Testing the application after the installation at the client place.
What’s the Installation Testing?
Testing the computer system during the installation.
How many types of testing?
There are two types of testing-
Functional- Black Box Testing
Structural- white Box Testing
How many types of approaches are used in Integration Testing?
There are two types of approaches used-
Bottom-Up
Top-Down
What’s the Alpha Testing?The Alpha Testing is conducted at the developer sites and in a controlled environment by the end user of the software
Posted by Software Tester at 5:13 AM 0 comments
Wednesday, August 13, 2008
Software Metric
Definition of Software Metrics
A metric is a mathematical number that shows a relationship between two variables. It is a quantitative measure of the degree to which a system, component or process possesses a given attribute. Software Metrics are measures that are used to quantify the software, software development resource and software development process.
· Process Metric
· Product Metric
Process Metric a metric used to measure the characteristic of the methods, techniques and tools employed in developing, implementing and maintaining the software system.
Product Metric a metric used to measure the characteristic of the documentation and code
The metrics for the test process would include status of test activities against the plan, test coverage achieved so far, among others. An important metric is the number of defects found in internal testing compared to the defects found in customer tests, which indicate the effectiveness of the test process itself.
Test Metrics
The following are the Metrics collected in testing process
User participation = User Participation Test Time Vs Total Test Time
Path Tested = Number of Path Tested Total Number of Paths
Acceptance Criteria Tested = Acceptance Criteria Verified Vs Total Acceptance Criteria
Cost to Locate Defect
Test Cost
=
No of Defects located in the Testing
This metric shows the cost to locate a defect Detected
Production Defect
No of Defects detected in production
=
Application System size
Test Automation
Cost of Manual Test Effort
=
Total Test Cost
Posted by Software Tester at 10:11 PM 0 comments
Test Reports
A final test report should be prepared at the conclusion of each test activity. This might include
· Individual Project Test Report (e.g., a single software system)
· Integration Test Report
· System Test Report
· Acceptance Test Report
The test reports are designed to document the results of testing as defined in the test plan. Without a well-developed test plan, which has been executed in accordance with its criteria, it is difficult to develop a meaningful test report.
It is designed to accomplish three objectives:
· Define the scope of testing - normally a brief recap of the test plan;
· Present the results of testing; and
· Draw conclusions and make recommendations based on those results
The test report may be a combination of electronic data and hard copy. For example, if the function test matrix is maintained electronically, there is no reason to print that, as the paper report will summarize that data, draws the appropriate conclusions, and present recommendations.
The test report has one immediate and three long-term purposes. The immediate purpose is to provide information to the customers of the software system so that they can determine whether the system is ready for production: and if so, to assess the potential consequences and initiate appropriate actions to minimize those consequences.
The first of the three long-term uses is for the project to trace problems in the event the application malfunctions in production. Knowing which functions have been correctly tested and which ones still contain defects can assist in taking corrective action.
The second long-term purpose is to use the data to analyze the rework process for making changes to prevent defects from occurring in the future. Accumulating the results of many test reports to identify which components of the rework process are detect-prone does this. These defect-prone components identify tasks/steps that, if improved, could eliminate or minimize the occurrence of high-frequency defects.
The third long-term purpose is to show what was accomplished.
Individual Project Test Report
These reports focus on individual projects (e.g., software system). When different testers test individual projects, they should prepare a report on their results.
Integration Test Report
Integration testing tests the interfaces between individual projects. A good test plan will identify the interfaces and institute test conditions that will validate interfaces. Given this, the interface report follows the same format as the individual Project Test report, except that the conditions tested are the interfaces.
System Test Report
A system test plan standard that identified the objectives of testing, what was to be tested, how it was to be tested and when tests should occur. The System Test report should present the results of executing that test plan. If this is maintained electronically, it need only be referenced, not included in the report.
Acceptance Test Report
There are two primary objectives for testing. The first is to ensure that the system as implemented meets the real operating needs of the user or customer. If the defined requirements are those true needs, the testing should have accomplished this objective. The second objective is to ensure that the software system can operate in the real-world user environment, which includes people skills and attitudes, time pressures, changing business conditions, and so forth.
Eight Interim Reports:
1. Functional Testing Status
2. Functions Working Timeline
3. Expected verses Actual Defects Detected Timeline
4. Defects Detected verses Corrected Gap Timeline
5. Average Age of Detected Defects by Type
6. Defect Distribution
7. Relative Defect Distribution
8. Testing Action
Functional Testing Status Report
This report will show percentages of the functions, which have been:
· Fully Tested
· Tested With Open Defects
· Not Tested
Functions Working Timeline report
This report will show the actual plan to have all functions working verses the current status of functions working. An ideal format could be a line graph.
Expected verses Actual Defects Detected report
This report will provide an analysis between the number of defects being generated against the expected number of defects expected from the planning stage
Defects Detected verses Corrected Gap report
This report, ideally in a line graph format, will show the number of defects uncovered verses the number of defects being corrected and accepted by the testing group. If the gap grows too large, the project may not be ready when originally planned.
Average Age Detected Defects by Type report
This report will show the average outstanding defects by type (severity 1, severity 2, etc.). In the planning stage, it is benefic determine the acceptable open days by defect type.
Defect Distribution report
This report will show the defect distribution by function or module. It can also include items such as numbers of tests completed.
Relative Defect Distribution report
This report will take the previous report (Defect Distribution) and normalize the level of defects. An example would be one application might be more in depth than another, and would probably have a higher level of defects. However, when normalized over the number of functions or lines of code, would show a more accurate level of defects.
Testing action report
This report can show many different things, including possible shortfalls in testing. Examples of data to show might be number of severity defects, tests that are behind schedule, and other information that would present an accurate testing picture
Posted by Software Tester at 9:52 PM 0 comments
Defect Tracking
Defects are recorded for following major purposes:
· To correct the defect
· To report status of the application
· To gather statistics used to develop defect expectations in future applications
· To improve the software development process
Most project teams utilize some type of tool to support the defect tracking process. This tool could be as simple as a white board or a table created and maintained in a word processor or one of the more robust tools available today, on the market, such as Mercury's Test Director etc. Tools marketed for this purpose usually come with some number of customizable fields for tracking project specific data in addition to the basics. They also provide advanced features such as standard and ad-hoc reporting, e-mail notification to developers and/or testers when a problem is assigned to them, and graphing capabilities.
At a minimum, the tool selected should support the recording and communication significant information about a defect. For example, a defect log could include:
· Defect ID number
· Descriptive defect name and type
· Source of defect -test case or other source
· Defect severity
· Defect priority
· Defect status (e.g. open, fixed, closed, user error, design, and so on) -more robust tools provide a status history for the defect
· Date and time tracking for either the most recent status change, or for each change in the status history
· Detailed description, including the steps necessary to reproduce the defect
· Component or program where defect was found
· Screen prints, logs, etc. that will aid the developer in resolution process
· Stage of origination
· Person assigned to research and/or correct the defect
Severity versus Priority
The severity of a defect should be assigned objectively by the test team based on pre defined severity descriptions. For example a "severity one" defects maybe defined as one that causes data corruption, a system crash, security violations, etc. In large project, it may also be necessary to assign a priority to the defect, which determines the order in which defects should be fixed. The priority assigned to a defect is usually more subjective based upon input from users regarding which defects are most important to them, and therefore should be fixed first.
It is recommended that severity levels be defined at the start of the project so that they intently assigned and understood by the team. This foresight can help test teams avoid the common disagreements with development teams about the criticality of a defect.
Some general principles
· The primary goal is to prevent defects. Wherever this is not possible or practical, the goals are to both find the defect as quickly as possible and minimize the impact of the defect.
· The defect management process, like the entire software development process, should be risk driven, i.e., strategies, priorities and resources should be based on an assessment of the risk and the degree to which the expected impact of risk can be reduced.
· Defect measurement should be integrated into the development process and be used by the project team to improve the development process. In other words, information on defects should be captured at the source as a natural by-product of doing the job. People unrelated to the project or system should not do it.
· As much as possible, the capture and analysis of the information should be automated. There should be a document, which includes a list of tools, which have defect management capabilities and can be used to automate some of the defect management processes.
· Defect information should be used to improve the process. This, in fact, is the primary reason for gathering defect information.
· Imperfect or flawed processes cause most defects. Thus, to prevent defects, the process must be altered.
The Defect Management Process
The key elements of a defect management process are as follows.
· Defect prevention
· Deliverable base-lining
· Defect discovery/defect naming
· Defect resolution
· Process improvement
· Management reporting
Posted by Software Tester at 9:41 PM 0 comments
Testing Life Cycle
Test Plan Preparation
The software test plan is the primary means by which software testers communicate to the product development team what they intend to do. The purpose of the software test plan is to prescribe the scope, approach, resource, and schedule of the testing activities. To identify the items being tested, the features to be tested, the testing tasks to be preformed, the personnel responsible for each task, and the risks associated with the plan.
The test plan is simply a by-product of the detailed planning process that’s undertaken to create it. It’s the planning that matters, not the resulting documents. The ultimate goal of the test planning process is communicating the software test team’s intent, its expectations, and its understanding of the testing that’s to be performed.
The following are the important topics, which helps in preparation of Test plan.
· High-Level Expectations
The first topics to address in the planning process are the ones that define the test team’s high-level expectations. They are fundamental topics that must be agreed to, by everyone on the project team, but they are often overlooked. They might be considered “too obvious” and assumed to be understood by everyone, but a good tester knows never to assume anything.
· People, Places and Things
Test plan needs to identify the people working on the project, what they do, and how to contact them. The test team will likely work with all of them and knowing who they are and how to contact them is very important.
Similarly, where documents are stored, where the software can be downloaded from, where the test tools are located, and so on need to be identified.
· Inter-Group Responsibilities
Inter-Group responsibilities identify tasks and deliverables that potentially affect the test effort. The test team’s work is driven by many other functional groups – programmers, project manages, technical writers, and so on. If the responsibilities aren’t planned out, the project, specifically the testing, can become a worst or resulting in important tasks been forgotten.
· Test phases
To plan the test phases, the test team will look at the proposed development model and decide whether unique phases, or stages, of testing should be performed over the course of the project. The test planning process should identify each proposed test phase and make each phase known to the project team. This process often helps the entire team from and understands the overall development model.
· Test strategy
The test strategy describes the approach that the test team will use to test the software both overall and in each phase. Deciding on the strategy is a complex task- one that needs to be made by very experienced testers because it can determine the successes or failure of the test effort.
· Bug Reporting
Exactly what process will be used to manage the bugs needs to be planned so that each and every bug is tracked, from when it’s found to when it’s fixed – and never, ever forgotten.
· Metrics and Statistics
Metrics and statistics are the means by which the progress and the success of the project, and the testing, are tracked. The test planning process should identify exactly what information will be gathered, what decisions will be made with them, and who will be responsible for collecting them.
· Risks and Issues
A common and very useful part of test planning is to identify potential problem or risky areas of the project – ones that could have an impact on the test effort.
Test Case Design
The test case design specification refines the test approach and identifies the features to be covered by the design and its associated tests. It also identifies the test cases and test procedures, if any, required to accomplish the testing and specifics the feature pass or fail criteria. The purpose of the test design specification is to organize and describe the testing needs to be performed on a specific feature.
The following topics address this purpose and should be part of the test design specification that is created:
· Test case ID or identification
A unique identifier that can be used to reference and locate the test design specification the specification should also reference the overall test plan and contain pointers to any other plans or specifications that it references.
· Test Case Description
It is a description of the software feature covered by the test design specification for example, “ the addition function of calculator,” “font size selection and display in word pad,” and “video card configuration testing of quick time.”
· Test case procedure
It is a description of the general approach that will be used to test the features. It should expand on the approach, if any, listed in the test plan, describe the technique to be used, and explain how the results will be verified.
· Test case Input or Test Data
It is the input the data to be tested using the test case. The input may be in any form. Different inputs can be tried for the same test case and test the data entered is correct or not.
· Expected result
It describes exactly what constitutes a pass and a fail of the tested feature. Which is expected to get from the given input.
Test Execution and Test Log Preparation
After test case design, each and every test case is checked and actual result obtained. After getting actual result, with the expected column in the design stage is compared, if both the actual and expected are same, then the test is passed otherwise it will be treated as failed.
Now the test log is prepared, which consists of entire data that were recorded, whether the test failed or passed. It records each and every test case so that it will be useful at the time of revision.
Posted by Software Tester at 9:27 PM 0 comments
Tuesday, August 12, 2008
Types of Testing Techniques
White box testing examines the basic program structure and it derives the test data from the program logic, ensuring that all statements and conditions have been executed at least once.
White box tests verify that the software design is valid and also whether it was built according to the specified design.
Different methods used are:
Statement coverage – executes all statements at least once. (each and every line)
Decision coverage – executes each decision direction at least once.
Condition coverage –executes each and every condition in the program with all possible outcomes at least once.
Black Box Testing Technique
Black-box test technique treats the system as a "black-box", so it doesn't explicitly use knowledge of the internal structure. Black-box test design is usually described as focusing on testing functional requirements. Synonyms for black box include: Behavioral, Functional, Opaque-box, and Closed-box.
Black box testing is conducted on integrated, functional components whose design integrity has been verified through completion of traceable white box tests. Black box testing traces the requirements focusing on system externals. It validates that the software meets the requirements irrespective of the paths of execution taken to meet each requirements.
· Equivalence Partitioning
· Boundary Analysis
· Error Guessing
Equivalence Partitioning:
Equivalence partitioning is the process of methodically reducing the huge(infinite)set of possible test cases into a much smaller, but still equally effective set. An Equivalence class is a subset of data that is representative of a larger class. Equivalence partitioning is a technique for testing equivalence classes rather than undertaking exhaustive testing of each value of the larger class, when looking for equivalence partitions, think about ways to group similar inputs, similar outputs, and similar operations of the software. These groups are the equivalence partitions.
For example
A program that edits credit limits within a given range ($20,000-$50,000) would have three equivalence classes:
Less than $20,000(invalid)
Between $20,000 and $50,000 (valid)
Greater than $50,000(invalid)
Boundary value analysis:
If one can safely and confidently walk along the edge of a cliff without falling off, he can almost certainly walk in the middle of a field. If software can operate on the edge of its capabilities, it will almost certainly operate well under normal conditions.
This technique consist of developing test cases and data that focus on the input and output boundaries of a given function. In same credit limit example, boundary analysis would test:
Low boundary plus or minus one ($19,999 and $20,001)
On the boundary ($20,000 and $50,000)
Upper boundary plus or minus one ($49,999 and $50,001)
Error Guessing
This is based on the theory that test cases can be developed based upon the intuition and experience of the Test-Engineer.
Example: In the example of date, where one of the inputs is the date, a test may try February 29, 2000 or 9.9.99
Incremental testing
Incremental testing is a disciplined method of testing the interfaces between unit-tested programs as well as between system components. It involves adding unit-tested programs to a given module or component one by one, and testing each result and combination.
There are two types of incremental testing:
Top-down: - This begins testing from top of the module hierarchy and work down to the bottom using interim stubs to simulate lower interfacing modules or programs. Modules are added in descending hierarchical order.
Bottom-up: - This begins testing from the bottom of the hierarchy and works up to the top. Modules are added in ascending hierarchical order. Bottom-up testing requires the development of driver modules, which provide the test input, call the module or program being tested, and display test output.
There are procedures and constraints associated with each of these methods, although bottom-up testing is often thought to be easier to use. Drivers are often easier to create than stubs, and can serve multiple purposes. Output is also often easier to examine in bottom-up testing, as the output always comes from the module directly above the module under test.
Posted by Software Tester at 9:09 PM 0 comments
Testing Levels
· Unit Testing
· Integration Testing
· System Testing
· Performance / Stress Test
· Regression Test
· Quality Assurance Test
· User Acceptance Test and Installation Test
Testing each module individually is called Unit Testing. This follows a White-Box testing. In some organizations, a peer review panel performs the design and/or code inspections. Unit or component tests usually involve some combination of structural and functional tests by programmers in their own systems. Component tests often require building some kind of supporting framework that allows components to execute.
· All-at-once
· Bottom-up
· Top-down
The all-at-once method provides a useful solution for simple integration problems, involving a small program possibly using a few previously tested modules.
Bottom-up testing involves individual testing of each module using a driver routine that calls the module and provides it with needed resources. Bottom-up testing often works well in less structured shops because there is less dependency on availability of other resources to accomplish the test. It is a more intuitive approach to testing that also usually finds errors in critical routines earlier than the top-down method. However, in a new system many modules must be integrated to produce system-level behavior, thus interface errors surface late in the process.
Top-down testing fits a prototyping environment that establishes an initial skeleton that fills individual modules that is completed. The method lends itself to more structured organizations that plan out the entire test process. Although interface errors are found earlier, errors in critical low-level modules can be found later than you would like.
The system test phase begins once modules are integrated enough to perform tests in a whole system environment. System testing can occur in parallel with integration test, especially with the top-down method.
Performance / Stress Testing
Regression Testing
Quality Assurance Testing
Posted by Software Tester at 9:04 PM 0 comments
Types of Software Testing
Static testing refers to testing something that’s not running. It is examining and reviewing it. The specification is a document and not an executing program, so it’s considered as static. It’s also something that was created using written or graphical documents or a combination of both.
· Pretend to be the customer.
· Research existing Standards and Guidelines.
· Review and Test similar software.
· Specification Attributes checklist.
· Specification terminology checklist.
Dynamic Testing
· Structural (usually called "white box") testing.
· Functional ("black box") testing.
Structural testing or White box testing
Structural tests verify the structure of the software itself and require complete access to the source code. This is known as ‘white box’ testing because you see into the internal workings of the code.
White-box tests make sure that the software structure itself contributes to proper and efficient program execution. Complicated loop structures, common data areas, 100,000 lines of spaghetti code and nests of ifs are evil. Well-designed control structures, sub-routines and reusable modular programs are good.
White-box testing strength is also its weakness. The code needs to be examined by highly skilled technicians. That means that tools and skills are highly specialized to the particular language and environment. Also, large or distributed system execution goes beyond one program, so a correct procedure might call another program that provides bad data. In large systems, it is the execution path as defined by the program calls, their input and output and the structure of common files that is important. This gets into a hybrid kind of testing that is often employed in intermediate or integration stages of testing.
Functional or Black Box Testing
Posted by Software Tester at 8:54 PM 0 comments
Monday, August 11, 2008
Configuration Management
Configuration management involves the development and application of procedures and standards to manage an evolving software product. This can be seen as part of a more general quality management process. When released to CM, software systems are sometimes called baselines, as they are a starting point for further development. The best bet in this situation is for the testers to go through the process of reporting whatever bugs or blocking-type problems initially show up, with the focus being on critical bugs. Since this type of problem can severely affect schedules, and indicates deeper problems in the software development process (such as insufficient unit testing or insufficient integration testing, poor design, improper build or release procedures, etc.) managers should be notified, and provided with some documentation as evidence of the problem.
· Version control.
· Changes made in the project.
Version Control and Release management
Version is an instance of system, which is functionally distinct in some way from other system instances. It is nothing but the updated or added features of the previous versions of software. It has to be planned as to when the new system version is to be produced and it has to be ensured that version management procedures and tools are properly applied.
Changes made in the project
This is one of most useful way of configuring the system. All changes will have to be maintained that were made to the previous versions of the software. This is more important when the system fails or not meeting the requirements. By making note of it one can get the original functionality. This can include documents, data, or simulation.
Configuration Management Planning
Ø the types of documents to be managed
Ø document-naming scheme
Ø who takes responsibility for the CM procedures and creation of baselines
Ø polices for change control and version management.
This contains three important documents they are
· Change management items.
· Change request documents.
· Change control board. (CCB)
Change management
A group, who decide, whether or not they are cost-effective from a strategic, organizational and technical viewpoint, should review the changes. This group is sometimes called a change control board and includes members from project team.
Posted by Software Tester at 5:42 AM 0 comments
Risk Management
Risk Management Processes
Risk Management Planning
Used to decide how to approach and plan the risk management activities for a project.
Risk Identification
Determining which risks might affect the project and documenting their characteristics
Input includes: The risk management plan is used as input to this process
Risk Analysis
A qualitative analysis of risks and conditions is done to prioritize their affects on project objectives.
Risk Monitoring and Control
Used to monitor risks, identify new risks, execute risk reduction plans, and evaluate their effectiveness throughout the project life cycle.
Expected Monetary Value (EMV)
· A Risk Quantification Tool
· EMV is the product of the risk event probability and the risk event value
· Risk Event Probability: An estimate of the probability that a given risk event will occur
Decision Trees
A diagram that depicts key interactions among decisions and associated chance events as understood by the decision maker. Can be used in conjunction with EMV since risk events can occur individually or in groups and in parallel or in sequence.
Posted by Software Tester at 5:38 AM 0 comments
Quality Management
Definition of Quality:
Quality is the totality of features and characteristics of a product or service that bare on its ability to satisfy stated or implied needs.
Or
Quality is defined as meeting the customer’s requirement for the first time and for every time. This is much more that absence of defects which allows us to meet the requirements.
Some goals of quality programs include:
· Fitness for use. (Is the product or service capable of being used?)
· Fitness for purpose. (Does the product or service meet its intended purpose?)
· Customer satisfaction. (Does the product or service meet the customer's expectations?)
Quality Management Processes
Quality Planning:
The process of identifying which quality standards is relevant to the project and determining how to satisfy them.
Input includes: Quality policy, scope statement, product description, standards and regulations, and other process Output.
Methods used: benefit / cost analysis, benchmarking, flowcharting, and design of experiments.
Output includes: Quality Management Plan, operational definitions, checklists, and Input to other processes.
Quality Assurance
The process of evaluating overall projects performance on a regular basis to provide confidence that the project will satisfy the relevant quality standards.
Input includes: Quality Management Plan, results of quality control measurements, and operational definitions.
Methods used: quality planning tools and techniques and quality audits.
Output includes: quality improvement.
Input includes: work results, Quality Management Plan, operational definitions, and checklists.
Methods used include: inspection, control charts, pareto charts, statistical sampling, flowcharting, and trend analysis.
Output includes: quality improvements, acceptance decisions, rework, completed checklists, and process adjustments.
Quality Policy
The overall quality intentions and direction of an organization as regards quality, as formally expressed by top management
Total Quality Management (TQM)
A common approach to implementing a quality improvement program within an organization
Quality Concepts
· Zero Defects
· The Customer is the Next Person in the Process
· Do the Right Thing Right the First Time (DTRTRTFT)
· Continuous Improvement Process (CIP) (From Japanese word, Kaizen)
Tools of Quality Management
Problem Identification Tools :
1. Ranks defects in order of frequency of occurrence to depict 100% of the defects. (Displayed as a histogram)
2. Defects with most frequent occurrence should be targeted for corrective action.
3. 80-20 rule: 80% of problems are found in 20% of the work.
4. Does not account for severity of the defects
Cause and Effect Diagrams (fishbone diagrams or Ishikawa diagrams)
1. Analyzes the Input to a process to identify the causes of errors.
2. Generally consists of 8 major Input to a quality process to permit the characterization of each input.
Histograms
1. Shows frequency of occurrence of items within a range of activity.
2. Can be used to organize data collected for measurements done on a product or process.
Scatter diagrams
1. Used to determine the relationship between two or more pieces of corresponding data.
2. The data are plotted on an "X-Y" chart to determine correlation (highly positive, positive, no correlation, negative, and highly negative)
Problem Analysis Tools
1. Graphs
2. Check sheets (tic sheets) and check lists
3. Flowcharts
Posted by Software Tester at 5:21 AM 0 comments
Project Management
Project management activities includes
· Project planning.
· Project scheduling.
· Iterative Code/Test/Release Phases
· Production Phase
· Post Mortem
Project planning
This is the most time-consuming project management activity. It is a continuous activity from initial concept through to system delivery. Project Plan must be regularly updated as new information becomes available. With out proper plan, the development of the project will cause errors or it may lead to increase the cost, which is higher than the schedule cost. Review.
Project scheduling
This activity involves splitting project into tasks and estimate time and resources required to complete each task. Organize tasks concurrently to make optional use of workforce. Minimize task dependencies to avoid delays caused by one task waiting for another to complete. Project Manager has to take into consideration various aspects like scheduling, estimating manpower resources, so that the cost of developing a solution is within the limits. Project Manager also has to allow for contingency in planning.
Iterative Code/Test/Release Phases
After the planning and design phases, the client and development team has to agree on the feature set and the timeframe in which the product will be delivered. This includes iterative releases of the product as to let the client see fully implemented functionality early and to allow the developers to discover performance and architectural issues early in the development. Each iterative release is treated as if the product were going to production. Full testing and user acceptance is performed for each iterative release. Experience shows that one should space iterations at least 2 – 3 months a part. If iterations are closer than that, more time will be spent on convergence and the project timeframe expands. During this phase, code reviews must be done weekly to ensure that the developers are delivering to specification and all source code is put under source control. Also, full installation routines are to be used for each iterative release, as it would be done in production.
Deliverables
· Triage
· Weekly Status with Project Plan and Budget Analysis
· Risk Assessment
· System Documentation
· User Documentation (if needed)
· Test Signoff for each iteration
· Customer Signoff for each iteration
Production Phase
Once all iterations are complete, the final product is presented to the client for a final signoff. Since the client has been involved in all iterations, this phase should go very smoothly.
Deliverables
· Final Test Signoff
· Final Customer Signoff
Post Mortem Phase
The post mortem phase allows to step back and review the things that went well and the things that need improvement. Post mortem reviews cover processes that need adjustment, highlight the most effective processes and provide action items that will improve future projects.
To conduct a post mortem review, announce the meeting at least a week in advance so that everyone has time to reflect on the project issues they faced. Everyone has to be asked to come to the meeting with the following:
Items that were done well during the project
Items that were done poorly during the project
Suggestions for future improvements
Posted by Software Tester at 5:17 AM 0 comments
Software Testing Terms and Definitions
· Verification and validation
· Project Management
· Quality Management
· Risk Management
· Configuration Management
· Cost ManagementCompatibility Management
§ Verification & validation
Verification is the process confirming that software meets its specifications.
Validation is the process confirming that it meets the user’s requirements.
Verification can be conducted through Reviews. Quality reviews provides visibility into the development process throughout the software development life cycle, and help teams determine whether to continue development activity at various checkpoints or milestones in the process. They are conducted to identify defects in a product early in the life cycle.
Types of Reviews
· In-process Reviews :-
They look at the product during a specific time period of life cycle, such as during the design activity. They are usually limited to a segment of a project, with the goal of identifying defects as work progresses, rather than at the close of a phase or even later, when they are more costly to correct.
· Decision-point or phase-end Reviews: -
This type of review is helpful in determining whether to continue with planed activities or not. They are held at the end of each phase.
· Post implementation Reviews: -
These reviews are held after implementation is complete to audit the process based on actual results. Post-implementation reviews are also know as “ Postmortems”, and are held to assess the success of the overall process after release and identify any opportunities for process improvements.
Classes of Reviews
· Informal or Peer Review: -
In this type of review generally a one-to one meeting between the author of a work product and a peer, initiated as a request for input regarding a particular artifact or problem. There is no agenda, and results are not formally reported. These reviews occur as need-based through each phase of a project.
· Semiformal or Walkthrough Review: -
The author of the material being reviewed facilitates this. The participants are led through the material in one of the two formats: the presentation is made without interruptions and comments are made at the end, or comments are made throughout. Possible solutions for uncovered defects are not discussed during the review.
· Formal or Inspection Review: -
An inspection is more formalized than a 'walkthrough', typically with 3-8 people including a moderator, reader, and a recorder to take notes. The subject of the inspection is typically a document such as a requirements spec or a test plan, and the purpose is to find problems and see what's missing, not to fix anything. Attendees should prepare for this type of meeting by reading thru the document; most problems will be found during this preparation. The result of the inspection meeting should be a written report. Thorough preparation for inspections is difficult, painstaking work, but is one of the most cost effective methods of ensuring quality.
Three rules should be followed for all reviews:
The product is reviewed, not the producer.
Defects and issues are identified, not corrected.
All members of the reviewing team are responsible for the results of the review.
Posted by Software Tester at 5:11 AM 0 comments
Software Development Lifecycle Models
There are many different methods that can be used for developing software, and no model is necessarily the best for a particular project. There are four frequently used models:
· Big –Bang Model
· Waterfall Model
· Prototype Model
· Spiral Model
Bin – Bang Model
The Big- Bang Model is the one in which we put huge amount of matter (people or money) is put together, a lot of energy is expended – often violently – and out comes the perfect software product or it doesn’t.
The beauty of this model is that it’s simple. There is little planning, scheduling, or
Formal development process. All the effort is spent developing the software and writing the code. It’s and ideal process if the product requirements aren’t well understood and the final release date is flexible. It’s also important to have flexible customers, too, because they won’t know what they’re getting until the very end.
Waterfall Model
A project using waterfall model moves down a series of steps starting from an initial idea to a final product. At the end of each step, the project team holds a review to determine if they’re ready to move to the next step. If the project isn’t ready to progress, it stays at that level until it’s ready. Each phase requires well-defined information, utilizes well-defined process, and results in well-defined outputs. Resources are required to complete the process in each phase and each phase is accomplished through the application of explicit methods, tools and techniques.
§ There’s a large emphasis on specifying what the product will be.
§ The steps are discrete; there’s no overlap.
§ There’s no way to back up. As soon as you’re on a step, you need to complete the tasks for that step and then move on.
Prototype model
The Prototyping model, also known as the Evolutionary model, came into SDLC because of certain failures in the first version of application software. A failure in the first version of an application inevitably leads to need for redoing it. To avoid failure of SDLC, the concept of Prototyping is used. The basic idea of Prototyping is that instead of fixing requirements before the design and coding can begin, a prototype is to understand the requirements. The prototype is built using known requirements. By viewing or using the prototype, the user can actually feel how the system will work.
The prototyping model has been defined as:
“A model whose stages consist of expanding increments of an operational software with the direction of evolution being determined by operational experience.”
Prototyping Process
The following activities are carried out in the prototyping process:
· The developer and die user work together to define the specifications of the critical parts of the system.
· The developer constructs a working model of the system.
· The resulting prototype is a partial representation of the system.
· The prototype is demonstrated to the user.
· The user identifies problems and redefines the requirements.
· The designer uses the validated requirements as a basis for designing the actual or production software
Prototyping is used in the following situations:
· When an earlier version of the system does not exist.
· When the user's needs are not clearly definable/identifiable.
· When the user is unable to state his/her requirements.
· When user interfaces are an important part of the system being developed.Spiral model
The traditional software process models don't deal with the risks that may be faced during project development. One of the major causes of project failure in the past has been negligence of project risks. Due to this, nobody was prepared when something unforeseen happened. Barry Boehm recognized this and tried to incorporate the factor, project risk, into a life cycle model. The result is the Spiral model, which was first presented in 1986. The new model aims at incorporating the strengths and avoiding the different of the other models by shifting the management emphasis to risk evaluation and resolution.
Each phase in the spiral model is split into four sectors of major activities.
These activities are as follows:
Objective setting:
This activity involves specifying the project and process objectives in terms of their functionality and performance.
Risk analysis:
It involves identifying and analyzing alternative solutions. It also involves identifying the risks that may be faced during project development.
Engineering:
This activity involves the actual construction of the system.
Customer evaluation:
During this phase, the customer evaluates the product for any errors and modifications.
Posted by Software Tester at 5:06 AM 0 comments
Software Development Life Cycle (SDLC)
· Determine Verification Approach.
· Determine Adequacy of Requirements.
· Generate functional test data.
· Determine consistency of design with requirements.
2. Design phase
In this phase we are going to design entire project into two
· High –Level Design or System Design.
· Low –Level Design or Detailed Design.
High – level Design gives the overall System Design in terms of Functional Architecture and Database design. This is very useful for the developers to understand the flow of the system. In this phase design team, review team (testers) and customers plays a major role. For this the entry criteria are the requirement document that is SRS. And the exit criteria will be HLD, projects standards, the functional design documents, and the database design document.
Low – Level Design (LLD)
During the detailed phase, the view of the application developed during the high level design is broken down into modules and programs. Logic design is done for every program and then documented as program specifications. For every program, a unit test plan is created.
The entry criteria for this will be the HLD document. And the exit criteria will the program specification and unit test plan (LLD).
3. Development Phase
This is the phase where actually coding starts. After the preparation of HLD and LLD, the developers know what is their role and according to the specifications they develop the project. This stage produces the source code, executables, and database. The output of this phase is the subject to subsequent testing and validation.
And we should also verify these activities:
· Determine adequacy of implementation.
· Generate structural and functional test data for programs.
The inputs for this phase are the physical database design document, project standards, program specification, unit test plan, program skeletons, and utilities tools. The output will be test data, source data, executables, and code reviews.
4. Testing phase
This phase is intended to find defects that can be exposed only by testing the entire system. This can be done by Static Testing or Dynamic Testing. Static testing means testing the product, which is not executing, we do it by examining and conducting the reviews. Dynamic testing is what you would normally think of testing. We test the executing part of the project.
A series of different tests are done to verify that all system elements have been properly integrated and the system performs all its functions.
Note that the system test planning can occur before coding is completed. Indeed, it is often done in parallel with coding. The input for this is requirements specification document, and the output are the system test plan and test result.
5. Implementation phase or the Acceptance phase
This phase includes 2 basic tasks:
· Getting the software accepted
· Installing the software at the customer site.
Acceptance consist of formal testing conducted by the customer according to the
Acceptance test plan prepared earlier and analysis of the test results to determine whether the system satisfies its acceptance criteria. When the result of the analysis satisfies the acceptance criteria, the user accepts the software.
6. Maintenance phase
This phase is for all modifications, which is not meeting the customer requirements or any thing to append to the present system. All types of corrections for the project or product take place in this phase. The cost of risk will be very high in this phase. This is the last phase of software development life cycle. The input to this will be project to be corrected and the output will be modified version of the project.
Posted by Software Tester at 4:51 AM 0 comments