PostGreSQL Limitations and solutions #2

http://searchopensource.techtarget.com/originalContent/0,289142,sid39_gci1172668,00.html

PostGreSQL Windows Installerhttp://pgfoundry.org/projects/pginstaller/

From: http://sitestree.com/?p=4713
Categories:2
Tags:
Post Data:2006-09-24 22:18:42

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Comparison: FireBird, MySQL, PostGreSQL #2

PosTGRESQL Provides better query responsetime than firebird and MySql. Firebird stands somewhere in the middle. A little longer response time than PostGreSql.
http://benchw.sourceforge.net/benchw_results_open3.html

Several PostGreSQL versions are compared at:
http://benchw.sourceforge.net/benchw_results_postgres_history.html

Several MySQL versions are compared at:
http://benchw.sourceforge.net/benchw_results_mysql_indexes.html


A good comparison among these databases will be found at:http://www.geocities.com/mailsoftware42/db/



Mentionable comments

PostGreSQL Supports 400+GB DB.One source: As for each connection it forks new thread, it is bit slower than MySql: Another source: postgresql is faster than mysql. Seems the truth is: for single connection postgresql can be faster but for multiple connections mysql is faster. just an information, not sure yet.

New PostGre Features

http://www.postgresql.org/docs/whatsnewSome mentionable comments: Supports SMP and almost linearly improves performance witth multiprocessor system.

Supports roles, in/out parameters/two phase commit/table partitioning shared row locking(firebird record level locking), 64 bit shared memory hence supports two terabytes of ram

PostGreSQL capability4.4) What is the maximum size for a row, a table, and a database?These are the limits:
Maximum size for a database? unlimited (32 TB databases exist)
Maximum size for a table? 32 TB
Maximum size for a row? 400 GB
Maximum size for a field? 1 GB
Maximum number of rows in a table? unlimited
Maximum number of columns in a table? 250-1600 depending on column types
Maximum number of indexes on a table? unlimited
One limitation is that indexes can not be created on columns longer than about 2,000 characters. Fortunately, such indexes are rarely needed. Uniqueness is best guaranteed by a function index of an MD5 hash of the long column, and full text indexing allows for searching of words within the column.Source:http://www.postgresql.org/docs/faqs.FAQ.html4.20) What replication solutions are available? Though “replication” is a single term, there are several technologies for doing replication, with advantages and disadvantages for each.
Master/slave replication allows a single master to receive read/write queries, while slaves can only accept read/SELECT queries. The most popular freely available master-slave PostgreSQL replication solution is Slony-I.
Multi-master replication allows read/write queries to be sent to multiple replicated computers. This capability also has a severe impact on performance due to the need to synchronize changes between servers. PGCluster is the most popular such solution freely available for PostgreSQL.
There are also commercial and hardware-based replication solutions available supporting a variety of replication models.

Important Notes

Server Configuration A number of postgresql.conf settings affect performance. For more details, see Administration Guide/Server Run-time Environment/Run-time Configuration for a full listing, and for commentary see http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html and http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
Hardware Selection
The effect of hardware on performance is detailed in http://www.powerpostgresql.com/PerfList/ and http://momjian.us/main/writings/pgsql/hw_performance/index.html.

Wikipedia link for postgressql-http://en.wikipedia.org/wiki/PostgreSQL

EnterpriseDB kind of commercial but cheap based on postgressql
From: http://sitestree.com/?p=4712
Categories:2
Tags:
Post Data:2010-01-24 02:30:40

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Firebird as an Alternative to Oracle/MS SQL Server/Interbase/Access #2

Note:Firebird can be a very good alternatives to Oracle/MSSql Server/Interbase. First of all, it is free. It can be good enough for upto medium level of enterprises. Supported database size is more than 11 terabytes. For a single table 20GB. It also implements ACID properties well enough. Implements two phase commit and in record level locking and hence can provide more concurrency and connection.It also implements MGA to provide recovery that also Oracle/MSSQL server imitated from interbase/firebird.A well designed database and a well designed network using Firebird will be strong enough to support a mid – size company. Also, if the database is designed well and used the clean normalization, and used clean indexing, the query will be faster enough.Linux platform is more suitable than windows platform for Firebird.In 32 bit environment, Firebird server version support 2 GB of ram and hence around 450 concurrent connection. This is due to memory addressing in 32 environment, required cache size and for similar reasons.In Linux 64 bit versions Firebird can provide better service and more concurrent connections. Firebird is not stable and reliable enough to be used with windows platform in 64 bit environment. Though, Firebird project, hopes to work on this.Firebird, has a dedicated community to support the product. They provide supports through a discussion forum. (May be .. with some other ways). Firebird team also hopes to continue the project to fullfill future demand.Being opensource project the database system seems will be strong enough and well designed and well featured to meet customer demand.For details please check:A detail discussion can be found here.http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_enterprise_firebirdNote:Firebird can be a good option for a Midsize company in Bangladesh From: http://sitestree.com/?p=4710
Categories:2
Tags:
Post Data:2007-09-09 08:56:56

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Overview on .Net Solution Architecture #20

Just an overview (Will be updated …).

  • Microsoft Solution Framework is a combination/mix of both Waterfall model and Spiral model. It includes waterfall models milestone based planning and resulting predictability with the spiral model’s benefits of feedback and creativity
  • Roles in the MSF Team Model:
    • Product Management (Deals with customers, collects customer requirements, ensures requirements are met, plans project communications, and performs related duties)
    • Project Management: Develop processes and deliver solutions
    • Development: Develop the solution
    • Testing:
    • Release Management: Responsible for deployment
    • User Experience: Analyzes performance needs, supports issues of the users
    • Project Sponsor:
    • Customer
    • End user
    • Operations
  • Gathering Information: Information Categories: Business, Application, Operations, Technology
  • Information Gathering Techniques: Shadowing (Observe the operation, ask questions (how do interruptions affect users?) and collect information), Interviewing, Focus Groups, Surveys, User instruction, Prototyping
  • Sources of information:Artifacts (like documents), Systems (set of processes performing an action), People (responsible for different project related tasks)
  • Analyzing Information Step: Analyze collected information and create use cases and use case diagrams. Use cases and use scenarios will identify the total/complete system clearly, all processes involved in the system, identify gaps in the information collection, establish connections between business needs and user requirements. Collecting information and Analyzing can be iterative processes
  • A use case diagram will contain information like: Requirement ID, Requirement description, Priority, Data Source, current functionalities, questions from this item.
  • Several other documents may be created such as: Actors Catalog (For each responsibilities in the system list the actor’s/responsible employee’s name, and source of information), Business Rules Catalog (may include short title, description of the rule, source of the business rule, reference to the corresponding use case diagram, functionalities related to the business rule)
  • UML notations may be used to create the diagrams
  • Envisioning Phase: The team, the customer, and the sponsor define the high level business requirements and overall goals of a project. Identify what the project involves, what the customers want to achieve with the project, what is the business need, what must be developed to solve/address the business needs. Make all involved people aware of the project goals and requirements clearly. Form project team
  • Output from the Envisioning Phase: Vision/Scope document, Project structure document, Risk assessment document, list of testable features, preliminary requirements and architecture, a GUI storyboard.
  • Vision/Scope Document: Problem Statement, Vision Statement, User profiles, Scope of the project, Solution concept, Project Goals (both business and design), Critical success factors, Initial schedule
  • Project Structure Document: components of the project structure (team and structure, project estimates, project schedules)
  • Contents of the project structure document: Team and customer roles and responsibilities, communication decisions, Logistical decisions, Change management decisions, Progress assessment decisions
  • Next three steps: Conceptual Design->Logical Design->Physical Design
  • Conceptual Design: Define the problem from the perspective of the user and the business/usage scenarios
  • Logical Design: Define the problem from the perspective of the project team/cooperative services
  • Physical: Define the problem from the perspective of the developers
  • Goals of Conceptual Design: Understand the business problem to be solved, requirements of the business, and target future state of the business.
  • Steps in Conceptual Design: Research, Analysis, Optimization
  • Build Conceptual Design: analyze information, Restate requirements, categorize requirements, refine use case diagrams, select an application architecture (client/server, layered, Stateless, Cache, Layered-client-cache-stateless-cash-server),
  • Logical Design: List candidate tools and technologies, identify business objects and services, identify important attributes and key relationships, optimize logical design (refine, validate)
  • Outputs of Logical Design: logical object model, high level user interface design, logical data model
  • logical object model – identify all the relevant objects/entities [will be pretty similar to identifying entities to create data model and E-R Diagram]
  • In logical design, identifying services are also important
  • Physical Design: Defines the parts of the solution, how they will be developed, how the interaction will happen.
  • Physical Design: Components, User Interfaces, and Physical Database. Scope: Coding, deployment
  • At the end of logical design UML diagrams such as Class Diagram, Sequence Diagrams, Activity diagrams, Component diagrams are available. In physical design refinements of these diagrams occur.
  • Physical Design: Define programming model, Specify component interfaces and interactions, Design Physical UI Model, Design Physical Database model
  • Designing the Presentation Layer: Functions of the User Interface Components: Acquire data from users, capture events from the users, restrict the types of input a user can enter, perform data entry validation, perform simple mapping and transformation of the user provided information, perform formatting of values
  • Well designed interface: Intuitive design, Optimum screen space utilization, appearance, easy of navigation, controlled navigation, populating default value, input validation, menus, toolbars and help, efficient event handling
  • Designing the Presentation Layer: Create an initial user interface either by hand or using Visual Basic forms, provide user assistance, use tooltips if appropriate, display status, use wizards if appropriate, provide accessibility aids for disabled people
  • Types of user interfaces: Windows based, web-based, mobile device based, documentation based
  • Design Data Layer: Typically database objects are modeled in an entity-relationship diagram.
  • Data Model Types: Flat file, Hierarchical, Relational, Object oriented
  • Optimize data access: Minimize roundtrip requests, minimize returned resultset size, reduce concurrency, find the tradeoffs between managing data on the client or on the server
  • Optimize the database: Index data (clustered, non-clustered), Partition data (why and how vertical and horizontal partitioning), Normalize data
  • Sometimes Denormalization of database tables is also required for better performance.
  • Implement data validation: Check for Data Integrity (Domain, Entity, Referential), Validate Data (Range check, Data format, data type check)
  • Think about client side/server side data check. Many times both are required for optimum performance and integrity.
  • Design Security Specifications: Common Types of Security Vulnerabilities: Weak passwords, Misconfigured software, Social engineering, Internet connections (through unsecured ports, if firewalls are not configured appropriately), Unencrypted data transfer, Buffer overrun, SQL Injection, Secrets in code.
  • Principles for creating Security Strategies: Rely on tested and proven security systems than creating your own, use your own only after expert auditing and reviewed by security organizations, never trust external input, Assume that external systems are not secure, use principle of least privilege, reduce components and data availability, default to a secure mode, follow STRIDE (spoofing identity, tampering, repudiation, information disclosure, denial of service, and elevation of privilege) principles
  • How to create a security model: Arrange for a brainstorming meeting, list all possible threats, apply the STRIDE security categories, conduct research, rank the risk of each threat
  • Security mitigation techniques: Authentication and authorization, Secure communication, Quality of Service, Throttling, Auditing, filtering, least privilege
  • STRIDE mitigation techniques: Authentication, protect secrets, audit trails, do not store secrets, privacy protocols, authorization, hashes, digital signatures, time stamps, filtering, throttling, quality of service, run with least privilege
  • .Net security features: type safety verification, code signing (Ensure authenticity, ensure integrity) – digital certificates and signatures, code access security, role based security (make use of windows users and permissions) , saving data in isolated storage
  • ASP.net authentication: Forms authentication, Passport authentication, Windows authentication
  • Web-services security: transport level, application level, message level

From: http://sitestree.com/?p=4916
Categories:20
Tags:
Post Data:2009-07-17 16:41:21

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Software Testing Resources #22

Software Testing Resources. Read the resources as provided in this short-note. Also, go through the short-notes in the further reading section below.

From: http://sitestree.com/?p=5279
Categories:22
Tags:
Post Data:2006-07-30 13:41:52

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

How to find bugs fast in a software tester role? #22

The mission of the position TESTER may vary based on the industry, company, project, or the personalities of the team.When you work as a tester, be clear about your mission [mission of your position]. If you are not sure…ask the management – what is the mission of the position – what are your responsibilities. You may have to check these time to time and align your activities with the mission of the position.

Example Missions for a Software Tester Role

  • Find important bugs fast
  • Assess the general quality of the product
  • Certify that the product meets a particular standard.

How to Find important bugs fast

  • First, test things that are changed recently than that are the same
  • Test core functions before the contributing functions
  • Test capabilities first, then go for reliability
  • Test common situations before the esoteric situations
  • Test common threats before the rare threats
  • Test high impact problems before the low impact problems
  • Test the most wanted areas/features before the features/areas that are not requested

From: http://sitestree.com/?p=5266
Categories:22
Tags:
Post Data:2009-02-23 19:16:31

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Developer testing: Some Talk #22

Developer testing: Some Talk

  • Thinking about test cases before writing the code may become handy sometimes. If you think before then hopefully, you will also write code that will avoid those errors/test cases. The thinking time is almost equal.
  • Check for both the control flow and the data flow of your code.
  • Check that each of your statements work right.
  • Check that you do not have errors in your test data.
  • Keep test records and how did you solve errors.
  • Learn from your mistakes, what kinds of mistakes you usually make.

From: http://sitestree.com/?p=4829
Categories:22
Tags:
Post Data:2007-04-04 11:08:59

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Should developers test software? #22

Not really my opinion; however, as found in different articles and opinions. You may have a business case to utilize developers for software testing; Also, your developers may end up being a good tester as well, and happily willing to do the software testing work.

Should developers test software?

Software testing is testers’ work not software developers’ work. Usually big and reputed companies keep testers whose sole purpose is testing where development is for the developers. Software architectures/frameworks like Microsoft Solution Framework do not mix software development and testing to the single/same role. Though software testing is sometimes mixed with business analyst [may be also with project managers, architects] role as they some/many times need to ensure software acceptance/quality.

Another note here, Companies such as Microsoft prefers Software Developers with some additional skills in software testing/software quality assurance related positions.Software testing is not best suited to software development role for reasons as below (though it does not mean that software developers cannot and will not test software. Also, it is not the case that developers do not test; for a large % of cases, software developers also test software):

1. The goal of software testing is just the reverse of software development. The aim of the developers’ is to try to prevent errors and make sure the code runs but testers aim to find errors.
2. Testing can never proof absence of errors. So, the question is when the developers need to stop testing?
3. Testing by itself does not improve software quality.
4. Testing requires you to assume you will find errors. But developers usually after writing the code assume the code is working/(he wrote it right, he wanted to write it right, so it should be right, though it’s not practical/best thought).

5. Developers are usually biased that the software feature work, just after implementing it. Developers also know, how to use the software. What are very trivial for a software developer (how to use the software), may not be understood by others. Developers may end up using the softare in almost the right way and may miss some issues. This may not be right all the time; however, sometimes this will be the case6. Software developers may not deal with the end users all the time; may not understnad the usage pattern or knowledge/experience level of the end users. Also, may not always be aware, how the software will be used; if this is the case, it may lead to undiscovered issues.Another note here is, a software feature is written and it worked for the developer, does not mean that it will work. It needs to be tested separately to ensure that it works. Just because the code is written and it worked for some cases does not mean that it will work all the time and in all situations and use cases. If you want a good and reliable software, you need to invest the time and money, to identify use cases, and possible ways to interact/use that software or the software feature, then test and ensure that the software work to some acceptable (define what this means to you) extent.It may also be useful, if developers use a different time (not immediately after writing the software) to plan and test the software or the feature just got implemented. When taking time off from the code, the bias may be gone and the developer may end up testing like a user or with a test’s mindset. He may also discover the limitations of his or her code when taken some time away from the code.However, testing like Unit testing, component testing, integration testing are the developers work. Sometimes, regression testing and system testing are also required to be done by developers [ thought to be their responsibilities not testers ].

Unit Testing: Test separately a single complete class, a single routine, a small program

Component Testing: Involves testing of classes, packages, small programs separately from the complete system that are developed by multiple programmers.

Integration Testing: Involves testing two or more classes or packages, components, and subsystems that are developed by multiple programmers. It can be done on an ongoing basis, just when every new class is written, it can be tested with other classes as a whole and/or pairwise [if applicable].

Regression Testing: Execute the same set of tests that were executed before and no errors were found.

System Testing: Involves testing the software in it’s final state. Integrated with other software and/or with different hardware platforms. Tests for timing, security, performance and other issues that could not be tested at lower levels.

From: http://sitestree.com/?p=4822
Categories:22
Tags:
Post Data:2009-09-12 13:04:04

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Key Strategies in Software Debugging #22

Key Strategies in Software Debugging.

1. Understand the requirements well. Design the software well. Code well.
These will reduce the number of defects in your system.

2. Don’t use random guessing about defects. Use a systematic and scientific method to detect and fix bugs.

3. Identify the root cause of a defect. Understand the program and then try to solve

4. Set the compiler warning in it’s pickiest level. Solve all the issues as listed in the warning messages

5. Make wise use of debugging tools but use your brain in parallel.

Debugging? Is a process to find the cause of an error/issue/defect whereas testing is the process to find the error/defect in the first place.

Defects are opportunities for a good programmer. How? When you are a good programmer, you will code well.

Still if you have defects than something is missing somewhere, it will give you opportunities to learn many stuffs like:

1. Check: Did you understand the program/requirements?

2. Learn: what kinds of mistakes you make

3. Learn: how you solve problems4. How you fix defects
When you know your own patterns then there will be opportunities to improve yourself.

Bad ways to debug software:

1. Find defects by random guessing, by using print statements randomly.

2. Don’t try to understand the program just find the defect and fix

3. Use most obvious fix. You see the code does not work for 23 as input otherwise fine. So write a special case for 23

4. Debugging by superstition.


Finding a Defect

Scientific method of debugging

1. Stabilize the error through experiments. Be sure about the error and when it happens.

2. Gather the data through repeatable experiments that produces the defect

3. Form a hypothesis that states the cause of the error

4. Design experiments to prove or disprove the hypothesis.

5. Prove or disprove the hypothesis.

6. Repeat as needed

7. Fix the defect

8. Test the fix

9. Look for similar errors in your code.

Checklist for finding defects:

Reproduce the same error in several different ways.

Brainstorm for possible hypotheses

Use a notepad to list the things to try

Find the suspicious region of your code

Check the error-prone classes and routines

Check recently modified/added codes

Check for common defects

Check region by region. Expand your region after one region is covered

Talk to someone about the problem

Relax a bit. It works great sometimes.

Reference: Code Complete, 2nd Edition by Steve McConnel

From: http://sitestree.com/?p=4780
Categories:22
Tags:
Post Data:2006-11-06 07:32:26

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

.Net Remoting/ Windows Services #24

From: http://sitestree.com/?p=5230
Categories:24
Tags:
Post Data:2012-10-07 01:02:12

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>