برای فهم حقوق تست نرمافزار در ایران، یک عددِ بیزمینه کافی نیست. باید بدانیم عدد مربوط به چه تاریخ، شهر، Role، سطح، نوع قرارداد و جامعهای است؛ خالص است یا ناخالص؛ ثابت است یا شامل پرداخت متغیر؛ دریافتی واقعی است یا درخواست سال آینده؛ و با چند پاسخ و چه درجهٔ اطمینانی برآورد شده است. بدون این فیلدها، «حقوق QA در ۱۴۰۵» بیشتر شبیه تیتر است تا شاهد مذاکره.
این راهنما یک QA Compensation Evidence Protocol میسازد: پرسش و تاریخ مبنا را ثبت میکند؛ دادهٔ بازار را با Source/Sample/Definition میخواند؛ Role/Level/Location/Contract را همتراز میکند؛ صدک و عدمقطعیت را درست تفسیر میکند؛ حقوق ثابت، متغیر و مزایا را به Offer Packet تبدیل میکند؛ Capability و Contribution را بدون اغراق مستند میسازد؛ و مذاکره، توافق، بازبینی و Correction را قابلپیگیری نگه میدارد. این صفحه پیشبینی قطعی درآمد، مشاورهٔ حقوقی/مالیاتی یا قیمتگذاری انسان نیست.
پاسخ کوتاه: حقوق تست نرمافزار در ایران ۱۴۰۵ چقدر است؟
یک نرخ واحد معتبر وجود ندارد. Snapshot عمومی جابویژن ۱۴۰۵ برای «تست نرمافزار» در تهران، صدکهای حقوق خالص درخواستی را برای Junior، Mid-Level و Senior منتشر کرده است؛ اینها دریافتی قطعی یا نرخ کل ایران نیستند. میانههای درخواستی آن Snapshot بهترتیب ۳۸، ۶۰ و ۷۴ میلیون تومان در ماهاند، اما کل گروه QA فقط ۵۳ شرکتکننده دارد و ضریب اطمینان بخشهای Junior، Mid و Senior بهترتیب قابلقبول، متوسط و پایین گزارش شده است. بنابراین ابتدا بازه و محدودیت را بخوانید، سپس با Offer و Context خود مقایسه کنید.
| سطح/تهران | P25 تا P75 درخواست ۱۴۰۵ | میانه درخواست | میانه دریافتی ۱۴۰۴ | ضریب اطمینان منبع |
|---|---|---|---|---|
| Junior | ۳۰ تا ۵۴ میلیون تومان | ۳۸ | ۲۸ | قابلقبول |
| Mid-Level | ۴۸ تا ۷۱ میلیون تومان | ۶۰ | ۳۹ | متوسط |
| Senior | ۶۵ تا ۸۵ میلیون تومان | ۷۴ | ۵۰ | پایین |
خوانش درست جدول: اعداد بالا خالص، ماهانه، شامل بخش ثابت و متغیر و مربوط به نمونهٔ تهراناند. «درخواست ۱۴۰۵» با Offer امضاشده یا دریافتی تحققیافته یکی نیست. P25–P75 وسط ۵۰٪ توزیع نمونه است، نه حداقل و حداکثر مجاز یا منصفانه. تاریخ بازیابی این بازبینی ۲۳ مرداد ۱۴۰۵ است؛ در بازار پرنوسان، همین تاریخ بخشی از عدد است.
مرز این مقاله با مسیر شغلی، مهارت و مصاحبه
مسیر شغلی QA مالک شاخهها و برنامهٔ ورود/رشد است. نقش مهندس QA مسئولیت، اختیار و Capability را تعریف میکند. Capability Portfolio آیندهٔ QA انتخاب سرمایهگذاری مهارتی زیر عدمقطعیت را پوشش میدهد. پورتفولیوی QA Artifact را به Evidence امن تبدیل میکند و مصاحبهٔ ساختاریافته QA برای سمت کارفرماست. این صفحه فقط مالک Data→Comparable→Compensation Range→Offer→Negotiation→Agreement→Review است.
عدد حقوق بدون As-of منقضی است
در هر یادداشت حقوق، حداقل `reference_period`، `retrieved_at` و `valid_until/review_trigger` را ثبت کنید. عددی که برای پایان ۱۴۰۴ جمع شده با درخواست ۱۴۰۵ یا پرداخت امروز یکی نیست. تغییر قیمتها، بودجهٔ شرکت، نوع قرارداد، عرضهٔ Role، وضعیت کسبوکار و حتی تعریف صفحهٔ منبع میتواند Comparability را بشکند. تاریخ را از تیتر یا URL حدس نزنید؛ داخل روش منبع را بخوانید.
CompensationQuestion question_id: QA-COMP-2026-08-01 decision: evaluate one fictional offer, not price a person as_of: 2026-08-14 Asia/Tehran market_period: source-specific; realized 1404 vs requested 1405 separated role/location/contract: explicit pay_basis: net or gross; monthly or annual; fixed or total cash review_trigger: source update, offer change, law/tax review, 30 days
منبع را پیش از عدد ممیزی کنید
| فیلد | پرسش | اگر غایب بود |
|---|---|---|
| Publisher/method | چه کسی، چگونه و چرا جمع کرده؟ | Claim را محدود کنید |
| Population/sample | چه کسانی واجد/پاسخدهندهاند؟ N؟ | Generalization ممنوع |
| Period | دریافتی کدام بازه یا انتظار کدام سال؟ | عدد منقضی/مبهم |
| Definition | خالص/ناخالص، ثابت/متغیر، ماهانه/سالانه؟ | مقایسه ممنوع |
| Segments | Role/Level/Location/industry/contract؟ | ترکیب ناهمگن |
| Distribution | صدکها یا فقط «میانگین»؟ | پراکندگی ناشناخته |
| Quality | Confidence، suppression، cleaning؟ | عدمقطعیت بالا |
جابویژن ۱۴۰۵ دقیقاً چه میگوید؟
گزارش حقوق و دستمزد جابویژن ۱۴۰۵ خود را حاصل نظرسنجی بیش از ۱۰۰ هزار نفر در حدود ۵۰۰ خانوادهٔ شغلی معرفی میکند. صفحهٔ گروه «تست نرمافزار» N=۵۳ و امتیاز رضایت شغلی ۳٫۵ از ۵ را نشان میدهد. صفحات تهران برای سه سطح، توزیع خالص دریافتی پایان ۱۴۰۴ و خالص درخواستی ۱۴۰۵ را با صدکهای ۱۰/۲۵/۵۰/۷۵/۹۰ و سهم پرداخت متغیر ارائه میکنند. این روش یک Snapshot خوداظهاری/درخواستی است؛ سرشماری کل تسترهای ایران یا ثبت حقوق همهٔ قراردادها نیست.
| سطح تهران | درخواست ۱۴۰۵: P10/P25/P50/P75/P90 | دریافتی ۱۴۰۴: P10/P25/P50/P75/P90 | رشد میانهٔ درخواستی | بخش متغیر |
|---|---|---|---|---|
| Junior | ۲۳ / ۳۰ / ۳۸ / ۵۴ / ۷۵ | ۱۶ / ۲۰ / ۲۸ / ۳۷ / ۴۹ | ۳۲٪ | ۵٪ |
| Mid-Level | ۳۹ / ۴۸ / ۶۰ / ۷۱ / ۸۷ | ۲۸ / ۳۴ / ۳۹ / ۵۱ / ۶۲ | ۵۴٪ | ۲٪ |
| Senior | ۵۵ / ۶۵ / ۷۴ / ۸۵ / ۱۰۸ | ۳۸ / ۴۴ / ۵۰ / ۵۸ / ۷۱ | ۴۹٪ | ۷٪ |
همهٔ اعداد جدول میلیون تومان در ماهاند و فقط بازنویسی دادهٔ همان صفحات هستند. درصد رشد، تغییر میانهٔ درخواست نسبت به دریافتی قبلی در نمونه است؛ افزایش تضمینشدهٔ هر فرد یا نرخ تورم نیست. سهم متغیر نیز میانگین/سهم گزارششدهٔ نمونه است و دربارهٔ احتمال پرداخت، سقف، شرط یا کیفیت Bonus یک Offer مشخص چیزی ثابت نمیکند.
ایرانتلنت ۱۴۰۵ را چگونه بخوانیم؟
صفحهٔ گزارش حقوق ایرانتلنت ۱۴۰۵ میگوید گزارش برای شاغلان تماموقت ایران تهیه شده، داده از خوداظهاری شاغلان و فهرست بینام شرکتها میآید، سپس پاکسازی و بر اساس گروه/رده طبقهبندی میشود. صفحهٔ عمومیِ حقوق Mid-Level تست نرمافزار ۱۴۰۵ برای تهران عدد ۶۰ میلیون تومان را نشان میدهد، اما همان صفحه آن را یکجا «میانگین» و جای دیگر «میانه» مینامد. تا وقتی Data dictionary یا توضیح رفع این ناسازگاری در دست نیست، مقدار را با Label مبهم ثبت کنید و آن را بیهوا با میانهٔ منبع دیگر ادغام نکنید.
SourceRecord source_id: IRANTALENT-QA-MID-1405 retrieved_at: 2026-08-14 population_claim: full-time workers in Iran; page segment Tehran/Mid collection: self-report + anonymized employer lists (publisher statement) published_value: 60 million toman/month label_issue: page uses both average and median action: retain ambiguity; do not pool as a clean median not_claimed: national QA rate, realized offer, causal skill premium
دو منبع همعدد، دو شاهد مستقل کامل نیستند
همعدد بودن میانهٔ درخواستی Mid جابویژن و مقدار منتشرشدهٔ ایرانتلنت به معنی «حقوق قطعی ۶۰» نیست. Population، sampling frame، سؤال، زمان، پاکسازی، definition و Label میتوانند متفاوت باشند و کاربران یکسانی هم ممکن است در چند پلتفرم پاسخ دهند. بهجای Average گرفتن از دو عدد، یک Source Comparison بسازید و فقط نقاط واقعاً همتعریف را کنار هم بگذارید.
SourceComparison construct: requested net monthly total cash for Tehran Mid-Level QA? source_A: JobVision; requested; P50=60; confidence=medium; QA N_total=53 source_B: IranTalent page; 60; label=mean/median inconsistent same: city label, level label, year label, monthly toman different_or_unknown: frame, exact N, weighting, cash definition, realized status decision: triangulation signal only; no pooled estimator expiry: next methodology/value update
میانه، میانگین و صدک را قاطی نکنید
راهنمای رسمی BLS دربارهٔ صدک حقوق، P50 را مرزی تعریف میکند که ۵۰٪ مشاهدات پایینتر و ۵۰٪ بالاتر آناند و هشدار میدهد Average گرفتن از صدکهای گروههای مختلف، توزیع مرکب را درست بازسازی نمیکند. راهنمای ONS برای تفسیر درآمد نیز Median را در توزیعهای کج کمتر متاثر از چند مقدار بسیار بالا میداند. این منابع روش آماری را روشن میکنند؛ دادهٔ حقوق ایران یا QA نیستند.
| شاخص | معنا | کاربرد | سوءبرداشت |
|---|---|---|---|
| Mean | جمع مقادیر تقسیم بر N | وقتی تعریف/وزن روشن است | «فرد معمولی» در توزیع کج |
| Median/P50 | نقطهٔ میانی رتبهها | مرکز مقاومتر | حقوق شایسته یا تضمینشده |
| P25–P75/IQR | میانهٔ ۵۰٪ نمونه | پراکندگی مرکزی | کف/سقف بازار |
| P10/P90 | مرزهای دُم نمونه | دید وسیعتر | حداقل/حداکثر ممکن |
| Confidence | کیفیت/اطمینان برآورد طبق منبع | شدت Claim | احتمال موفقیت فرد |
P25–P75 نسخهٔ قیمتگذاری فرد نیست
قرارگرفتن Offer زیر P25 لزوماً «غیرمنصفانه» و بالای P75 لزوماً «عالی» نیست؛ شاید Role، ساعت، مزایا، قرارداد یا source population متفاوت باشد. برعکس، تفاوت Context نباید بهانهای برای نادیدهگرفتن شکاف غیرقابلتوضیح شود. Range یک سؤال میسازد: چه تفاوتهای قابلبررسی میان Comparable و Offer وجود دارد؟ پاسخ باید با Scope، Work، Contract و Total Rewards بیاید، نه با شخصیت یا قدرت چانهزنی صرف.
Title را با Role برابر نگذارید
QA، Tester، Test Engineer، Automation Engineer، SDET، Lead و Manager در شرکتها مرز یکسان ندارند. «Senior» ممکن است در یک شرکت مالک Framework و CI باشد و در دیگری صرفاً سابقهٔ بیشتر داشته باشد. قرارداد مرز Test Lead و QA Manager توضیح میدهد Title، Role، Position و Person را جدا کنید. دادهٔ بازار را با Critical Task، تصمیم، مسئولیت، اختیار، Scope و Work product همتراز کنید.
RoleComparable title: Senior QA Engineer (label only) critical_tasks: risk analysis; API/state testing; evidence review scope: one product / two services / no people management decision_rights: test evidence completeness; not release acceptance automation: maintain bounded checks; platform owned elsewhere on_call/travel/security duty: explicit level_basis: autonomy + complexity + consequence, not years alone
Level را با سال سابقه تعیین نکنید
کمتر از دو سال=Junior و بیش از پنج سال=Senior یک Shortcut است، نه Job analysis. سابقه میتواند Signal باشد اما نوع Task، استقلال، پیچیدگی، دامنهٔ اثر، کیفیت Judgment، توان Adapt، Evidence freshness و support لازم را نشان نمیدهد. برای Comparable بازار، Level taxonomy هر منبع را ثبت کنید و اگر تعریف منبع غایب است، `LEVEL_MAPPING_UNCERTAIN` بگذارید؛ شخص را برای جورشدن با جدول بالا یا پایین نبرید.
Location فقط نام شهر نیست
محل شرکت، محل انجام کار، محل اقامت، Remote policy، روزهای حضور، زمان/هزینهٔ رفتوآمد، Timezone، اینترنت/برق، تجهیزات و سفر را جدا ثبت کنید. Offer دورکار یک شرکت تهران برای فرد شهر دیگر لزوماً با Snapshot «شهر محل کار تهران» همتعریف نیست. Hybrid چند روزه هزینه و زمان متفاوتی دارد. هیچ ضریب ثابت تهران/شهرستان را بدون دادهٔ همان منبع اعمال نکنید.
LocationContract employer_location: Tehran label work_location: remote / hybrid 2 days / onsite residence: undisclosed in synthetic lab commute: hours and reimbursed cost range timezone/core_hours: Asia/Tehran 10:00–16:00 equipment/connectivity: owner and reimbursement travel/relocation: frequency, notice, payer comparison_rule: never infer a geographic premium without matched data
نوع قرارداد و ساعت، مخرج مقایسهاند
تماموقت استخدامی، پارهوقت، پروژهای، پیمانکاری، ساعتی، Retainer و قرارداد ارزی ریسک و هزینهٔ یکسان ندارند. مبلغ ماهانه بدون ساعت مورد انتظار، اضافهکار/On-call، مرخصی، بیمه، مالیات، تجهیزات، فاصلهٔ پرداخت و ریسک وصول قابل مقایسه نیست. نرخ پروژهای را با تقسیم ساده بر حقوق استخدامی نسازید؛ زمان غیرقابلصورتحساب، فروش، وقفه، ابزار و ریسک باید در Scenario جدا بیاید.
| بُعد | Offer A | Offer B | Normalizer |
|---|---|---|---|
| نوع | استخدام تماموقت | پیمانکاری | تعهد/حمایت/ریسک جدا |
| ساعت | هفتهای ۴۴ + On-call؟ | خروجی/ساعت | ساعت و Availability |
| پرداخت | ماهانه | پس از Acceptance | تاخیر/وصول |
| کسورات | خالص/ناخالص روشن | مسئولیت قراردادی | مالک واجدصلاحیت |
| ابزار | کارفرما | نامعلوم | TCO واقعی |
| مرخصی/بیمه | تعریفشده | نامعلوم | نه ارزشگذاری جعلی |
خالص، ناخالص و هزینهٔ کارفرما سه Constructاند
`Net take-home` مبلغ پس از کسورات تعریفشده است؛ `Gross cash` پیش از کسورات؛ `Employer cost` علاوه بر آن ممکن است سهمها و مزایای دیگری داشته باشد. این سه را با هم مقایسه نکنید. «تومان» را در نمایش و «ریال» را در قرارداد/سامانه نیز صریح کنید و ضریب ۱۰ را با نمونهٔ عددی کنترل کنید. برای مالیات، بیمه، حداقل مزد، سنوات و عیدی سال/قرارداد واقعی از HR/Payroll یا مشاور واجدصلاحیت و متن جاری استفاده کنید؛ این مقاله عدد قانونی صادر نمیکند.
PayDefinition currency: IRR canonical; display: toman labelled period: monthly; payment_date/timezone explicit fixed_gross_cash: range deductions: categories/owner; no guessed tax net_take_home: estimated vs contractual vs observed labelled variable_cash: target/max/formula/probability/payment date benefits: itemized, not silently converted to cash employer_cost: separate construct; not employee take-home
Fixed، Variable و Guaranteed را جدا کنید
«حقوق ۶۰» میتواند Fixed guaranteed باشد یا ۵۰ ثابت + ۱۰ Target bonus. Variable بدون فرمول، Target، Cap، شرط صلاحیت، دوره، Data source، اختیار تغییر، سابقهٔ تحقق و زمان پرداخت، با Cash قطعی برابر نیست. Expected value ساختگی هم ضمانت نیست؛ حداقل سه Scenario—صفر، Target و Cap—و Triggerهای عدم پرداخت را ببینید. Commission/Bonus تیمی را به فرد نسبت ندهید.
VariablePayRecord plan_version/effective_period: v3 / 1405-H2 target/max: explicit; guaranteed=false metric/denominator/source: documented and reviewable eligibility: start/end/leave/notice conditions authority: who certifies and who can change scenarios: ZERO | TARGET | CAP; no probability invented payment_date/clawback/dispute: explicit claim: scenario range, not promised income
Total Rewards را بدون قیمتسازی کاذب مقایسه کنید
مرخصی، بیمهٔ تکمیلی، تجهیزات، اینترنت، غذا، رفتوآمد، آموزش، Remote flexibility، ساعت، On-call، ثبات پرداخت، دورهٔ آزمایشی، Notice، سلامت و فرصت یادگیری همگی میتوانند مهم باشند؛ اما ارزش شخصی/نقدشوندگیشان یکسان نیست. ارزش ادعایی بروشور را به Cash اضافه نکنید. هر Benefit را با Eligibility، پوشش، سقف، محدودیت، هزینهٔ مشترک، استفادهپذیری و ترجیح فرد ثبت کنید و گزینهٔ `UNKNOWN/NOT_VALUED` داشته باشید.
| جزء | فیلد لازم | ریسک | روش مقایسه |
|---|---|---|---|
| Fixed cash | gross/net/date | کسورات/تاخیر | همتعریف |
| Variable | formula/cap/history | صفر/اختیار | Scenario |
| Leave | روز/قابلیت استفاده | فرهنگ/approval | ثبت، نه Cash جعلی |
| Health | coverage/exclusion | عدم دسترسی | نیاز/شرایط |
| Learning | paid time/budget | بازپرداخت/قفل | شرط و اختیار |
| Remote | policy/revocation | تغییر یکطرفه | زمان/هزینه |
| Workload | hours/on-call | فرسودگی | Constraint سخت |
Equity، Token و وعدهٔ رشد Cash نیست
سهام، Option، Phantom، Token یا «بعداً شریک میشوی» را بدون Instrument، تعداد، Denominator fully diluted، Strike، Vesting، Cliff، Exercise window، dilution، liquidity، tax/legal review و سناریوی صفر ارزشگذاری نکنید. نام شرکت یا Stage جای Due diligence نیست. برای مقایسهٔ محافظهکارانه، Cash را جدا و Equity را در Scenario مستقل با امکان ارزش صفر نگه دارید؛ تصمیم حقوقی/مالی را به متخصص مربوط بسپارید.
حقوق اسمی را با قدرت خرید یکی ندانید
افزایش اسمی ۴۰٪ لزوماً بهبود واقعی نیست و نرخ تورم عمومی نیز دقیقاً سبد هزینهٔ شخص را نمایندگی نمیکند. برای مقایسهٔ زمانی باید series، base، geography، month، publication، revision و فرمول روشن باشد. نرخ نقطهبهنقطه، ماهانه و سالانه Constructهای متفاوتاند. از نرخ ارز آزاد یا CPI پراکنده برای «تبدیل خودکار حقوق منصفانه» استفاده نکنید؛ فقط Scenarioهای برچسبدار بسازید.
RealPayScenario nominal_pay_t0/t1: same definition price_index_source/version: authoritative and pinned index_t0/index_t1: same series and geography real_change: (pay_t1 / pay_t0) / (index_t1 / index_t0) - 1 personal_budget: separate; not called official inflation unknowns: revisions, benefit change, hours, tax, delayed payment claim_limit: scenario, not forecast or legal entitlement
حداقل قانونی، Market range و Offer سه لایهاند
الزام قانونی/قراردادی یک Compliance floor وابسته به jurisdiction و وضعیت استخدام است؛ توزیع بازار مشاهدهٔ یک نمونه است؛ Offer پیشنهاد یک رابطهٔ مشخص. هیچکدام جای دیگری نیست. عددی بالاتر از حداقل الزاماً رقابتی یا منصفانه نیست و Median بازار هم حکم قانونی نیست. applicability، متن/بخشنامهٔ جاری، نوع قرارداد و تفسیر را مالک واجدصلاحیت بررسی کند. تاریخچهٔ این مقاله را مبنای محاسبهٔ حقوق قانونی نگذارید.
مهارت اتوماسیون Premium ثابت ۳۰–۵۰٪ ندارد
منبع معتبری در نسخهٔ قدیم برای «۳۰ تا ۵۰ درصد درآمد بیشتر» وجود نداشت. Keyword ابزار علت حقوق نیست. ممکن است Roleهای دارای Programming/CI/Framework responsibility در یک Sample بیشتر بپردازند، اما Level، شرکت، صنعت، شهر، زبان، Scope و selection هم دخیلاند. مسیر گذار تست دستی به اتوماسیون را برای Capability و Artifact بخوانید؛ Premium را فقط با مقایسهٔ matched و تعریفشده ادعا کنید.
SkillPremiumHypothesis claim: capability X is associated with higher pay in population P required: matched role/level/location/contract/time/industry exposure: observable task responsibility, not keyword outcome: same pay definition and distribution alternatives: selection, company size, scarcity, hours, management scope evidence: sufficient sample + model + uncertainty status_here: NOT_ESTIMATED; no causal premium claimed
Security و Performance تخصصاند، نه میانبر حقوق
تخصص کمیاب ممکن است Option شغلی بسازد، اما دوره یا ابزار بهتنهایی Premium ایجاد نمیکند. ببینید Role چه Task، Consequence، استقلال، Authorization، on-call، Evidence و مسئولیتی میخواهد. تست نفوذ بدون مجوز خطر حقوقی/امنیتی دارد؛ Performance بدون مدل بار و Observability فقط اجرای ابزار است. افزایش Scope بدون Compensation/Support روشن میتواند فقط بار و ریسک را بیشتر کند.
ISTQB و مدرک، نرخ حقوق صادر نمیکنند
گواهی میتواند موفقیت در Scope مشخص یک ارزیابی را نشان دهد؛ نه تجربه، Judgment، Work quality، Level یا Salary entitlement. اثر آن بر غربال رزومه یا Offer باید با آگهی/دادهٔ همان بازار و زمان سنجیده شود. هزینه، دسترسی، زبان، Renewal و Alternative را مقایسه کنید. نداشتن مدرک دانشگاهی یا بینالمللی را خودکار به Level پایین تبدیل نکنید و مدرک را جای Work sample ننشانید.
Contribution را از Outcome کسبوکار جدا کنید
QA بهتنهایی Brand، رضایت، امنیت، درآمد یا کیفیت را «تضمین» نمیکند. Contribution میتواند Risk question بهتر، Evidence قابلردیابی، تشخیص زودتر، Recovery روشن یا تصمیم آگاهانهتر باشد، اما Outcome به Product، Engineering، Operations، Business و Context وابسته است. در مذاکره از Bug count، Test count، Pass rate یا «جلوی ضرر میلیاردی را گرفتم» بدون Counterfactual استفاده نکنید.
ContributionEvidence context/task: versioned and bounded claim: what changed and what is not claimed artifact: reviewable work product with permission evidence: before/after process or decision trace alternatives/confounders: team/system/change effects reviewer/date/freshness: explicit privacy/IP: redacted or synthetic no_claim: sole causation, revenue saved, universal seniority
Salary Evidence Pack بسازید
- Decision brief: هدف، تاریخ، Deadline و گزینهها؛
- Role comparable: Task/Scope/Authority/Level/Location/Contract؛
- Source records: URL، نسخه، تاریخ، Sample، Definition، صدک و محدودیت؛
- Current compensation: فقط با رضایت، خالص/ناخالص/ثابت/متغیر/مزایا؛
- Contribution evidence: Artifact مجاز، Context و Claim limit؛
- Offer model: Scenarioهای Cash/Variable/Benefits/Hours/Risk؛
- Negotiation range: Ask/Target/Reservation با منطق و بدون افشای اجباری؛
- Agreement record: متن، Owner، تاریخ اثر، Review و Correction.
Range شخصی را از سه لایه بسازید
لایهٔ بازار میگوید Comparable sample چه توزیعی داشته؛ لایهٔ Role میگوید Work/Scope این موقعیت چیست؛ لایهٔ Constraint میگوید فرد برای قبول رابطه چه نیاز، ریسک و Alternativeای دارد. Reservation محرمانه است و از بودجه/ریسک شخص میآید، نه ارزش انسان. Target و Ask میتوانند متفاوت باشند. Range را با False precision مثل ۶۳٫۷ میلیون نسازید مگر مدل و داده واقعاً آن دقت را پشتیبانی کند.
NegotiationRange market_reference: P25/P50/P75 with source limits role_adjustments: evidence-backed, not arbitrary percentages offer_scope: fixed/variable/benefits/hours/contract/risk ask: opening proposal with rationale target: acceptable preferred package reservation: private constraint; never auto-disclosed batna: concrete alternative and costs expiry: offer deadline or material context change
BATNA تهدید یا بلوف نیست
BATNA بهترین گزینهٔ عملی در صورت عدم توافق است: ادامهٔ نقش فعلی، Offer دیگر، پروژه، دورهٔ جستوجوی بیشتر یا عدم پذیرش. باید Availability، Deadline، هزینه، ریسک و امکان برگشت داشته باشد. Offer خیالی، «بازار حتماً بیشتر میدهد» یا تهدید استعفا BATNA نیست. اطلاعات محرمانهٔ کارفرمای دیگر را افشا نکنید؛ میتوانید وجود گزینه و Deadline را بدون سند خصوصی اضافی بیان کنید.
Anchor را با Evidence و Option همراه کنید
بهجای «من ۸۰ میارزم»، بگویید: «برای Scope ثبتشده و با توجه به Snapshotهای همتعریف، پیشنهاد من Fixed gross/net مشخص با این مزایا و تاریخ بازبینی است.» سپس دو یا سه Package قابلمقایسه پیشنهاد کنید: Cash بالاتر، Remote/Hours بهتر، یا Review زودتر با معیار روشن. Anchor نه حکم اخلاقی است نه اثبات بازار؛ یک Proposal قابلاصلاح است.
CompensationProposal scope_ack: role/tasks/authority/on-call/location source_summary: dated, comparable, limitations visible package_A: fixed cash + defined benefits package_B: lower fixed + guaranteed review milestone (not vague promise) package_C: hours/location/scope adjusted questions: gross/net, variable, deductions, policy revocation, review response_due: explicit tone: factual, reversible, no bluff or personal valuation
حقوق فعلی را فقط با هدف و رضایت افشا کنید
حقوق فعلی دادهٔ شخصی است و ممکن است Anchor نامربوط ایجاد کند. پیش از افشا بپرسید چرا لازم است، چه کسی میبیند، کجا نگهداری میشود و آیا Range بودجه/Role را میتوان مستقل گفت. قانون و عرف حوزهٔ واقعی را متخصص بررسی کند. جعل فیش یا Offer، افشای سند محرمانه و ساخت پیشنهاد رقیب قابلقبول نیست. پاسخ جایگزین: تمرکز بر Scope و Package مورد انتظار.
پرسشهای ضروری پیش از قبول Offer
- عنوان با Task/Scope/Authority واقعی چه نسبتی دارد؟
- مبلغ خالص است یا ناخالص و واحد ریال/تومان چیست؟
- Fixed guaranteed چقدر و تاریخ پرداخت کی است؟
- Variable چه فرمول، سقف، Owner و سابقهای دارد؟
- دورهٔ آزمایشی چه اثری بر Pay/Benefits/Notice دارد؟
- ساعت، اضافهکار، On-call، تعطیل و مرخصی چگونهاند؟
- Remote/Hybrid قراردادی است یا Policy قابللغو؟
- بیمه/مزایا از چه زمانی و با چه پوششیاند؟
- تجهیزات، اینترنت، سفر و هزینه با چه کسی است؟
- Review حقوق چه تاریخ، معیار، Authority و بودجهای دارد؟
- مالک داده/کد/پورتفولیو و محدودیت IP چیست؟
- Offer تا چه زمانی معتبر و متن نهایی کدام است؟
Offer را با Matrix و Hard Gate بررسی کنید
| بُعد | Evidence | Preference/Range | Status |
|---|---|---|---|
| Role/scope | JD + interview record | bounded | FIT/GAP |
| Fixed pay | written offer | target/reservation | FIT/GAP |
| Variable | plan/version | scenario tolerance | KNOWN/UNKNOWN |
| Hours/on-call | contract/policy | hard constraint | PASS/HOLD |
| Remote/access | written terms | required/preferred | PASS/HOLD |
| Safety/legal/IP | qualified review | hard gate | PASS/HOLD |
| Growth/review | dated mechanism | option value | WEAK/STRONG |
Score وزنی نباید Hard gate را بپوشاند. پرداخت بالا، نبود مجوز تست، درخواست استفاده از داده/حساب واقعی بدون کنترل، شرط نامفهوم مالکیت فکری، ساعت ناسالم یا ابهام قراردادی را جبران نمیکند. `HOLD` یعنی سؤال/بازبینی بیشتر، نه رد قطعی. تصمیم نهایی شخصی و Context-bound است.
Review حقوق را به وعدهٔ شفاهی نسپارید
«بعد از سه ماه جبران میکنیم» بدون Date، Criteria، Evidence، Budget authority، Range، effective date و نتیجهٔ عدم تحقق، تعهد قابلعمل نیست. Review باید Scope change، Market refresh، Performance/Contribution evidence و Company constraint را جدا کند. رسیدن به معیار نباید به افزایش خودکار تعبیر شود مگر قرارداد همین را بگوید؛ و عدم بودجه نباید به برچسب ضعف فرد تبدیل شود.
CompensationReviewContract review_date/window: exact scope_baseline/change: versioned evidence_allowed: role work products; no bug/test-count people ranking market_refresh: source/definition/date decision_authority/budget_owner: named roles possible_outcomes: adjust / no-change / scope-change / revisit effective_date/backpay: explicit if applicable appeal/correction/next_review: documented
Pay equity را با «همه مذاکره کنند» حل نکنید
توان مذاکره نباید تنها سازوکار Compensation باشد. کارفرما باید Job architecture، Range، Placement rationale، adjustment cycle، access به اطلاعات، reviewer دوم و تحلیل شکافهای توضیحناپذیر داشته باشد؛ با حفظ Privacy و بررسی قانونی. برای فرد نیز نبود شبکه، زبان دوم، معلولیت، مسئولیت مراقبتی یا محدودیت حضور نباید خودکار Proxy شایستگی شود. Market data میتواند Bias تاریخی را بازتاب دهد؛ «بازار گفته» پایان بحث انصاف نیست.
PayDecisionRecord job_family/level/range_version: explicit placement: range position + job-related rationale comparators: aggregated/minimized; no unnecessary identity exceptions: reason/authority/expiry equity_review: unexplained gaps investigated candidate/worker response route: safe and accessible retention/deletion: defined correction: prior decision preserved and superseded
حریم خصوصی Salary Evidence را طراحی کنید
فیش، قرارداد، Offer، نام شرکت، ایمیل، شماره، شناسهٔ بیمه/مالیات، حساب بانکی و دادهٔ همکاران را در Portfolio یا AI عمومی نگذارید. برای Evidence مذاکره از Source عمومی، خلاصهٔ Aggregate و Artifact پاکسازیشده استفاده کنید. Purpose، access، retention، deletion و incident route را بنویسید. Redaction تصویری را با متن قابلکپی/metadata/filename کنترل کنید؛ Blur سطحی ممکن است داده را باقی بگذارد.
AI نباید Salary Oracle یا Negotiator خودمختار باشد
AI میتواند فیلدهای Offer را استخراج، سؤالها را مرتب یا Scenario را محاسبه کند؛ اما ممکن است عدد بسازد، واحد را اشتباه کند، تاریخ/شهر را حذف کند یا دادهٔ شخصی را نگه دارد. ورودی را Synthetic/حداقلی کنید، Source را خودتان باز کنید، arithmetic را مستقل بازاجرا کنید و ارسال پیام/پذیرش Offer را به Human authority بسپارید. Prompt output شاهد بازار نیست.
AICompensationUse purpose: extract fields from a synthetic offer only data: no real identity, contract, salary slip, account or employer secret source_grounding: URLs and retrieval dates supplied checks: unit/date/net-gross/percentile arithmetic independently verified human_authority: compare, negotiate, accept, reject, disclose failure_route: mark UNKNOWN; do not invent retention/vendor/access: reviewed before any real use
قرارداد ارزی را با ضرب نرخ روز ساده نکنید
Currency، مبدا/مقصد، مجازبودن مسیر، نرخ مرجع، timestamp، fee، settlement delay، برگشت پرداخت، invoice، tax/legal ownership، account access و sanctions/compliance همگی مهماند. نرخ اسکرینشات بازار معادل مبلغ قابلوصول نیست. هیچ حساب قرضی، هویت دیگران، دورزدن کنترل یا مسیر نامطمئن را Access plan نکنید. Scenario باید شامل عدم دسترسی و تاخیر/عدم وصول هم باشد.
CrossBorderPayScenario contract_currency/payment_currency: explicit lawful_payment_route: owner-qualified; no bypass instructions reference_rate/source/timestamp: pinned only for scenario fees/spread/withholding: ranges and responsible party settlement/reversal risk: explicit account/access continuity: verified scenarios: paid_on_time | delayed | partial | unavailable claim_limit: not financial, tax, sanctions or legal advice
لابراتوار مستقل: جدول قدیمی در برابر ۵۸۸ کنترل
Fixture قدیمی چهار Range برای Junior/Mid/Senior/Manager، Premium اتوماسیون ۳۰–۵۰٪ و وعدهٔ امنیت شغلی داشت. Checker سطحی فقط وجود همین عبارتها را دید و اعلام کرد:
JUNIOR_MID_SENIOR_MANAGER_AUTOMATION_PREMIUM_CAREER_SECURE_READY
ممیزی مستقل دقیقاً ۵۸۸ کنترل یکتای group-qualified را در ۴۲ گروه identity، asof، decision، source، sample، role، level، geography، contract، time، currency، pay_definition، percentile، uncertainty، comparability، baseline، inflation، legal، benefits، variable، equity، workload، capability، evidence، portfolio، negotiation، batna، anchor، offer، privacy، fairness، access، employer، governance، review، expiry، correction، iran، lab، safety، career و limits مطالبه کرد. Fixture هیچکدام را نداشت:
HOLD-588 NO_REAL_CANDIDATE_EMPLOYER_OFFER_PASS
Rule جداگانه تأیید کرد Candidate، Worker، Employer، Offer، Salary، Contract، Personal data یا Decision واقعی در Fixture نیست. پس از Pin کردن تمام کنترلهای خیالی، خروجی فقط آمادگی برای بازبینی انسانی بود:
READY_FOR_QA_COMPENSATION_EVIDENCE_REVIEW-0
صفر Finding ساختاری، صحت Survey، برابری Title/Role، قابلیت مقایسهٔ Offer، استحقاق یا توان فرد، Fair pay، اجرای قانون/مالیات/بیمه، تحقق Variable، سلامت کار، امنیت شغلی، موفقیت مذاکره یا درآمد آینده را ثابت نمیکند. Validator فقط presence و uniqueness فیلدهای دادهشده را کنترل میکند.
آزمایشگاه آفلاین فارسی: دو Offer کاملاً ساختگی
Lab با شناسهٔ SYN-QA-COMP-IR-01 هیچ داوطلب، کارمند، کارفرما، شرکت، Offer، قرارداد، فیش یا تصمیم واقعی ندارد. Role خیالی یک QA Mid برای Checkout آفلاین با Order/PaymentAttempt/PSP Stub/Callback/Ledger/Reconciliation ساختگی است. مبلغها صرفاً دادهٔ مکانیکی تمریناند؛ توصیهٔ حقوق، Benchmark یا شبیهسازی بازار نیستند.
Synthetic offers
A: 600,000,000 IRR monthly gross fixed; hybrid 2d; on-call UNKNOWN
B: 52,000,000 labelled toman net estimate + 18 target variable
Faults: IRR/toman ambiguity, net/gross mismatch, target treated guaranteed,
remote revocable, 44h denominator missing, review “after 3 months”
Locale: ۱۲۳/١٢٣/123; ی/ي; ک/ك; ZWNJ; RTL/LTR/Bidi
Clock: UTC + Asia/Tehran; Jalali presentation-only
No network, production, identity, employer, account or lawful-pay claim
Checker سطحی A را ۶۰ و B را ۷۰ میلیون تومان میخواند و B را «بهتر» اعلام میکند. Protocol تا رفع Unit، Net/Gross، Variable formula، Hours/On-call، Policy revocation، Benefit و Review authority هر دو را `INCOMPARABLE/HOLD` میگذارد. پس از تکمیل فیلدهای ساختگی نیز فقط Scenario comparison ممکن است؛ ترجیح شخص، قانون، پرداخت واقعی یا کیفیت شغل اثبات نمیشود.
برنامهٔ ۳۰روزهٔ Compensation Evidence بدون فرد واقعی
| روز | تمرین | خروجی | Gate |
|---|---|---|---|
| ۱–۴ | Question/As-of/Role | Decision brief | Person pricing ممنوع |
| ۵–۹ | Source/Sample/Definition | دو Source record | Request≠realized |
| ۱۰–۱۳ | Percentile/uncertainty | Distribution note | Mean≠median |
| ۱۴–۱۸ | Contract/Pay/Benefit | Offer matrix | net/gross/unit |
| ۱۹–۲۲ | Evidence/privacy | synthetic pack | no real data |
| ۲۳–۲۶ | Range/BATNA/packages | proposal draft | no bluff |
| ۲۷–۳۰ | Agreement/review/correction | versioned record | human review |
۲۸ ضدالگوی تحلیل حقوق QA
- یک عدد برای کل ایران؛
- عدد بدون تاریخ مبنا؛
- درخواست ۱۴۰۵ را دریافتی قطعی نامیدن؛
- میانگین و میانه را یکی دانستن؛
- P25–P75 را کف و سقف بازار خواندن؛
- Average گرفتن از صدکهای گروهها؛
- N و Confidence را حذف کردن؛
- Title را Role دانستن؛
- سابقه را Level دانستن؛
- تهران را به Remote/کشور تعمیم دادن؛
- خالص را با ناخالص مقایسه کردن؛
- ریال و تومان را بیبرچسب نوشتن؛
- Variable هدف را Guaranteed شمردن؛
- Benefit بروشوری را Cash کامل گرفتن؛
- Equity را با ارزش اسمی قطعی افزودن؛
- Contractor را با Employee ماهانه یکی کردن؛
- ساعت و On-call را حذف کردن؛
- تورم عمومی را سبد شخص دانستن؛
- Market median را حق قانونی دانستن؛
- Automation premium ثابت ۳۰–۵۰٪؛
- مدرک را Premium یا Level دانستن؛
- Bug count را Contribution فرد دانستن؛
- پیشبینی امنیت شغلی؛
- Offer خیالی بهعنوان BATNA؛
- افشای فیش/قرارداد/Offer محرمانه؛
- AI بهعنوان Salary oracle؛
- Score برای پوشاندن Safety hard gate؛
- ویرایش خاموش Range یا توافق.
چکلیست ۳۶سؤالی حقوق تست نرمافزار
- Decision و As-of روشن است؟
- Role با Task/Scope تعریف شده؟
- Title از Role جداست؟
- Level definition ثبت شده؟
- محل شرکت/کار/اقامت جداست؟
- Contract type روشن است؟
- ساعت و On-call معلوم است؟
- Publisher و روش منبع معلوم است؟
- Population و Sample frame معلوم است؟
- N گروه و segment معلوم است؟
- دریافتی از درخواست جداست؟
- دورهٔ مرجع و بازیابی ثبت شده؟
- خالص/ناخالص روشن است؟
- ریال/تومان روشن است؟
- ماهانه/سالانه روشن است؟
- Fixed/Variable روشن است؟
- Mean/Median/Percentile درست است؟
- P25–P75 بهعنوان IQR خوانده شده؟
- Confidence و محدودیت آمده؟
- دو منبع بدون Pooling کور مقایسه شده؟
- Benefit itemized است؟
- Variable Scenario دارد؟
- Equity Scenario صفر دارد؟
- Contractor TCO جداست؟
- Inflation series/version روشن است؟
- Legal/tax owner مشخص است؟
- Skill premium بدون داده حذف شده؟
- Contribution Claim limit دارد؟
- Evidence مجاز و تازه است؟
- Privacy/retention/deletion کنترل شده؟
- Ask/Target/Reservation جداست؟
- BATNA واقعی و تاریخدار است؟
- Offer Matrix Hard gate دارد؟
- Review date/authority/budget دارد؟
- Fairness/appeal/accessibility دیده شده؟
- Expiry/Correction/version history دارد؟
منابع، نسخه و حدود استناد
- JobVision Salary Survey 1405: منبع Snapshot صدکهای خالص دریافتی ۱۴۰۴/درخواستی ۱۴۰۵ برای QA تهران و N/Confidence؛ نه سرشماری یا Offer تضمینی.
- IranTalent Salary Report 1405: شرح عمومی روش خوداظهاری + فهرست بینام شرکتها؛ نه دسترسی آزاد به تمام microdata.
- IranTalent Mid-Level Software Testing 1405: Snapshot عمومی تهران و نشاندهندهٔ ناسازگاری Label میانگین/میانه؛ نه مجوز رفع ابهام با حدس.
- BLS Percentile Wages: تعریف روششناختی صدک و هشدار دربارهٔ Average صدکها؛ نه دادهٔ ایران/QA.
- ONS ASHE interpretation guide: چرایی استفاده از Median در توزیع کج؛ نه Benchmark حقوق ایران.
اعداد جابویژن در این صفحه از PDF عمومی ۶۱۳صفحهای با تاریخ ساخت ۱ اردیبهشت ۱۴۰۵ و SHA-۲۵۶ برابر با 87f4cf935680c0274fb0bf008761a3ed84bb5af8a602922fc6bd3376ba4df917 استخراج و با صفحات ۱۴۴ تا ۱۴۷ تطبیق داده شدند. Hash فقط هویت فایل بازیابیشده را ثبت میکند؛ صحت پاسخها، نمایندگی نمونه یا آینده را اثبات نمیکند. هر منبع میتواند پس از تاریخ بازیابی تغییر کند.
یادداشت دسترسی منبع: صفحهٔ رسمی BLS در مرورگر و نمایهٔ جستوجو قابلخواندن و تأیید است، اما هنگام ممیزی مستقیم این نسخه به کلاینت خط فرمان HTTP ۴۰۳ ضدربات داد. این رفتار بهعنوان خرابی مقصد یا رد محتوای روششناختی منبع تفسیر نشده است.
Correction و Expiry را بهعنوان بخشی از عدد نگه دارید
اگر Source بهروزرسانی شد، Label میانگین/میانه اصلاح شد، Role تغییر کرد، Offer مبلغ/واحد دیگری داد یا اشتباه transcription پیدا شد، نسخهٔ قبلی را بیصدا بازنویسی نکنید. Correction باید مقدار قبلی، خطا، Claimهای متاثر، تصمیمهای وابسته، مقدار جدید، Reviewer و تاریخ را ثبت کند. Snapshot برای تصمیم بعدی منقضی میشود اما برای Audit تاریخی میماند.
CompensationCorrection correction_id: COR-QACOMP-03 supersedes: SRC-QA-MID-v1 error: published label transcribed as median without ambiguity note affected: market-center claim and offer comparison action: restore “mean/median inconsistent”; withdraw pooled estimate decision_recheck: required history: v1 retained with warning; v2 current notify: pack owner/reviewer/decision holder
خروجی QA Compensation Evidence Pack
- Question/Decision/As-of record؛
- Role/Level/Location/Contract comparable؛
- Source/Sample/Definition/Distribution records؛
- Net/Gross/Fixed/Variable/Currency contract؛
- Total Rewards و Workload matrix؛
- Contribution Evidence با Privacy/IP؛
- Ask/Target/Reservation/BATNA؛
- Offer Matrix و Hard gates؛
- Proposal/response/Agreement record؛
- Review/Expiry/Correction history.
جمعبندی
برای تحلیل حقوق کارشناس تست نرمافزار در ایران، عدد را با تاریخ، Source، Sample، Role، Level، شهر، قرارداد و Pay definition بخوانید. Snapshot جابویژن ۱۴۰۵ برای QA تهران مفید است، اما فقط ۵۳ پاسخدهنده و Confidence متفاوت میان سطحها دارد و درخواست را از دریافتی جدا میکند. صدک را Range مشاهدهشده بدانید، نه قیمت انسان؛ Total Rewards و Workload را آشکار کنید؛ Contribution را با Evidence محدود بسازید؛ و مذاکره را با Package، BATNA، متن توافق، Review و Correction پیش ببرید. هیچ مهارت، مدرک، عنوان یا جدول، حقوق و امنیت شغلی را تضمین نمیکند.
سؤالات متداول
حقوق Junior، Mid و Senior QA در تهران ۱۴۰۵ چقدر است؟
در Snapshot جابویژن، میانهٔ خالص درخواستی ماهانه برای تهران بهترتیب ۳۸، ۶۰ و ۷۴ میلیون تومان است و IQRها ۳۰–۵۴، ۴۸–۷۱ و ۶۵–۸۵ هستند. این اعداد درخواست نمونهاند، نه دریافتی قطعی؛ N کل گروه QA برابر ۵۳ و Confidence سطوح متفاوت است. برای Offer واقعی Role/Contract/Hours/Pay definition را همتراز کنید.
آیا تست اتوماسیون حتماً ۳۰ تا ۵۰ درصد درآمد بیشتری دارد؟
خیر؛ برای چنین Premium ثابتی شاهد معتبر در مقالهٔ قبلی نبود. برای سنجش رابطه باید Role، Level، شهر، شرکت، Contract، زمان و Scope را match و Capability واقعی را از Keyword جدا کرد. Automation میتواند Task و Option بسازد، اما دوره/ابزار بهتنهایی افزایش حقوق یا استخدام را تضمین نمیکند.
برای مذاکره از میانه استفاده کنم یا P75؟
هیچ صدکی نسخهٔ خودکار نیست. P50 مرکز نمونه و P75 مرز بالای ۷۵٪ آن است؛ Placement باید با Comparable Role، Scope، Evidence، Offer components، Constraint و Alternative توضیح داده شود. Ask، Target و Reservation را جدا کنید و Source/Confidence را در Proposal شفاف نگه دارید.
حقوق خالص و ناخالص را چگونه مقایسه کنم؟
ابتدا Currency/ریال-تومان، دوره، Fixed/Variable و تعریف کسورات را یکسان کنید. خالص برآوردی را با خالص مشاهدهشده یا قراردادی یکی نگیرید. برای کسورات قانونی و قرارداد واقعی از Payroll/HR یا متخصص جاری کمک بگیرید. Benefit و Variable را جدا و Scenarioمحور نگه دارید.
اگر Offer پایینتر از P25 بود باید رد کنم؟
نه لزوماً. ابتدا ببینید Source و Offer از نظر Role، سطح، شهر، Contract، ساعت و Pay basis قابلمقایسهاند یا نه؛ سپس Total Rewards، ریسک، نیاز و BATNA خود را بسنجید. P25 حکم قانونی یا اخلاقی نیست، اما شکاف بزرگِ بدون توضیح سؤال مهمی برای مذاکره و بازبینی مستقل است.

